Pull to refresh

SublimeHaskell

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




Изменения


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

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

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

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

При этом понимает также алиасы (import as).


Check + Lint

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


Stylish

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



Go to declaration

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


Browse declarations

Добавлена команда, выводящая список всех доступных объявлений из cabal. Вставляет выбранный идентификатор.


Исправления


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

Идея Check + Lint и Stylish взята из плагина HaskellBuddy с позволения его автора
Tags:
Hubs:
Total votes 25: ↑23 and ↓2+21
Comments53

Articles