SublimeHaskell

в 16:24, , рубрики: haskell, sublime, sublime plugin, метки: , ,

В рамках знакомства с плагинами Sublime Text 2, добавил в SublimeHaskell несколько новых возможностей и багфиксов. Автор пока занят, поэтому pull request в подвешенном состоянии, забрать можно на гитхабе.

image

Изменения

Поддержка cabal-dev

Теперь собирать можно не только cabal'ом, но и cabal-dev'ом, указав sandbox в настройках. Автоматическая сборка использует то, что указано в настройках, по команде можно вызывать явно. По команде «Switch Cabal/Cabal-Dev» можно переключать сборку по умолчанию.
Добавлены команды clean/configure/build/rebuild/install, где rebuild запускает clean+configure+build.

Значительно улучшен completion

Completion теперь подгружает информацию обо всех установленных пакетах и учитывает import'ы текущего модуля. Т.е. добавили Data.List — получили в списке zipWith4 и прочее.
Работает для всех папок, открытых в Sublime.
Также умеет понимать квалифицированные имена, т.е. для Data.Text. покажет только содержимое одноимённого модуля.
image
При этом понимает также алиасы (import as).
image

Check + Lint

Добавлены команды ghcmod check и ghcmod lint, позволяющие показать ошибки и подсказки. Можно вызывать как отдельно, так и оба разом (check and lint), тогда сообщения из lint будут представлены, как hint'ы, чтобы не смешиваться с ошибками.
По умолчанию при сохранении файла вызывается check and lint.
image

Stylish

Добавлена команда Stylish (stylish-haskell). Работает как на файле, так и на селектированной части кода.
image
image

Go to definition

Добавлена команда Go To Definition (ctrl+shift+r), переходящая к объявлению текущего идентификатора. Работает не только внутри файла, но и по всем открытым файлам и cabal-проектам.
Также добавлена команда Go To Any Definition, выводящая список всех доступных объявлений с указанием их типа и модуля, в котором они определены и возможностью перейти на них.
image

Исправления

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

Идея Check + Lint и Stylish взята из плагина HaskellBuddy с позволения его автора

Автор: VoidEx

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js