Разное

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:

  1. SBT builder crashed while compiling. The error message is ‘Could not create directory /XYZ/lib/print’.
  2. 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 иногда путается и совершенно отказывается от сборки. Даже перестроить проект не удается:

enter image description here

Это все еще происходит с time-to-time по IDEA 15. И когда это происходит, командная строка обеспечивает самое быстрое и надежное исправление:

sbt очистить; sbt скомпилировать

Вот и все! IDEA теперь будет компилировать проект, как и ожидалось.

Обновление:

В том редком случае, когда sbt compile успешно завершается в командной строке, но IntelliJ IDEA 15 все еще дает ту же ошибку «object x is not a member», то это решило путаницу IDEA:

Меню Файл:

enter image description here

Поделиться


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 предлагает загрузить рекомендуемые плагины. В противном случае вы можете использовать страницу плагинов для установки. Plugin page После установки 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 :

Select in

Ярлыки навигации включают:

Действие Ярлык
Искать везде Двойной 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 в каталог /.idea или / project и проверьте свой код.

Обратите внимание, что по умолчанию 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 , чтобы выбрать конкретный метод.

900

Если вы хотите «перемотать» во время отладки, вы можете сделать это с помощью действия Drop Frame.Это особенно полезно, если вы по ошибке зашли слишком далеко. Это не приведет к возврату глобального состояния вашего приложения, но, по крайней мере, позволит вам вернуться к предыдущему кадру стека.

Любую точку останова можно быстро отключить, нажав на желоб, удерживая Alt . Чтобы изменить детали точки останова, например условия, нажмите Ctrl + Shift + F8 .

Дополнительные сведения см. В разделе «Запуск и отладка».

Повторная загрузка изменений и горячая замена

Иногда вам нужно вставить незначительные изменения в код, не останавливая процесс. Поскольку виртуальная машина Java имеет функцию HotSwap, IntelliJ IDEA обрабатывает эти случаи автоматически, когда вы вызываете Make.

Серверы приложений

При необходимости вы можете развернуть приложение Scala на сервере.

Подробнее см. Работа с серверами приложений.

Когда вы импортировали или создали свой проект sbt, вы можете редактировать его файл build.sbt прямо в редакторе. В build.sbt вы можете указать параметры компилятора, информацию о ваших подпроектах, а также определить свои задачи и настройки. Каждый раз, когда вы изменяете файл build.sbt, вам необходимо синхронизировать ваши изменения с моделью проекта в IntelliJ IDEA.

Вы можете выбрать параметр «Использовать автоимпорт», чтобы синхронизировать изменения, внесенные в сборку.sbt автоматически. Чтобы получить доступ к этой опции, выберите.

Для ручной синхронизации используйте соответствующее действие на панели инструментов окна инструментов sbt projects :.

Обратите внимание, что любую задачу sbt можно присоединить для запуска перед конфигурацией запуска.

IntelliJ IDEA также позволяет использовать другие инструменты сборки, такие как Gradle или Maven, для сборки проекта Scala.

Последнее изменение: 19 августа 2020 г.

Работа с кодом Scala в редакторе - IntelliJ IDEA

IntelliJ IDEA позволяет использовать различные действия намерения Scala, преобразовывать код из Java в Scala и использовать различные шаблоны Scala при работе в IntelliJ Редактор IDEA.

Строки в Scala

Вы можете добавлять разные намерения для строк, выполнять разные действия и устанавливать другой формат для многострочных строк.

Проверьте следующие примеры:

Используйте рабочий лист Scala, чтобы быстро оценить свои результаты.

  • Вставить пробел с конкатенацией ("+ +") в строку.

  • Преобразуйте строку в многострочную строку, используя намерение «Преобразовать в" "" строку "" "и наоборот.

    При преобразовании в многострочные строки удаляются экранированные последовательности, такие как '\\' или '\ n'.

    1. Введите свою строку, нажмите Alt + Enter и из списка намерений выберите Преобразовать в "" "строку" "".

    2. Вы также можете преобразовать многострочную строку в обычную строку. Нажмите Alt + Enter , чтобы открыть список намерений. Выберите «Преобразовать в строку» и нажмите . Введите .Посмотреть результат.

    3. Чтобы ввести многострочную строку, введите в редакторе тройные кавычки. Если вы нажмете Enter , он автоматически вызовет метод stripMargin . Метод stripMargin удаляет левую часть многострочной строки до указанного разделителя. Белые пространства также сохраняются.stripMargin

  • Добавьте намерение .replace ("\ r", ""). Это намерение позволяет вам держать курсор в правильном месте на следующей строке многострочных строк независимо от того, какая у вас операционная система в данный момент.

    Введите многострочную строку, нажмите Alt + Enter и выберите соответствующее намерение из списка.

    the replace intention

  • Используйте намерение Inject Language / Reference, чтобы вставить язык или ссылку в многострочные строковые литералы.Для получения дополнительной информации см. Документацию по языковым инъекциям.

    Вы можете вставлять языки в многострочные строковые литералы с полями.

    language injection with Stripmargins

  • Используйте вкладку «Многострочные строки» в настройках Scala, чтобы установить другой формат для параметров многострочных строк, таких как отступ Margin char или отключить поддержку многострочных строк.
    1. В главном меню выберите.

    2. На странице Scala выберите вкладку Многострочные строки.the Multi-line strings settings

    3. Измените настройки и нажмите OK.

  • Превратить простую строку в интерполированную, добавив ссылку на переменную.

Неявные подсказки

IntelliJ IDEA позволяет включать, раскрывать и сворачивать подсказки редактора для неявных преобразований и аргументов, которые помогут вам прочитать код.

  1. На главной панели инструментов выберите.

  2. В редакторе щелкните подсказку правой кнопкой мыши и во всплывающем меню выберите соответствующее действие, чтобы развернуть существующую подсказку, отключить режим или просмотреть неявные аргументы.Implicit hints popup

В качестве альтернативы, находясь в редакторе, вы можете нажать Ctrl + Alt + Shift + + , чтобы включить неявные подсказки. Если вы снова нажмете тот же ярлык, IntelliJ IDEA развернет неявные подсказки, чтобы показать вам более подробную информацию. Нажмите Ctrl + Alt + Shift + - , чтобы свернуть подсказки.

Подсказки типов для цепочек методов

IntelliJ IDEA автоматически отображает подсказки типов для длинных цепочек выражений.

Inlay hints for Scala method chains

Вы можете отключить подсказки вставки, если щелкните подсказку правой кнопкой мыши и в контекстном меню снимите флажок Показывать подсказки вставки цепочки методов. В том же меню вы можете управлять отображением подсказок для вкладок и скрытыми подсказками.

Hints context menu

Доступ к настройкам подсказок для вкладок

  1. В диалоговом окне «Настройки / Предпочтения» Ctrl + Alt + S перейдите к.

  2. В списке выберите Цепочки методов и установите или снимите следующие параметры:
    • Показать подсказки цепочки методов: снимите этот флажок, чтобы отключить подсказки.

    • Выровнять подсказки типов в цепочках методов: по умолчанию IntelliJ IDEA отображает подсказки в виде отдельного столбца, что помогает легко просматривать поток типов.

    • Скрыть идентичные типы в цепочках методов: с помощью этой опции вы можете опускать подсказки, когда тип очевиден.

    • Минимальный уникальный тип для отображения цепочек методов: вы можете изменить количество уникальных типов в цепочке, которые требуются для отображения подсказок.

Поиск использования имплицитов

Вы можете перейти от определений имплицитов к их использованию с помощью действия «Найти использования».

Эта возможность основана на индексах байт-кода, а также может использоваться для поиска следующих скрытых элементов, которые отсутствуют в исходном коде «как есть»:

  • применить / неприменить вызовы методов

  • Создание экземпляров типа Single Abstract Method (SAM)

  • для каждой карты / / flatMap / filter / withFilter вызывает через for-compognition

  1. в имплицитном редакторе определение и в контекстном меню выберите Найти использование Alt + F7 .

  2. Просмотрите результат в окне инструмента поиска. Find usages for implicits

Автоимпорт для неявных преобразований

IntelliJ IDEA поддерживает автоматический импорт для неразрешенных неявных преобразований.

  1. Введите свой код в редакторе. Поместите курсор в неразрешенное выражение и нажмите Alt + Enter .

  2. В списке предложенных вариантов выберите преобразование для импорта.Intention action for the implicit conversions auto-import

    В результате IntelliJ IDEA добавляет необходимые операторы импорта.

    result of the implicit auto-import

Когда вы помещаете курсор в неразрешенное выражение, IntelliJ IDEA отображает всплывающее окно, предлагающее вариант импорта. Вы можете отключить всплывающее уведомление в настройках автоматического импорта.

Неявные преобразования

IntelliJ IDEA позволяет вызывать методы и аргументы неявного преобразования.

Метод преобразования неявно

  1. Выберите выражение и нажмите CTRL + Shift + Q ( CTRL + Q для macOS), чтобы вызвать список применимых неявных преобразований. В списке отображается обычная область видимости, отображаемая вверху, и расширенная область, отображаемая внизу списка.

    IntelliJ IDEA выделяет неявное преобразование, которое использовалось для выбранного выражения. Если IntelliJ IDEA не может найти неявное преобразование или находит более одного совпадения, открывается список Introduce Variable.

    Choose implicit conversion

  2. При необходимости сделайте метод неявного преобразования явным. Нажмите Alt + Enter и выберите Сделать явным или Сделать явным (метод импорта). Make explicit
    • Если выбрать Сделать явным, IntelliJ IDEA вернет вызов метода с именем класса. Это может быть полезно, если вам нужно убедиться, что компилятор импортирует определенный метод неявного преобразования, который вы изначально хотели:

    • Если вы выберете Сделать явным (метод импорта), то метод импортируется статически, и IntelliJ IDEA возвращает только его вызов без имени класса.Кроме того, в следующий раз, когда вы откроете список полезных неявных преобразований, вы увидите этот метод в обычной области:

Неявно преобразовать аргумент

  1. Поместите курсор на метод, в котором использовалось неявное преобразование, и нажмите Ctrl + Shift + P для вызова неявных аргументов. Это может быть полезно для анализа кода, когда вы хотите узнать, какие неявные аргументы были переданы конкретному вызову.IntelliJ IDEA также позволяет просматривать рекурсивные неявные аргументы.

    IntelliJ IDEA выделяет вызов метода, в котором использовались неявные аргументы.

  2. Если IntelliJ IDEA не может найти вызовы методов, в которые были переданы неявные параметры, отображается всплывающее сообщение:

Действие с информацией о типе

IntelliJ IDEA позволяет работать с выводами типов с помощью действия Scala Show Type Info:

  • Чтобы вызвать действие Показать информацию о типе в редакторе, перейдите к значению и нажмите Alt + Equals или Ctrl + Shift + P (для Mac OS): Show type info for string

    Если вы выбрали Показать информацию о типе при наведении курсора мыши после , мс на вкладке Редактор в, вы можете перемещаться с помощью мыши к значению, чтобы увидеть информацию о его типе.

  • Вы также можете увидеть информацию о типе в определении значения. Поместите курсор в определение значения и нажмите Alt + Equals или Ctrl + Shift + P (для Mac OS): Show type info for integer

    Вы можете использовать те же ярлыки для просмотра информации о типе выражений.

  • Чтобы добавить аннотацию типа, выделите значение, нажмите Shift + Enter и в контекстном меню выберите Добавить аннотацию типа к определению значения: в результате будет добавлена ​​аннотация типа.Add type annotation Чтобы удалить аннотацию типа, нажмите Shift + Enter и выберите Удалить аннотацию типа из определения значения.

Выражения переноса / развертывания

Вы можете автоматически переносить или развертывать выражения в коде Scala по мере ввода.

Чтобы управлять поведением редактора в Scala, обратитесь к настройкам смарт-клавиш.

  1. Введите код в редакторе.

  2. Добавьте открывающую скобку перед выражением, которое вы хотите заключить в оболочку, IntelliJ IDEA автоматически добавляет закрывающую скобку в конец выражения.Чтобы развернуть выражение, удалите открывающую скобку, IntelliJ IDEA удалит закрывающую скобку автоматически. Wrap / unwrap method

Завершение кода

Вы можете использовать завершение кода для следующих действий:

  • Чтобы импортировать классы, нажмите Shift + введите в коде, выберите Импортировать класс. Однако во многих случаях IntelliJ IDEA распознает, что вам нужно импортировать, и отображает список предложений.Import class

  • Предложение типа на основе имени для параметров. IntelliJ IDEA позволяет автоматически заполнять имя и тип перед фактическим добавлением ссылки на тип. Type suggestions for parameters

  • Вызвать преобразование в намерение интерполированной строки.
    Вы можете легко преобразовать обычную строку в интерполированную, используя завершение кода после $ . Convert to interpolated string Либо выберите значение с конкатенацией в строке, нажмите Alt + Enter и выберите «Преобразовать в интерполированную строку».

    Параметр «Преобразовать в форматированную строку» позволяет получить основную строку в формате Java.

  • Если у вас есть запечатанные типы с наследниками, перечислениями Java и Scala, вы можете создать для них исчерпывающую проверку соответствия. Обратите внимание, что доступно автозаполнение. the exhaustive match checking В результате компилятор проверяет соответствие шаблону для всех возможных членов запечатанного типа.

  • Вы можете заполнить код не только внутри case clauses, но вы также можете заполнить все case clause. case clause completion

Создать на основе использования

IntelliJ IDEA позволяет создавать новые элементы кода без их предварительного объявления:

  1. В редакторе введите имя нового элемента кода и нажмите Alt + Enter .

  2. Из списка намерений выберите нужное.Create from usage Нажмите Введите .

Представление структуры

IntelliJ IDEA позволяет просматривать структуру кода:

  • Чтобы открыть окно инструмента структуры, нажмите Alt + 7 . View code structure

  • Чтобы перейти из окна инструмента «Структура» к элементу кода в редакторе, нажмите F4 .
    Чтобы выделить код, нажмите Ctrl + Enter .

Преобразование кода Java в Scala

IntelliJ IDEA позволяет преобразовывать код Java в Scala.

  1. Скопируйте свой Java-код (выражение, метод, класс) и вставьте его в файл Scala.

  2. IntelliJ IDEA отображает диалоговое окно «Преобразовать код из Java», предлагающее преобразование. Щелкните ОК.

Если вы не хотите использовать действия копирования / вставки, вы можете открыть файл Java в редакторе и выбрать или нажать Ctrl + Shift + G .

В этом случае IntelliJ IDEA создаст файл Scala с преобразованным кодом.

Декомпилировать код Scala в Java

Вы можете декомпилировать код Scala в Java, чтобы увидеть, как определенный фрагмент кода транслируется и реализуется в Java.

  1. В окне инструмента «Проект» щелкните правой кнопкой мыши класс Scala, который нужно декомпилировать.

  2. В контекстном меню выберите «Декомпилировать Scala в Java».

IntelliJ IDEA преобразует код в Java и открывает преобразованный файл в редакторе.

Вы также можете открыть класс Scala в редакторе и использовать его контекстное меню для преобразования.

Scala генерирует действия

Используйте Alt + Insert для создания таких действий, как переопределение, делегирование или реализация методов.

Например, выберите действие Переопределить методы. IntelliJ IDEA отображает диалоговое окно со списком методов, которые можно переопределить. Выберите нужный и нажмите ОК.

Override method

Соответствующее завершение работает при вводе ключевого слова override .

Completion for the override action

Шаблоны Scala

IntelliJ IDEA позволяет использовать предопределенные шаблоны Scala.

  1. В редакторе начните вводить свой код, нажмите Ctrl + J .
    IntelliJ IDEA отображает список доступных Live-шаблонов для Scala.

  2. Выберите нужный и нажмите Введите . Scala templates

Вы также можете определить новый шаблон или отредактировать существующий.

  1. Выбрать.

  2. Из параметров справа откройте список шаблонов Scala. Scala templates settings

  3. Если вы хотите добавить новый шаблон, щелкните the Add button.
    Если вы хотите отредактировать существующий шаблон, выберите тот, который вам нужен, и измените определения по умолчанию.

Завершение постфикса Scala

Вы можете преобразовать уже набранное выражение в другое на основе постфикса, который вы вводите после точки.

Scala post-fix completion

Чтобы включить / отключить автозавершение постфикса или просмотреть список предопределенных шаблонов для постфикса, их описания и образцы кода, откройте страницу завершения постфикса, расположенную в.

Инспекции Scala

Вы можете проверить доступные инспекции для Scala на странице Инспекции в Ctrl + Alt + S .

Поскольку IntelliJ IDEA также поддерживает Akka, доступно несколько инспекций Akka.

Akka inspections settings

Последнее изменение: 19 августа 2020 г.

Начало работы со Scala в IntelliJ

В этом руководстве мы увидим, как создать минимальный проект Scala с помощью IntelliJ.
IDE с плагином Scala. В этом руководстве IntelliJ загрузит для вас Scala.

Установка

  1. Убедитесь, что у вас установлен Java 8 JDK (также известный как 1.8)
    • Запустите javac -version в командной строке и убедитесь, что вы видите
      javac 1.8 .___
    • Если у вас нет версии 1.8 или выше, установите JDK
  2. Затем загрузите и установите IntelliJ Community Edition
  3. Затем, после запуска IntelliJ, вы можете загрузить и установить плагин Scala, следуя инструкциям на
    как установить плагины IntelliJ (найдите «Scala» в меню плагинов.)

При создании проекта мы устанавливаем последнюю версию Scala.
Примечание: если вы хотите открыть существующий проект Scala, вы можете нажать Открыть
когда вы запускаете IntelliJ.

Создание проекта

  1. Откройте IntelliJ и щелкните File => New => Project
  2. На левой панели выберите Scala. На правой панели выберите IDEA.
  3. Назовите проект HelloWorld
  4. Предполагая, что вы впервые создаете проект Scala с IntelliJ,
    вам необходимо установить Scala SDK. Справа от поля Scala SDK,
    нажмите кнопку Создать .
  5. Выберите самый высокий номер версии (например,грамм. 2.13.3) и нажмите Загрузить . Это может
    займет несколько минут, но в последующих проектах может использоваться тот же SDK.
  6. После создания SDK и возврата в окно «Новый проект» нажмите Готово .

Запись кода

  1. На панели Project слева щелкните правой кнопкой мыши src и выберите
    Новый => Scala class . Если вы не видите Scala class , щелкните правой кнопкой мыши HelloWorld и выберите Добавить поддержку платформы… , выберите Scala и продолжите.Если вы видите Ошибка: библиотека не указана , вы можете либо нажать кнопку загрузки, либо выбрать путь к библиотеке вручную.
  2. Назовите класс Hello и измените Kind на объект .
  3. Измените код в классе на следующий:
  объект Hello extends App {
  println ("Привет, мир!")
}
  

Запуск

  • Щелкните правой кнопкой мыши Hello в коде и выберите Run ‘Hello’ .
  • Готово!

Экспериментируя со Scala

Хороший способ опробовать примеры кода - использовать Scala Worksheets

.

  1. На панели проекта слева щелкните правой кнопкой мыши
    src и выберите New => Scala Worksheet .
  2. Назовите свой новый рабочий лист Scala «Математик».
  3. Введите следующий код в рабочий лист:
  def квадрат (x: Int) = x * x

квадрат (2)
  

Если вы измените свой код, вы заметите, что он оценивается
на правой панели.Если вы не видите правой панели, щелкните правой кнопкой мыши свой рабочий лист Scala на панели «Проект» и выберите «Оценить рабочий лист».

Следующие шаги

Теперь вы знаете, как создать простой проект Scala, который можно использовать
для начала изучения языка. В следующем уроке мы познакомим вас с
важный инструмент сборки под названием sbt, который можно использовать для простых проектов
и производственные приложения.

Следующее: создание проекта Scala с IntelliJ и sbt

Создание проекта Scala с IntelliJ и sbt

В этом руководстве мы увидим, как создать проект Scala с помощью sbt.sbt - популярный инструмент для компиляции, запуска и тестирования проектов Scala любого
размер. Использование инструмента сборки, такого как sbt (или Maven / Gradle), становится важным после создания проектов с зависимостями.
или более одного файла кода.
Мы предполагаем, что вы выполнили
первый учебник.

Создание проекта

В этом разделе мы покажем вам, как создать проект в IntelliJ. Однако, если вы
удобно работать с командной строкой, мы рекомендуем попробовать.
Начал с Scala и sbt в командной строке, а потом вернулся
сюда, в раздел «Написание кода Scala».

  1. Если вы не создавали проект из командной строки, откройте IntelliJ и выберите «Создать новый проект»
    • На левой панели выберите Scala, а на правой панели выберите sbt
    • Нажмите Далее
    • Назовите проект «SbtExampleProject»
  2. Если вы уже создали проект в командной строке, откройте IntelliJ, выберите Import Project и откройте файл build.sbt для вашего проекта
  3. Убедитесь, что JDK версии - 1.8 и sbt версии не менее 0,13,13
  4. Выберите Использовать автоматический импорт , чтобы зависимости загружались автоматически, когда они доступны
  5. Выбрать Готово

Понимание структуры каталогов

sbt создает множество каталогов, которые могут быть полезны, когда вы начнете создавать
более сложные проекты. Вы можете пока игнорировать большинство из них
но вот для чего все это нужно:

  - .idea (файлы IntelliJ)
- проект (плагины и дополнительные настройки для sbt)
- src (исходные файлы)
    - основной (код приложения)
        - java (исходные файлы Java)
        - scala (исходные файлы Scala) <- Это все, что нам сейчас нужно
        - Скала-2.12 (специальные файлы Scala 2.12)
    - test (модульные тесты)
- цель (сгенерированные файлы)
- build.sbt (файл определения сборки для sbt)
  

Написание кода Scala

  1. На панели Project слева разверните SbtExampleProject => src
    => основной
  2. Щелкните правой кнопкой мыши scala и выберите Новый => Пакет
  3. Назовите пакет example и нажмите OK .
  4. Щелкните правой кнопкой мыши пакет , пример и выберите New => Scala class .
  5. Назовите класс Main и измените Kind на объект .
  6. Измените код в классе на следующий:
  объект Main extends App {
  значение = Seq (42, 75, 29, 64)
  println (s "Самый старый человек - $ {age.max}")
}
  

Примечание. IntelliJ имеет собственную реализацию компилятора Scala, а иногда и вашу
код правильный, даже если IntelliJ указывает иное.Вы всегда можете проверить
чтобы узнать, может ли sbt запустить ваш проект из командной строки.

Запуск проекта

  1. Из меню Run выберите Edit configurations
  2. Нажмите кнопку + и выберите sbt Task .
  3. Назовите его Запустите программу .
  4. В поле Задачи введите ~ запустить . ~ заставляет sbt перестроить и перезапустить проект
    при сохранении изменений в файле в проекте.
  5. Щелкните ОК .
  6. В меню Выполнить . Щелкните Run ‘Run the program’ .
  7. В коде заменить 75 на 61
    и посмотрите обновленный вывод в консоли.

Добавление зависимости

Немного поменяв шестерни, давайте посмотрим, как использовать опубликованные библиотеки для добавления
дополнительные функции для наших приложений.

  1. Откройте build.sbt и добавьте следующую строку:
  libraryDependencies + = "org.scala-lang.modules "%%" комбинаторы-парсера scala "%" 1.1.2 "
  

Здесь libraryDependencies - это набор зависимостей, и, используя + = ,
мы добавляем зависимость scala-parser-combinators к набору зависимостей, которые будет использовать sbt
и получить при запуске. Теперь в любом файле Scala вы можете импортировать классы,
объекты и т. д. из scala-parser-комбинаторов с обычным импортом.

Вы можете найти другие опубликованные библиотеки на
Scaladex, индекс библиотеки Scala, где вы
также можно скопировать указанную выше информацию о зависимостях для вставки в сборку .сбт
файл.

Следующие шаги

Перейдите к следующему руководству из серии «Начало работы с IntelliJ » и узнайте о тестировании кода Scala в IntelliJ с помощью ScalaTest.

или

Тестирование Scala в IntelliJ с помощью ScalaTest

Для Scala существует множество библиотек и методологий тестирования,
но в этом руководстве мы продемонстрируем один популярный вариант из фреймворка ScalaTest.
называется FunSuite.

Предполагается, что вы знаете, как создать проект в IntelliJ.

Установка

  1. Создайте проект sbt в IntelliJ.
  2. Добавьте зависимость ScalaTest:
    1. Добавьте зависимость ScalaTest в файл build.sbt :
        libraryDependencies + = "org.scalatest" %% "scalatest"% "3.0.8"% Тест
        
    2. Если вы получили уведомление «build.sbt was changed», выберите auto-import .
    3. Эти два действия заставят sbt загрузить библиотеку ScalaTest.
    4. Дождитесь завершения синхронизации sbt ; в противном случае FunSuite и test () будут
      неузнанный.
  3. На панели проекта слева разверните src => main .
  4. Щелкните правой кнопкой мыши scala и выберите New => Scala class .
  5. Назовите его CubeCalculator , измените Kind на объект и щелкните OK .
  6. Замените код следующим:
      объект CubeCalculator расширяет приложение {
       def cube (x: Int) = {
         х * х * х
       }
     }
      

Создание теста

  1. На панели проекта слева разверните src => test .
  2. Щелкните правой кнопкой мыши scala и выберите New => Scala class .
  3. Назовите класс CubeCalculatorTest и щелкните OK .
  4. Замените код следующим:
      импорт орг.scalatest.FunSuite
        
     class CubeCalculatorTest расширяет FunSuite {
       test ("CubeCalculator.cube") {
         assert (CubeCalculator.cube (3) === 27)
       }
     }
      
  5. В исходном коде щелкните правой кнопкой мыши CubeCalculatorTest и выберите
    Запустите «CubeCalculatorTest» .

Что такое код

Давайте пройдемся по этой строке за строкой:

  • class CubeCalculatorTest означает, что мы тестируем объект CubeCalculator
  • расширяет FunSuite позволяет нам использовать функциональность класса ScalaTest FunSuite
    например, тест функция
  • test - это функция из библиотеки FunSuite, которая собирает
    является результатом утверждений в теле функции.
  • "CubeCalculator.cube" - это имя теста. Вы можете называть это как угодно, но только не
    одно соглашение - «ClassName.methodName».
  • assert принимает логическое условие и определяет, прошел ли тест или нет.
  • CubeCalculator.cube (3) === 27 проверяет, соответствует ли вывод функции cube
    на самом деле 27. === является частью ScalaTest и предоставляет чистые сообщения об ошибках.

Добавление еще одного тестового примера

  1. Добавьте еще один оператор assert после первого, который проверяет куб
    из 0 .
  2. Повторите тест еще раз, щелкнув правой кнопкой мыши CubeCalculatorTest и выбрав
    «Запустите CubeCalculatorTest ».

Заключение

Вы видели один способ протестировать свой код Scala. Вы можете узнать больше о ScalaTest
FunSuite на официальном сайте.

Топ-5 IDE и текстовых редакторов для Scala

За последний год Scala добилась впечатляющего подъема в рейтинге TIOBE Index и даже вошла в первую двадцатку. Неудивительно, почему разработчики стекаются к Scala: это полезный заменитель Java, который может работать параллельно с Java на JVM.

Scala была довольно стабильной за последние несколько лет. Это подходящий язык функционального программирования для начинающих. Недавние новости об обновлениях 2.13 и будущих выпусках Dotty определенно вызвали больший интерес среди разработчиков.

Как всегда, этот список является делом личных предпочтений. Мы не можем охватить все существующие IDE и текстовые редакторы. Однако, если мы забыли вашу любимую IDE для Scala, сообщите нам об этом в комментариях ниже!

Вот 5 наших лучших IDE и текстовых редакторов для Scala!

Scala IDE для Eclipse

Конечно, есть расширение Scala для Eclipse.Почему бы этого не было? Эта Scala IDE обеспечивает специальную поддержку для разработки чистых Scala и смешанных приложений. Scala IDE 3.0 предлагает разработчикам целый ряд инструментов и функций, а также несколько заметных исправлений ошибок.

Расширенные инструменты редактирования включают автозавершение кода, неявное и семантическое выделение, а также полностью новое руководство по отступам. Есть блестящий отладчик Scala, который упростит вам жизнь, а также надежный поисковик тестов Junit и асинхронный отладчик.

Более подробную информацию о Scala IDE можно найти здесь.Scala IDE имеет открытый исходный код и доступна по лицензии Scala.

СМОТРИ ТАКЖЕ: интегрируйте инструменты Scala в свой рабочий процесс с помощью Build Server Protocol

ENSIME

Это что-то вроде двойника. Emacs и Atom - текстовые редакторы с отличной поддержкой Scala, но сегодня мы сосредоточимся на базовой технологии, которая делает это возможным - ENSIME. ENSIME - это бесплатное программное обеспечение, предназначенное для добавления функций, подобных Scala и Java IDE, в ваш любимый текстовый редактор.

ENSIME - это не совсем текстовый редактор или IDE.Чтобы использовать его, вам понадобится инструмент сборки, файл .ensime и текстовый редактор. Инструмент сборки загружает сервер энсиме , и текстовый редактор запускает его. Хотя это немного сложнее, чем в большинстве IDE, преимущества впечатляют.

ENSIME поддерживает контекстное завершение и семантическое выделение с неявным расширением. Разработчики могут легко перейти к исходному коду или документации. ENSIME показывает предполагаемые типы, поддерживает рефакторинг и, что наиболее важно, в вашем коде появляются красные волнистые линии, чтобы выделить ошибки и предупреждения.

Более подробную информацию о ENSIME можно найти здесь. ENSIME - это бесплатное программное обеспечение, которое полагается на пожертвования и спонсорство таких разработчиков, как вы.

IntelliJ IDEA

IntelliJ IDEA и раньше создавала подобные списки, поскольку эта функциональная и эргономичная IDE для JVM предлагает поддержку множества языков. Хотя технически это IDE для Java, IDE обеспечивает поддержку множества других языков, таких как Scala, Groovy, Kotlin, JavaScript, TypeScript и SQL.

В дополнение к множеству функций IntelliJ IDEA предлагает поддержку Scala при тестировании с помощью ScalaTest.Это позволяет разработчикам с легкостью выполнять модульное тестирование. Другие функции включают интеллектуальное завершение, языковую инъекцию, среду, ориентированную на редактор, и множество полезных инструментов сборки.

Дополнительную информацию о IntelliJ IDEA можно найти здесь. В то время как IntelliJ IDEA Ultimate требует покупки и годовой подписки, версия Community имеет открытый исходный код.

СМОТРИ ТАКЖЕ: Краткий обзор инструментов сборки в Scala

NetBeans

NetBeans IDE позволяет разработчикам быстро и легко разрабатывать настольные, мобильные и веб-приложения.Благодаря многочисленным функциям редактирования, анализа и преобразования IDE NetBeans упрощает работу разработчиков. Стоит взглянуть только на инструмент управления проектами.

Подключаемый модуль Scala для NetBeans включает полный редактор Scala с синтаксисом и семантической окраской, навигатором структуры, автозавершением кода и т. Д. Также есть отладчик, интерактивная консоль и интеграция с Junit и Maven.

Дополнительную информацию о подключаемом модуле Scala для NetBeans можно найти здесь.NetBeans бесплатен, имеет открытый исходный код и переходит на Apache.

Vim

Великая старая дама для любого разработчика, Vim - это текстовый редактор для разработчиков, которые действительно, очень хотят настроить свой собственный опыт. Фактически, это иногда основная претензия к Vim: разработчикам приходится устанавливать множество плагинов, чтобы действительно получить желаемую среду. Тем не менее, у Vim есть несколько плагинов Scala, чтобы заставить его работать.

Vim-scala - хороший базовый плагин для управления синтаксисом.Популярным плагином автозавершения кода является deoplete.nvim, фреймворк для асинхронного автозавершения с темным питанием. fzf - это независимая программа командной строки для Vim, которая обрабатывает такие вещи, как «Перейти к файлу» и «Перейти к определению». Совместное использование всех трех этих плагинов может заставить Scala действительно работать в Vim.

Более подробную информацию о Vim можно найти здесь. Vim имеет открытый исходный код.

СМОТРИ ТАКЖЕ: насколько хорошо вы знаете свои мелочи Scala?

Достойные упоминания

Другие варианты Scala включают Visual Studio Code от Microsoft.VS Code имеет расширения для десятков языков, включая Scala, для более удобного редактирования. Разработчики также могут попробовать Sublime Text, бесплатную альтернативу, которая имеет ряд функций для редактирования кода, разметки и прозы.

Ищете наши любимые IDE на других языках? Посмотрите их здесь:

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Действие Ярлык
Переключить точку останова Ctrl + F8
Шаг в F7
Умный шаг в Shift + F7
Шаг вперед F8
Выйти Shift + F8
Продолжить F9
Вычислить выражение Alt + F8
Ноябрь 2024
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930 
2024 © Все права защищены. Карта сайта