1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/43284683-scalaconsole

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ScalaConsole Reloaded (V2.0)

Что такое ScalaConsole?

ScalaConsole — это графическая оболочка для Scala REPL.

Зачем нужен ScalaConsole

  • В командной строке REPL есть ограничения по редактированию: можно редактировать только на основе строк, и если вы допустили ошибку при вводе, то исправить её будет сложно.

    • ScalaConsole использует полнофункциональный редактор с подсветкой синтаксиса.
  • У командной строки REPL ограниченные возможности, например, плохая поддержка классов case. Официальная рекомендация — использовать scalac для компиляции класса case, а затем импортировать его в REPL, что очень неудобно.

    • ScalaConsole напрямую использует scala.nsc, идеально поддерживает классы case и поддерживает все параметры REPL.
  • ScalaConsole поддерживает добавление зависимостей на основе поиска.

    • В Scala REPL неудобно добавлять зависимости. sbt console может использовать зависимости из конфигурации sbt, но зависит от проекта sbt. ScalaConsole запускается и добавляет зависимости в любое время, без необходимости создавать проект заранее.

Когда использовать ScalaConsole

Когда вам нужно временно проверить идею или правильность небольшого фрагмента кода, быстро изучить API определённого Java/Scala-библиотеки, но не хотите создавать полноценный проект sbt.

Требования к версии

  • Для запуска требуется Java 8.
  • Для компиляции требуется Scala 2.11. Если вы используете версию 2.10 или ниже, рекомендуется использовать ScalaConsole 1.x. Сейчас доступны версии 2.9 и 2.10. На самом деле, модификация кода ScalaConsole 2 для адаптации к работе со Scala 2.10 не так уж сложна, просто мне самому это неинтересно. Добро пожаловать с пул-реквестами.

Изменения в версии 2.0 по сравнению с 1.х

  • Реализация пользовательского интерфейса была перенесена с Swing на JavaFX.

    • В модуле Scala 2.11 модуль Swing был отделён, и в будущих версиях его может вообще не быть. Разработка с использованием JavaFX намного приятнее, чем с Swing, а использование Lambda Expression в Java 8 даёт дополнительные преимущества.
  • Редактор использует Ace Editor.

    • Ctrl-, позволяет открыть окно настроек Ace Editor, где можно выбрать цветовую тему, режим клавиатуры (ace, vim, emacs) и другие настройки.
  • Используется sbt assembly для упаковки.

    • Теперь вы можете запустить java -jar ScalaConsole-assembly-$VERSION.jar, чтобы начать использовать его.
  • Было удалено множество функций, которые я сам редко использую.

    • Например, «открыть» / «сохранить» файл (рекомендуется использовать gist). Также была удалена функция переключения версий Scala (несколько лет назад, во времена Scala 2.8 и 2.9, это была важная функция. Но в последние год или два я почти не использовал её). Функция добавления локальных файлов Jar или каталогов классов в качестве зависимостей также была удалена.
  • Вместо устаревшего встроенного парсера JSON в Scala используется gson.

  • Логика реализации артефактов crossbuild была переработана, стала более совершенной, безопасной и простой в расширении.

  • Больше не используется Akka Actor для параллелизма.

    • Параллельные операции в ScalaConsole очень просты, и создание ActorSystem для них — это как использовать кувалду для убийства мухи. Это также увеличивает время запуска.

Использование

  1. Запустите ScalaConsole. 1.1 Используйте опубликованный пакет.

    • Загрузите ScalaConsole-assembly-$VERSION.jar из этого репозитория приложения, затем запустите
      java -jar ScalaConsole-assembly-$VERSION.jar

    1.2 Соберите из исходного кода.

    • Требуется sbt, который является стандартным инструментом для работы со Scala.
    $ git clone этот репозиторий
    $ cd scalaconsole
    $ git checkout 2.11
    $ git submodule init
    $ git submodule update
    Эти две команды предназначены для получения содержимого ace-builds, которое зависит от этого проекта.
    $ sbt assembly
    $ java -jar target/scala-2.11/ScalaConsole-assembly-$VERSION.jar
    Или просто запустите
    $ sbt run

    После каждого git pull необходимо запускать git submodule update для обновления ace-builds.

  2. Редактирование кода. Следующие сочетания клавиш действительны для Linux/Windows, на Mac замените Ctrl на Command

В ScalaConsole сочетания клавиш максимально приближены к IDEA.

2.1 Ctrl-C | Ctrl-Insert Smart Copy

2.2 Ctrl-D Smart Duplicate

2.3 Ctrl-X | Shift-Delete Smart Cut

2.4 Ctrl-Y удалить текущую строку

2.5 Ctrl-/ переключить комментарий строки

2.6 Ace Editor — это мощный редактор, который стоит изучить. Здесь вы найдёте другие сочетания клавиш.

Среди наиболее важных — `Ctrl-,`, который открывает окно настроек Ace Editor.
  1. Запуск кода. 3.1 Ctrl-R запустить код в текущей области редактирования

3.2 Ctrl-Shift-R выполнить текущий выделенный код

3.3 Ctrl-P запуск кода в текущей области редактирования в режиме вставки

3.4 Ctrl-Shift-P выполнение текущего выделенного кода в режиме вставки

3.5 Ctrl-E очистить область вывода

3.6 Ctrl-Shift-E сбросить REPL, сохранив текущие настройки зависимостей

  1. Управление зависимостями. Это самая сильная сторона ScalaConsole, которую настоятельно рекомендуется использовать.

4.1 Ctrl-I поиск и добавление зависимостей по ключевым словам

ScalaConsole использует центральный индекс Maven и обновляется ежедневно.

4.2 Ctrl-Shift-I добавление зависимостей вручную

Для артефактов, которые не были отправлены в центральный репозиторий, таких как некоторые пакеты typesafe, можно добавить их вручную. В настоящее время ScalaConsole включает три Resolver, упорядоченных следующим образом: oschina, typesafe, central

4.3 Меню -> Зависимости -> Уменьшить уменьшение зависимостей

Зависимости, которые уже были добавлены, могут быть удалены с помощью этого диалогового окна. Операция аналогична поиску и добавлению зависимостей в окне поиска. Просто дважды щёлкните элемент, которым хотите управлять.

  1. Управление тегами. ScalaConsole поддерживает несколько тегов. Добавить тег с помощью Ctrl-T, закрыть текущий тег с помощью Ctrl-F4

  2. Опубликовать текущий код в Gist. После успешной публикации ScalaConsole автоматически скопирует ссылку на gist в буфер обмена.

6.1 Ctrl-G откроет браузер на сайте github.com для аутентификации вашей учётной записи github.

6.2 Ctrl-Shift-G анонимно опубликовать gist

  1. Другое. 5.1 Меню -> Редактировать -> Установить шрифт изменить шрифт

    Формат шрифта — FamilyName-Size, например Ubuntu Mono-13, Menlo-14 и т. д.

5.2 Меню -> Repl -> Параметры командной строки добавить параметры командной строки в REPL

Поместите нужные параметры командной строки в строку, например `-Xprint:typer`

5.3 Ctrl-W изменение расположения окон

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

Будущее

После того как Scala-IDE представила функцию worksheet, я какое-то время думал, что ScalaConsole выполнил свою историческую миссию и должен отправиться на свалку. Однако спустя несколько лет я обнаружил, что всё ещё использую его каждый день. Он очень быстрый, запускается мгновенно, не зависит от полноценного проекта, и я использовал его для захвата множества фрагментов Scala на StackOverflow. Кроме того, он очень внимателен к деталям и использует механизм поиска и добавления зависимостей на основе индекса Maven, что позволяет быстро ссылаться на любую библиотеку, которая меня интересует, и делает ScalaConsole незаменимым инструментом для изучения функций и API Scala/Java.

Текущая версия ScalaConsole 2.0 в основном удовлетворяет мои ежедневные потребности в кодировании. На данный момент я могу думать только о двух новых функциях: форматирование кода и AceJump, которые будут реализованы в будущем. Если у вас есть новые идеи, добро пожаловать в репозиторий. трекер задач.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

GUI для Scala REPL. Развернуть Свернуть
Scala и 4 других языков
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/43284683-scalaconsole.git
git@gitlife.ru:oschina-mirror/43284683-scalaconsole.git
oschina-mirror
43284683-scalaconsole
43284683-scalaconsole
2.11