В рамках знакомства с плагинами 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.
Значительно улучшен 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 definition
Добавлена команда Go To Definition (ctrl+shift+r), переходящая к объявлению текущего идентификатора. Работает не только внутри файла, но и по всем открытым файлам и cabal-проектам.
Также добавлена команда Go To Any Definition, выводящая список всех доступных объявлений с указанием их типа и модуля, в котором они определены и возможностью перейти на них.
Исправления
Исправлены ошибки с чтением настроек из другого потока, что приводило к фактической неработоспособности под Windows. Теперь плагин работает корректно.
Идея Check + Lint и Stylish взята из плагина HaskellBuddy с позволения его автора
Автор: VoidEx