Небольшое обновление для SublimeHaskell.
Картинка для затравки, список изменений под катом
На картинке выше видно, что в списке автодополнения теперь можно увидеть тип (или аргументы в случае класса или типа данных). К сожалению, ширина ограничена, поэтому влезает не всё.
ModuleInspector
Теперь умеет собирать документацию для определений в модуле. Также собирает больше информации о типах, классах и т.п.
Функции без явного указания типа теперь тоже поддерживаются, а их тип определяется при помощи ghc-mod/hdevtools.
Show symbol info
Команда показывает доступную информацию о символе: тип (для функции) или контекст и аргументы для типов данных и классов; модуль, где символ определён; доступную документацию (как из исходников, так и при помощи haskell-docs для модулей в cabal); файл и проект, где символ определён.
Команда доступна по сочетанию Ctrl-K Ctrl-I.
foo описан без указания типа, тип выводится
Browse module
Команда аналогична таковой в ghci, выводит содержимое модуля, о выбранном элементе показывает более подробную информацию. Команда также вызывается по сочетанию Ctrl-K Ctrl-I, если при этом курсор стоит на имени модуля.
Указаны выведенные типы и документация
ghc-mod
Для успешной работы пришлось немного допилить ghc-mod, добавив флаг --detailed для команды browse. Теперь выводится более полная информация:
> ghc-mod browse -d Data.Either
Left
Right
data Either a b
either :: (a -> c) -> (b -> c) -> Either a b -> c
lefts :: [Either a b] -> [a]
partitionEithers :: [Either a b] -> ([a], [b])
rights :: [Either a b] -> [b]
hdevtools: show type
Теперь используется hdevtools, который работает быстро благодаря тому, что висит в фоне, команда 'Show Type' переработана и теперь выглядит так:
Первым в списке идёт replicate, так как курсор стоит на нём.
hdevtools не собирается под Windows, так как имеет в зависимостях unix, здесь можно скачать форк, работающий под Windows
Sublime Text 3
Плагин теперь работает с Sublime Text 3.
Также добавлено весьма примитивное кеширование, что значительно ускорило время старта.
Автор: VoidEx