Какие Инструменты делают Вас, люди используют для работы с Scala? Для моего приобретения знаний фазы я использовал Scala REPL и взломал некоторый код с TextMate и скомпилировал его с scalac
CLI. Но поскольку проекты увеличиваются в размере, намного более сложные инструменты требуются.
Я знаю о плагинах Scala для Elipse, IntelliJ и Netbeans, и я судил их всех. Лучшим является, по моему скромному мнению, IntelliJ, но все еще далеко от того, чтобы быть прекрасным.
Главной проблемой, которую я имею, является отсутствие автоматического завершения. Как not-so-advanced кодер Scala, я все еще не знаю целый стандартный API и имею для переключения между Scaladoc и IDE регулярно. Это испытывает желание "уничтожать производительность". Но им всем не удается автоматически заполнить аргументы метода. (Я слышал, что аргументы метода не включены в скомпилированный код scala, но что относительно того, чтобы присоединить источник, чтобы сделать автоматическое завершение?)
Другой очень раздражающей проблемой является процесс сборки. Я использую Знатока, чтобы разработать мои проекты Scala и управлять их зависимостями. Но тем не менее, я должен сделать, полное восстанавливает для тестирования моих изменений. Возможно, я испорчен возрастающими Затмениями, восстанавливают доступный в мире Java, но похоже на большую проблему мне.
Мне нравится Scala очень, и я чувствую путь, более продуктивный при кодировании, но отсутствие sophisticed инструментов позволило мне чувствовать себя менее продуктивным. И оба, кажется, уравновешивают себя.
Так, каков мой вопрос? Я сомневаюсь относительно каждого программиста Scala старое доброе использование vim
или emacs
наряду с scalac
сделать их работу. Таким образом, какие инструменты Вы используете? Какие рабочие процессы Вы разработали для обеспечения скорости в разработку с языком Scala?
Разъяснение, что я ment с автозавершением аргументов метода.
val myList = "foo" :: "all your base" :: Nil
myList.partition(_.length > 3)
Для кода выше, IntelliJ не удается предоставить мне информацию, что раздел требует, чтобы я передал a () => Boolean
функция. На самом деле IntelliJ не проверяет на это ограничение. Я могу передать a String
и IntelliJ не укажет на мою ошибку, пока я не сделаю компиляцию.
Ознакомьтесь с параметрами командной строки для Scalac.
-deprecation
-Xprint: all
: наблюдайте за прогрессом вашего кода на этапах компиляции, очень полезно, чтобы увидеть, какие имплициты применяются. -help
/ -X '/
-Y` перечислить все параметры. Последние ночные сборки scalac включают файл завершения bash, который упрощает их использование.
Завершение метода с помощью Javadoc ( CTRL - Пробел , CTRL - Q / Apple-J) Снимок экрана
Информация о параметрах для примера в вопросе ( CTRL - P ) Снимок экрана
Завершение аргумента метода ( CTRL - SHIFT - Пробел ). Снимок экрана
Для просмотра документации Javadoc необходимо, чтобы исходный код или документы javadoc были связаны с зависимостями в IntelliJ.
В настоящее время он не выделяет ошибки типа «на лету», так как в сложном коде все еще слишком много ложных срабатываний. Однако это приближается.
SBT сохраняет резидентный компилятор и анализирует зависимости между классами, чтобы разрешить инкрементную перекомпиляцию. Он также может отслеживать изменения в исходных файлах и автоматически запускать перекомпиляцию и / или выполнение теста.
> ~ compile
~ test-quick
У меня есть проект SBT и IntelliJ, настроенный в http://github.com/scalaz / scalaz , вы можете использовать это как ссылку.
Один из простых способов - использовать fsc , автономный компилятор. Он поддерживает кеши информации, и стандартный компилятор будет взаимодействовать с fsc
(запущен как демон) и использовать его кэшированную информацию во время компиляции, тем самым ускоряя цикл компиляции.
В Scala 2.8 см. this для повышения производительности Maven.
Последние шесть месяцев я ежедневно использую Scala. Я все еще использую vim (и ctags для поиска вещей) и Maven для сборок. Я получил неплохой опыт работы с JRebel при работе над веб-приложениями Lift - он будет перезагружать изменения на лету без перезапуска сервера.
Я потратил некоторое время на изучение IDE, но это очень быстро стало удручающе. Сначала мне действительно не хватало многих функций Eclipse, но после периода адаптации я не думаю, что сейчас я стал значительно менее продуктивным.
Я слышал некоторые слухи о том, что NetBeans в настоящее время является чемпионом для Scala IDE, но я не пробовал это из первых рук.
Боюсь, что вам придется подождать, пока Scala станет твердой. У меня была точно такая же проблема с Java десять лет назад. Было даже хуже.
Я также перепробовал их все. Для Scala 2.7.7 IntelliJ - победитель, но для Scala 2.8.0-SNAPSHOT Eclipse не так уж плох. Подождите полгода после выхода 2.8.0 и проверьте снова. Должно стать терпимо.