Ide scala: Scala IDE for Eclipse
Eclipse Scala IDE — от мертвого осла уши… / Хабр
Scala — это изумительный язык программирования, которым я наслаждался года 4 назад. Я, наверное, был его фанатом: покупал книги и курсы на Coursera, использовал в pet- и продуктивных проектах et cetera, et cetera, et cetera.
Scala открыл для меня увлекательный мир функционального программирования, вернул во времена студенчества со «сферическими задачами в вакууме» от Martin’a Odersky…
Но вот он уже года два как Scala для меня мертва. Виной этому…
Нет, не Java 8 и даже, скорее всего, не SBT с его загадочной инкрементальной компиляцией, а Eclipse Scala IDE.
К Scala, как к экосистеме, у меня есть только две претензии: непомерное время компиляции и отвратительный tool’инг.
Если со временем компиляции я еще худо бедно могу мириться, то tool’инг…
Но обо всем по порядку.
Мы, силою обстоятельств, плотно (и навечно?) прикованы к Eclipse IDE. Как-то так случилось, что те проекты, которые нужны для рабочего процесса есть только под Eclipse и их нет (и не будет) под IntelliJ IDEA (например, тот же BIRT).
Да, никто не запрещает мне для pet project’ов использовать Scala и IntelliJ IDEA, но это уже не так интересно и гораздо приятнее развлекаться с IntelliJ IDEA и Clojure (я, конечно же, говорю о Cursive).
Что же не так с Eclipse Scala IDE?
В двух словах — это самая глючная, нестабильная и загадочная «хрень» которой мне приходилось пользоваться для разработки в XXI веке. Попросту говоря ты никогда не знаешь будет ли твой scala code им компилироваться, как долго, что произойдет при обновлении Scala IDE, Scala, Eclipse’a, crash’е workspace’a и почему твой код не будет компилироваться у коллеги, и в какие бубны нужно будет бить чтобы это все снова заработало.
Здесь надо сделать два уточнения: я говорю о смешанных Java+Scala проектах и Scala 2.11.x (это версия на которой мы «сдались» и решили дальше историю со Scala не продолжать).
Возможно, Eclipse Scala IDE идеален для «pure Scala» проектов, но для сложных и смешанных как наш — это ужас и кошмар почище атомной войны.
Пример вчерашнего дня. Два компьютера с Eclipse Oxygen.2 (4.7.2) с OSX.
package com.XXX
import java.util.{List=>JList}
import scala.collection.JavaConversions._
...
abstract class REScalaVariablesConfiguration {
def calculateVariables (runtimeObject: GBObject): JList[Variable] = {
val result = for {(name, result) <- variables(runtimeObject)
if result != null
} yield result match {
case x:LWDecimal => new NumberVariable(name, x.getJavaDecimal, runtimeObject)
case x:Number => new NumberVariable(name, x, runtimeObject)
case x:String => new StringVariable(name, x, runtimeObject)
case x:Boolean => new BooleanVariable(name, x, runtimeObject)
case x:LWDate => new DateVariable(name, x.getJavaDate, runtimeObject)
case _ => throw new IllegalStateException("Not supported result type for rule engine variable: " + name)
}
new ArrayList[Variable](result)
}
protected def variables(runtimeObject: GBObject): Map[String, Any]
}
Идентичные версии всего (кроме JVM и версий OSX) получаем при компиляции Eclipse:
- SBT builder crashed while compiling. The error message is ‘Could not create directory /XYZ/lib/print’.
- Error in Scala compiler: REScalaVariablesConfiguration
Слегка подправив исходный код (при этом «родным» SBT он компилируется без проблем)
package com.XXX
import scala.collection.JavaConversions._
...
abstract class REScalaVariablesConfiguration {
def calculateVariables (runtimeObject: GBObject): java.util.List[Variable] = {
...
Мне удается избавиться от ошибок, но лишь на одном из MacBook’ов.
Такое волшебство происходит постоянно. Например, у меня был проект, где autocompletion приводил к crash’у всего проекта (но только если в файлы была ссылка на scala code).
Коллеги, это снова у меня что-то идет не так или у Вас подобный опыт общения со Scala?
Разработка приложений на языке Scala / Хабр
В этом небольшом посте я постараюсь рассказать с чего начать разрабатывать приложения для Android на языке Scala с помощью SBT и IntelliJ Idea, а так же плюсы и минусы этого подхода. Все будет довольно просто, стоит только запастись терпением. Весь процесс описывается для unix like систем, на Windows не проверялось, но если очень хочется, то можно попробовать провернуть то же самое через cygwin. Итак…
Существующие решения
При беглом гуглении можно наткнуться на эти три (раз, два, три) замечательные статьи, которые в красках поэтапно описывают долгий и тернистый путь к просветлению, а именно как поднять SBT проект для Android в Idea. Этот метод устарел, потому как в статье описывается процесс для SBT 0.7.4, а так же многие ненужные шаги, которые только отталкивают от дальнейшего изучения материала. Не смотря на это, я рекомендую их к прочтению, чтобы иметь базовое представление с чем вы имеете дело.
Многие знают, что под Eclipse тоже есть плагин для разработки на Scala, но он находится в вечной бете и совершенно негодный к использованию ввиду постоянных тормозов и скудности функционала.
Инструменты
- ItelliJ Idea community edition с поддержкой Android — самая дружественная к Scala IDE на сегодняшний день (есть еще ensime, но это из другой оперы).
- JDK 6 для linux/mac os. Путь до JDK необходимо прописать в глобальной переменной JAVA_HOME (можно в ~/.bashrc).
- Android SDK для linux/mac os. Путь до SDK должен быть также задан через глобальную переменную ANDROID_SDK_HOME, но, внимание, для видимости всей системой, поэтому прописывать переменную нужно строго в /etc/environment. Может потребоваться перезагрузка.
- Simple Build Tool (SBT) 0.10.1 — инструмент для генерации и сборки Scala проектов. Недавно проект сменил имя на XSBT и переехал на github, что весьма удобно.
- Android плагин для SBT — для ознакомления, потому как данный плагин ставится автоматически.
- giter8 (g8) — утилита для генерации проектов из шаблонов, опубликованных на github.
- Мой шаблон g8 для генерации Idea проектов.
- Настроенный Android Emulator или напрямую подключенный андроид смартфон с включенной USB отладкой.
Установка SBT
Предварительно необходимо скачать sbt-launch.jar последней версии и положить в папку ~/bin, затем создать пустой файл с именем sbt со следующим содержимым
java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"
и также положить его в папку ~/bin. Далее необходимо сделать файл sbt исполняемым и добавить папку ~/bin к переменной $PATH, чтобы иметь доступ к ее исполняемым файлам без явного указания пути:
$ chmod u+x ~/bin/sbt
$ echo 'PATH=$PATH:~/bin' >> ~/.bashrc
После этого следует перезапустить терминал, чтобы он перечитал файл ~/.bashrc.
Принцип работы
Для создания проекта используется giter8 (g8). Принцип его работы очень прост — он скачивает с github предварительно заготовленный шаблон проекта и подставляет вместо указанных переменных заданные в файле default.properties свойства. Это справедливо как для содержимого файлов, так и для их имен. Например, в этом коде
class $main_activity$ extends Activity { ... }
$main_activity$ будет заменено на соответствующее заданное свойство. Все значения свойств задаются в интерактивном режиме через g8. Исходя из этого, был создан шаблон, включающий в себя стандартные для Idea проектные файлы и модули, в которые на этапе генерации проекта подставляются специфические для него свойства.
Генерация проекта
Сперва следует установить giter8. Самое простое решение — запустить мой маленький скрипт, который сделает это сам:
curl https://raw.github.com/mbektimirov/android-app-idea.g8/master/install.sh | sh
Если все пройдет успешно, то g8 установится в папку ~/bin. О возможных проблемах смотрите в конце статьи.
Следующий шаг — собственно, создание проекта из шаблона. Сложностей никаких, в процессе установки g8 будет запрашивать свойства. Если значения по умолчанию вас устраивают (они указаны в квадратных скобках), то их можно не указывать.
mbektimirov@mbektimirov-pc:~$ g8 mbektimirov/android-app-idea
Template for Android apps in Scala
package [my.android.project]: ru.my.first.android.scala.project
name [My Android Project]: my super project
main_activity [MainActivity]: MyActivity
api_level [10]: 8
project_scala_version [2.9.1]:
Applied mbektimirov/android-app-idea.g8 in my-super-project
После этого можно лицезреть сгенерированный проект в папке my-super-project, который уже можно деплоить на устройство. Это можно сделать с помощью команды sbt start-device.
Настройка IDE
После того, как вы скачали и установили Idea, ее надо дополнить некоторыми плагинами, а именно для поддержки Scala и SBT, так сказать, не отходя от кассы, чтобы не приходилось каждый раз переключаться на консоль и собирать/деплоить проект оттуда. Плагины доступны из самой Idea в plugin manager’е:
После установки плагинов следует перезагрузить IDE, затем в настройках перейти в раздел SBT и указать путь до sbt-launch.jar:
После этих действий можно загружать наш сгенерированный проект в IDE через «File -> Open project…».
Почти все готово, осталось настроить конфигурацию для запуска проекта с использованием SBT. Для этого в меню «Run» следует выбрать пункт «Edit configurations». В появившемся окне надо создать новую конфигурацию, в нашем случае это будет Android Application, и назвать ее StartDevice. В появившихся настройках выбрать модуль «android-module», снять галочку с «make» и поставить напротив «Run SBT Action». В SBT Action, в свою очередь, добавить задачу «start-device». Скриншот ниже поясняет все проделанные выше действия:
Теперь проект можно запускать по зеленой кнопке или хоткею. Все логи будут писаться в SBT консоль, которая является частью плагина SBT для Idea:
Известные проблемы
- При установке g8 может ругаться на то, что ему не удалось скачать Apache httpclient. Для этого следует почистить кэш в папках ~/.ivy2/cache/org.apache.httpcomponents и ~/.m2/cache/org/apache/httpcomponents.
- Размер стандартного Hello world apk файла составляет 680 Кб. Вероятнее всего эта проблема связана с неправильно работающим proguard, который должен вычленять из apk файла неиспользуемые Scala библиотеки и классы. В ближайшее время я постараюсь написать автору плагина Android для SBT для выяснения путей решения этой проблемы.
- Плагин для разработки под Android на Idea не поддерживается компанией Google, поэтому в ней нет большинства возможностей, которые предоставляет Eclipse.
Что почитать
Разработка на Scala: первые шаги
В статье пойдет речь о базовых принципах работы с языком Scala: установкой, запуском первого проекта и плюсах использования IntelliJ IDEA в качестве платформы для разработки.
Scala — мультипарадигменный язык, спроектированный кратким, элегантным, и типобезопасным для простого и быстрого программирования. В нем органично сочетаются возможности функционального и объектно ориентированного программирования.
Этот язык используется в продуктах таких компаний как Twitter, Яндекс, LinkedIn, Sony, Qiwi, PayPal и других.
http://www.slideshare.net/remeniuk/scala-kazachonak
- http://www.scala-lang.org — официальный сайт
- https://www.coursera.org/course/progfun — Курсы Мартина Одерского создателя языка Scala о принципах функционального программирования на Scala.
Код на Scala компилируется в байткод виртуальной машины Java, и это хорошо, потому что:
- не нужно перекомпилировать программу под множество платформ;
- язык получил проверенные временем GC и JIT-компилятор;
- в программах на Scala могут использоваться библиотеки, написанные на Java;
- модули, написанные на Scala, могут быть использованы из кода на Java.
Поэтому для установки Scala и необходимо наличие платформы Java.
Установка Java
Проверяем наличие платформы Java на своем компьютере командой
java -version
Если вы не увидели что то подобное:
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
то устанавливаем Java SE Development Kit 8, который можно скачать по ссылке http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Выбираем версию для вашей операционной системы.
На этом установка фундамента завершена.
Установка IntelliJ IDEA 15.0
Мой выбор остановился на данной среде разработки. Она удобна, современна, способна поддерживать большое количество языков программирования, одним из которых и является необходимая нам Scala. Удобная навигация по коду. Присутствует интеграция с системами контроля версий, что сделает нашу работу немного проще.
Ссылка на скачивание с официального сайта — https://www.jetbrains.com/idea/ После установки IDEA нам следует добавить в нее плагины для работы с языком Scala.
Делается это так: кликаем по строке Configure и в открывшемся окне выбираем Plugins.
Далее, кликаем на Install jetBrains plugins.
Пишем в поисковой строке «Scala», жмем по кнопке Install и ждем пока плагин установится. После установки мы готовы к запуску проекта на Scala.
Первый проект на Scala
Нажимаем на Create New Project и Выбираем «Scala»
Даем имя нашего проекту и нажимаем Finish.
В созданном проекте создадим исполняемый файл, для этого кликаем по свойствам папки src → New → Scala Class В открывшемся окне даем имя нашему файлу, и меняем Kind с «Scala Class» на «Object»
Написав код, выводящий на экран фразу «Goodbye World», запускаем Run → Run
Получаем на выходе
Работа с GitHub
Как упоминалось выше, IntelliJ IDEA дает возможность работы с системами контроля версий. Рассмотрим как загрузить и как клонировать проект из репозитория. Для этого сначала загрузим написанный только что проект на Scala к себе в Git, затем его же склонируем.
Для загрузки проекта кликаем по вкладке VCS → Import into Version Control → Share Project on GitHub
Логинимся и даем имя нашему новому репозиторию.
Готово, теперь написанный проект хранится в репозитории.
Для клонирования проекта из репозитория выполним следующие шаги File → New → Project from Version Control → GitHub
В открывшемся окне выбираем нужный нам репозиторий и нажимаем «Clone»
На этом собственно и все. Удаленный репозиторий клонирован и проект готов к запуску. Удачи!
«индекс объекта не является членом пакета…
[10 ответов]
Я создал игровой проект с play 2.3.7
В каталоге проекта я запустил activator и запустил команду eclipse
для создания файлов проекта eclipse.
Когда я иду к eclipse (я использую Scala IDE из typesafe Build id: 4.0.0-vfinal-20150119-1023-Typesafe, есть ошибка в моем файле Application.scala:
object index is not a member of package views.html
Что-то не так с моей установкой? Приложение работает нормально, когда я выполняю run
в командной строке консоли активации.
Спасибо!
EDIT: добавлен код
package controllers
import play.api._
import play.api.mvc._
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
Ошибка находится на ‘Ok..’ линия.
В представлениях есть файл под названием index.scala.html, и приложение запускает файл, когда я запускаю его из активатора..
eclipse
scala
playframework-2.0
Поделиться
Источник
user384842
11 февраля 2015 в 15:50
10 ответов
25
Иногда после добавления вида в Play 2.4.x, IntelliJ IDEA иногда путается и совершенно отказывается от сборки. Даже перестроить проект не удается:
Это все еще происходит с time-to-time по IDEA 15. И когда это происходит, командная строка обеспечивает самое быстрое и надежное исправление:
sbt очистить; sbt скомпилировать
Вот и все! IDEA теперь будет компилировать проект, как и ожидалось.
Обновление:
В том редком случае, когда sbt compile
успешно завершается в командной строке, но IntelliJ IDEA 15 все еще дает ту же ошибку «object x is not a member», то это решило путаницу IDEA:
Меню Файл:
Поделиться
Brent Faust
26 января 2016 в 23:55
12
Другие решения для меня не работали. Некоторые дали бы мне разные ошибки, некоторые очистили бы вкладку проблем, но оставили бы меня с красной закорючкой под views.html.index
, и автозаполнение не работало бы с шаблонами scala.html.
Что в итоге сработало, так это открыть свойства проекта, перейти к Java Build Path > Source
и добавить оба следующих каталога:
target/scala-2.11/src_managed/main
target/scala-2.11/twirl/main
Если вы делаете только target/scala-2.11/twirl/main
, то вы пропустите файлы классов, созданные из каталога conf
.
Поделиться
einnocent
23 марта 2015 в 02:13
Поделиться
Luis Rodero-Merino
16 февраля 2015 в 22:49
- Scala IDE: объект scalatest не является членом организации пакетов
Я пытаюсь использовать Scala IDE. Я совершенно новичок в Scala. HelloSpec.scala: import org.scalatest._ class HelloSpec extends FlatSpec with Matchers { The Hello object should say hello in { Hello.greeting shouldEqual hello } } import org.scalatest._ помечено ошибкой: объект scalatest не является…
- Ошибка: значение seq не является членом объекта slick.dbio.DBIO
Я пишу веб-приложение в play framework. Я решил использовать slick (FRM) для запроса в моей базе данных (postgre). Я новичок в slick, поэтому я начал следовать официальному документу slick для пересмотра 3.0.0 http://slick.typesafe.com/doc/3.0.0/gettingstarted.html Согласно документации, я добавил…
4
У меня была та же проблема. Я добавил target/scala-2.x/classes
и target/scala-2.x/classes_managed
к своему пути сборки Java, и Eclipse перестал жаловаться.
Поделиться
Chip France
16 февраля 2015 в 22:21
2
Добавление target/scala-2.11/twirl/main
, который имеет views.html
пакет к исходному коду исправлено для меня.
Поделиться
Surya Prabhakar
30 апреля 2015 в 05:40
2
У меня была та же проблема с запуском Play 2.4.0-RC1, используя макет default SBT (disablePlugins(PlayLayoutPlugin)
) , и я решил ее, добавив к build.sbt
:
sourceDirectories in (Compile, TwirlKeys.compileTemplates) :=
(unmanagedSourceDirectories in Compile).value
Поделиться
Lera
25 апреля 2015 в 22:57
1
Ответ @brent-foust сработал для меня, но только вначале. Каждый раз, когда я перестраивал проект изнутри IDEA, я получал «not found: routes» ошибки изнутри target\scala-2.11\twirl\main\views\html\main.template.scala
, пока снова не выполнял обходной путь Брента.
В конце концов я обнаружил, что решение этой проблемы заключается в изменении строки в файле .iml с
<excludeFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" />
к
<sourceFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" isTestSource="false" />
Я не знаю, каковы долгосрочные последствия этого, но это исправило эту проблему. Некоторые из других подобных проблем, упомянутых выше, также могут быть исправлены путем применения того же изменения к некоторым другим папкам, перечисленным в разделе .ИМЛ.
Поделиться
David Hinson
03 января 2017 в 23:57
0
Для меня при импорте проекта в intellij убедившись, что я «checked» «auto import» checkbox сделал трюк.
Поделиться
Tomer Ben David
18 июля 2015 в 10:32
0
1) добавьте следующую строку в ваш файл sbt.build:
EclipseKeys.preTasks := Seq(compile in Compile)
2) добавьте строку follwing в файл plugins.sbt в папке проекта:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")
3) выполните команду «eclipse» изнутри sbt
как поясняется в документации к игровому фреймворку:
Настройка предпочтительного IDE
Поделиться
user2038596
17 мая 2017 в 23:06
0
В принципе, нам нужен способ поставить скомпилированные классы на путь, чтобы это работало.
Я сделал следующее, чтобы исправить это.
Так как проекты компилируются в каталог target
.
Я пошел по пути сборки Project Properties
— > Java и добавил несколько папок, которые выглядят следующим образом,
target/scala-2.12/routes/main
target/scala-2.12/twirl
target/scala-2.12/twirl/main
Теперь я не хочу, чтобы вы предполагали, что у вас тоже будут эти точные папки. Это зависит от настройки вашего проекта.
Но вы должны добавить папки внутри папки target/scala-2.x.
Поделиться
Som Bhattacharyya
09 ноября 2017 в 14:28
Похожие вопросы:
Scala интерпретатор говорит, что объект не является членом пакета, когда он является
Я забыл скомпилировать объект Scala, необходимый для скрипта Scala. Но после компиляции этого объекта интерпретатор scala все еще жаловался, что объект не является членом пакета!
Squeryl — «CustomTypesMode не является членом пакета org.squeryl.customtypes»?
Я построил squeryl framework с SBT и пытаюсь использовать его с Scala 2.8 и NetBeans 6.9. Я определил модель сущности, как она описана в squeryl intro , но IDE и компилятор жалуются, что…
объект hbase не является членом пакета org.apache.hadoop при компиляции scala
Я использую HBase API в моем проекте scala, но сталкиваюсь с ошибкой компиляции при импорте hbase import org.apache.hadoop.hbase результат компиляции говорит, что объект hbase не является членом…
Scala IDE 4.0.0 считает, что есть ошибки в программе out-of-the-box Play Framework 2.3.7
Я создал программу Play Framework с помощью Typesafe Activator (поэтому она точно следует шаблону). Я использовал sbteclipse-plugin версию 3.0.0 для создания проекта Eclipse и импортировал его в…
Ошибка Play framework only: объект httpclient не является членом пакета org.apache.commons
У меня есть два импорта в scala на play framework. Однако играть продолжайте говорить мне объект httpclient не является членом пакета org.apache.commons. Я добавил commons-httplclient.jar как…
Scala IDE: объект scalatest не является членом организации пакетов
Я пытаюсь использовать Scala IDE. Я совершенно новичок в Scala. HelloSpec.scala: import org.scalatest._ class HelloSpec extends FlatSpec with Matchers { The Hello object should say hello in {…
Ошибка: значение seq не является членом объекта slick.dbio.DBIO
Я пишу веб-приложение в play framework. Я решил использовать slick (FRM) для запроса в моей базе данных (postgre). Я новичок в slick, поэтому я начал следовать официальному документу slick для…
Scala Play: индекс объекта не является членом пакета views.html
Я получаю object index is not a member of package views.html но в отличие от всех других потоков, открытых на эту тему, Моя проблема кажется совершенно не связанной с IDE. Я получаю эту проблему из…
Scala — не является членом пакета
Я учусь Scala так что потерпите меня, если это глупый вопрос. У меня есть этот пакет и класс (разорвал его до самой упрощенной версии): package Foo { class Bar {} } тогда в файле main.scala у меня…
индекс объекта spass не является членом пакета views.html
git clone https://github.com/spass/spass.git Затем импортировал проект ( sbt ) в intellij . Когда я запускаю Rebuild Project я получаю: app/io/spass/controllers/Application.scala Error:(9, 19)…
Откройте для себя Intellij IDEA для Scala — IntelliJ IDEA
Установите подключаемый модуль Scala
Чтобы начать работу со Scala в IntelliJ IDEA, вам необходимо загрузить и включить подключаемый модуль Scala. Если вы запускаете IntelliJ IDEA в первый раз, вы можете установить плагин Scala, когда IntelliJ IDEA предлагает загрузить рекомендуемые плагины. В противном случае вы можете использовать страницу плагинов для установки. После установки IntelliJ IDEA будет отслеживать обновления подключаемого модуля и предложит обновить подключаемый модуль, когда станет доступна новая версия.Вы также можете использовать канал обновления подключаемого модуля на вкладке Updates , расположенной там, чтобы проверить наличие Scala nightly, EAP или сборок выпуска.
Чтобы установить плагин Scala, нажмите Ctrl + Alt + S , откройте страницу плагинов, просмотрите репозитории, чтобы найти плагин Scala, нажмите «Установить» и перезапустите IntelliJ IDEA.
Теперь вы можете успешно извлекать из VCS, создавать или импортировать проекты Scala.
Пользовательский интерфейс
Пользовательский интерфейс для Scala похож на обычный, если вы не работаете с проектами sbt, в этом случае становятся доступными sbt projects tool window и sbt Shell .
Также IntelliJ IDEA позволяет отслеживать анализ ошибок на основе системы типов Scala с использованием выделения типов Scala. По умолчанию он включен, и вы можете увидеть значок, расположенный в нижней части пользовательского интерфейса.Вы можете щелкнуть значок или нажать Ctrl + Alt + Shift + E , чтобы отключить эту функцию.
Самая интересная часть пользовательского интерфейса — это редактор IntelliJ IDEA Editor, поскольку он позволяет вызывать практически любую функцию IDE, не выходя из нее, что помогает организовать макет, в котором у вас больше места на экране, поскольку вспомогательные элементы управления, такие как панели инструментов и окна, скрыты.
Доступ к окну инструмента через его ярлык перемещает фокус ввода на него, поэтому вы можете использовать все команды клавиатуры в его контексте.Когда вам нужно вернуться в редактор, нажмите Escape .
Ниже приведен список ярлыков, которые вызывают наиболее часто используемые окна инструментов:
Окно инструментов | Ярлык |
---|---|
Project | Alt + 1 |
Контроль версий | Alt + 9 |
Run | Alt + 4 |
Отладка | Alt + 5 |
Терминал | Alt + F12 |
Editor | Escape |
Окно инструментов проектов и оболочка Shell доступны через главное меню () или вы всегда можете нажать Ctrl + Shift + A для быстрого поиска этих элементов.
Если вы хотите сосредоточиться на коде, попробуйте режим без отвлекающих факторов. Он удаляет все панели инструментов, окна инструментов и вкладки редактора. Чтобы переключиться в этот режим, в главном меню выберите View | Внешний вид | Войдите в режим без отвлекающих факторов.
Альтернативой режиму без отвлечения может быть скрытие всех окон инструментов, нажав Ctrl + Shift + F12 . Вы можете восстановить макет по умолчанию, нажав этот ярлык еще раз.
Панель навигации — это компактная альтернатива окну инструмента «Проект». Чтобы получить доступ к панели навигации, нажмите Alt + Home .
Большинство компонентов IntelliJ IDEA (как окна инструментов, так и всплывающие окна) обеспечивают быстрый поиск. Эта функция позволяет фильтровать список или переходить к определенному элементу с помощью поискового запроса.
Если вы не знаете ярлык для действия, попробуйте использовать функцию «Найти действие», нажав Ctrl + Shift + A .Начните вводить, чтобы найти действие по его имени, увидеть его ярлык или вызвать его.
Для получения дополнительных сведений см. Обзор пользовательского интерфейса, Основные сведения о редакторе и Окна инструментов.
Основы работы с редактором
Поскольку в IntelliJ IDEA вы можете отменять рефакторинг и отменять изменения из локальной истории, нет смысла каждый раз просить вас сохранять изменения.
Наиболее полезные сочетания клавиш редактора:
Действие | Описание |
---|---|
Перемещение текущей строки кода | Ctrl + Shift + Up Ctrl + Shift + Down |
Дублируйте строку кода | Ctrl + D |
Удалите строку кода | Ctrl + Y |
Прокомментируйте или раскомментируйте строку кода | Ctrl + / |
Комментарий блок кода | Ctrl + Shift + / |
Найти в текущем открытом файле | Ctrl + F |
Найти и заменить в текущем файле | Ctrl + R |
Следующее событие | F3 |
Предыдущее появление | Shift + F3 9001 1 |
Переход между открытыми вкладками | Alt + Right Alt + Left |
Переход назад / вперед | Ctrl + Alt + Left Ctrl + Alt + Right |
Развернуть или свернуть блок кода в редакторе | Ctrl + NumPad + Ctrl + NumPad - |
Сгенерировать | Alt + Insert |
Surround с | Ctrl + Alt + T |
Выделить использование символа | Ctrl + F7 |
Чтобы расширить выделение на основе грамматики, нажмите Ctrl + W .Чтобы уменьшить его, нажмите Ctrl + Shift + W .
IntelliJ IDEA может выбирать более одного фрагмента кода за раз. Вы можете выбрать следующее вхождение с помощью Alt + J и отменить выбор, нажав Alt + Shift + J . Вы даже можете выбрать все вхождения сразу, нажав Ctrl + Alt + Shift + J .
Для получения дополнительной информации см. Основы работы с редактором.
Завершение кода
При доступе к базовому завершению, нажав Ctrl + Пробел , вы получите базовые предложения для переменных, типов, методов, выражений, для имени параметра вы получите предложения по типу и так далее.Когда вы дважды вызываете базовое завершение, отображается больше результатов, включая методы из неявных преобразований, которые вы можете импортировать.
Функция интеллектуального завершения учитывает ожидаемый тип и поток данных и предлагает варианты, соответствующие контексту. Чтобы вызвать умное завершение, нажмите Ctrl + Shift + Пробел . Когда вы дважды вызываете Smart Completion, он показывает больше результатов, включая цепочки.
Чтобы перезаписать идентификатор в каретке, вместо того, чтобы просто вставить предложение, нажмите Tab . Это полезно, если вы редактируете часть идентификатора, например имя файла.
Чтобы позволить IntelliJ IDEA завершить за вас оператор, нажмите Ctrl + Shift + Enter . Завершение оператора автоматически добавит недостающие круглые скобки, скобки, фигурные скобки и необходимое форматирование.
Если вы хотите увидеть предлагаемые параметры для любого метода или конструктора, нажмите Ctrl + P .IntelliJ IDEA показывает информацию о параметрах для каждого перегруженного метода или конструктора и выделяет наилучшее соответствие для уже введенных параметров.
Функция завершения постфикса позволяет преобразовать уже набранное выражение в другое на основе постфикса, который вы вводите после точки.
Для получения дополнительных сведений см. Код автозаполнения.
Навигация
Последние файлы
Большую часть времени вы работаете с ограниченным набором файлов, и вам нужно быстро переключаться между ними.Настоящую экономию времени здесь представляет действие под названием «Последние файлы», которое вызывается нажатием Ctrl + E . По умолчанию фокус находится на последнем доступном файле. Обратите внимание, что вы также можете открыть любое окно инструмента с помощью этого действия:
Перейти к классу доступно при нажатии Ctrl + N и поддерживает сложные выражения, включая верблюжьи неровности, пути, переход по строке, сопоставление отчества и многое другое.Если вы вызовете его дважды, он покажет вам результаты вне классов проекта.
«Перейти к файлу» работает аналогично при нажатии Ctrl + Shift + N , но используется для файлов и папок. Чтобы перейти к папке, завершите свое выражение знаком Slash .
Перейти к символу можно получить, нажав Ctrl + Alt + Shift + N , и позволяет найти метод или поле по его имени.
Окно инструмента «Проект» можно использовать для исследования внутренней структуры файла. Щелкните и в открывшемся списке выберите Показать участников.
Структура
Когда вы не переключаетесь между файлами, вы, скорее всего, перемещаетесь внутри файла. Самый простой способ сделать это - нажать Ctrl + F12 . Всплывающее окно показывает структуру файла и позволяет быстро перейти к любому из них:
Выбрать в
Если вам нужно открыть файл в определенном окне инструмента (или Finder / Explorer), вы можете сделать это. с помощью кнопки Выбрать в действии, нажав Alt + F1 :
Ярлыки навигации включают:
Действие | Ярлык |
---|---|
Искать везде | Двойной Shift |
Перейти в класс | Ctrl + N |
Перейти к файлу | Ctrl + Shift + N |
Перейти к символу | Ctrl + Alt + Shift + N |
Последние файлы | Ctrl + E |
Файловая структура | Ctrl + F12 |
Выбрать в | Alt + F1 |
Перейти к декларации | Ctrl + B |
Перейти к иерархии типов | Ctrl + H |
Показать всплывающее окно UML | Ctrl + Alt + U |
Дополнительные сведения см. В разделе Навигация по исходному коду.
Быстрые всплывающие окна полезны для проверки дополнительной информации, связанной с символом в каретке. Ниже приведен список всплывающих окон, которые вам следует знать, если вы хотите работать более продуктивно:
Действие | Ярлык |
---|---|
Информация о типе | Alt + равно |
Документация | Ctrl + Q |
Быстрое определение | Ctrl + Shift + I |
Показать использование | Ctrl + Alt + F7 |
Показать реализацию | Ctrl + Alt + B |
Неявные преобразования | Ctrl + Shift + Q |
Неявные параметры | Ctrl + Shift + P |
Для символов в редакторе доступны быстрые всплывающие окна; однако они также доступны для элементов из любого другого списка с помощью тех же ярлыков.
Основы рефакторинга
IntelliJ IDEA предлагает полный набор автоматизированных рефакторингов кода, которые при правильном использовании приводят к значительному увеличению производительности. Во-первых, не пытайтесь ничего выбрать, прежде чем применить рефакторинг. IntelliJ IDEA достаточно умен, чтобы выяснить, какой оператор вы собираетесь реорганизовать, и запрашивает подтверждение только в том случае, если возможны несколько вариантов.
Чтобы отменить последний рефакторинг, переключите фокус на окно инструмента «Проект» и нажмите Ctrl + Z .
Действие | Ярлык |
---|---|
Переименовать | Shift + F6 |
Извлечь переменную или ввести | Ctrl + Alt + V |
Извлечь поле | Ctrl + Alt + F |
Извлечь константу | Ctrl + Alt + C |
Извлечь метод | Ctrl + Alt + M |
Извлечь параметр | Ctrl + Alt + P |
Inline | Ctrl + Alt + N |
Копировать | F5 |
Move | F6 |
Рефакторинг этого | Ctrl + Alt + Shift + T |
Для извлечения признака используйте главное меню ().
Реальная экономия времени - это возможность извлечь часть строкового выражения с помощью рефакторинга Extract. Просто выберите фрагмент строки и примените рефакторинг, чтобы заменить все выбранные использования фрагмента введенной константой или переменной.
Дополнительные сведения см. В разделе «Рефакторинг кода».
Поиск использований
Поиск использования помогает быстро найти все фрагменты кода, ссылающиеся на символ в каретке (курсоре), независимо от того, является ли символ классом, методом, полем, параметром или другим утверждением.Просто нажмите Alt + F7 и получите список ссылок, сгруппированных по типу использования, модулю и файлу.
Если вы хотите установить собственные параметры для алгоритма поиска использования, нажмите Ctrl + Alt + Shift + F7 или нажмите первую кнопку на правой панели с результатами поиска.
Если вам нужен простой текст, используйте команду «Найти в пути», нажав Ctrl + Shift + F .
Для получения дополнительных сведений см. Поиск использования.
Инспекции
Инспекции - это встроенные инструменты статического анализа кода, которые помогают находить вероятные ошибки, определять местонахождение мертвого кода, обнаруживать проблемы с производительностью и улучшать общую структуру кода.
Большинство проверок не только сообщают вам, в чем проблема, но и предоставляют быстрые решения, позволяющие сразу же ее устранить. Нажмите Alt + Enter , чтобы выбрать быстрое исправление.
Редактор позволяет быстро перемещаться между выделенными проблемами с помощью сочетаний клавиш. Нажмите F2 , чтобы перейти к следующей задаче, и Shift + F2 , чтобы перейти к предыдущей.
Проверки, которые слишком сложны для выполнения на лету, доступны при выполнении анализа кода для всего проекта. Вы можете сделать это одним из следующих двух способов: выбрав из главного меню или выбрав запуск проверки по ее имени.
Обратите внимание, что в то время как инспекции предоставляют быстрые исправления для кода, который имеет потенциальные проблемы, намерения помогают вам автоматически вносить изменения в правильный код. Чтобы получить список намерений, применимых к коду у курсора, нажмите Alt + Enter .
Подробнее см. Проверка кода.
Стиль кода и форматирование
IntelliJ IDEA автоматически применяет стиль кода, который вы настроили в настройках стиля кода при редактировании, и в большинстве случаев вам не нужно явно вызывать действие Reformat Code.
Однако вы можете в полной мере использовать Scalafmt и использовать его для форматирования кода. Дополнительные сведения см. В разделе «Форматирование Scala».
Проверьте следующие ярлыки форматирования:
Действие | Ярлык |
---|---|
Переформатировать код | Ctrl + Alt + L |
Автоотступ строк | Ctrl + Alt + I |
Оптимизировать импорт | Ctrl + Alt + O |
Код Desugar Scala (файл) | Ctrl + Alt + D |
Вы также можете использовать Scalastyle Inspection для проверки вашего Код Scala.Поместите файл scalastyle_config.xml в каталог
Обратите внимание, что по умолчанию IntelliJ IDEA использует обычные пробелы для отступов вместо табуляции. Если у вас есть файлы с большим количеством отступов, вы можете оптимизировать их размер, включив опцию Использовать символ табуляции, расположенную в.
Дополнительные сведения см. В разделе «Переформатирование исходного кода».
Запуск и отладка
После того, как вы создали конфигурацию запуска / отладки, выбрав из главного меню, вы можете запускать и отлаживать свой код Scala.
Для проектов sbt вы также можете запускать и отлаживать свой код с помощью оболочки sbt. Параметры Использовать оболочку sbt для сборки и импорта и Включить отладку оболочки sbt, расположенную на странице sbt в настройках, позволит вам это сделать.
Для быстрой оценки кода вы можете использовать рабочий лист Scala, который позволяет вам интерактивно запускать ваш код.Нажмите Ctrl + Alt + Shift + X , чтобы создать облегченную версию рабочего листа Scala, и Ctrl + Alt + W , чтобы запустить ее.
Обычные действия для запуска / отладки следующие:
Действие | Ярлык |
---|---|
Выполнить | Shift + F10 |
Отладка | Shift + F9 |
В режиме отладки можно вычислить любое выражение с помощью инструмента «Вычислить выражение», доступ к которому можно получить, нажав Alt + F8 .Этот инструмент обеспечивает автозавершение кода так же, как и в редакторе, поэтому легко вводить любое выражение.
Иногда вам может понадобиться перейти к определенному методу, но не к первому, который будет вызван. В этом случае используйте Smart step into, нажав Shift + F7 , чтобы выбрать конкретный метод.
Действие | Ярлык |
---|---|
Переключить точку останова | Ctrl + F8 |
Шаг в | F7 |
Умный шаг в | Shift + F7 |
Шаг вперед | F8 |
Выйти | Shift + F8 |
Продолжить | F9 |
Вычислить выражение | Alt + F8 |