2010-06-08 3 views
38

Я хотел использовать {-# LANGUAGE OverloadedStrings #-}, но я забыл, как это называется. Такой вид не является hoogle-способным, и также требуется некоторое время для поиска с помощью google *.Список расширений GHC

Есть ли список расширений GHC, названных так, как они находятся в прагме LANGUAGE?

* Мой поиск путешествие прибегая к помощи:

ответ

26

В разделе "Language options" раздела the flag reference page есть список, который намного легче просматривать, чем страница функций языка.

Как только вы найдете Ctrl-F, поиск «перегружен» приведет вас к тому, что вы хотите.

+5

Да, и страница man ghc тоже хороша. Всегда заставляет меня жалеть людей на безлюдных платформах. –

28

ghci's tab-completion знает. Введите :set -X в командной строке ghci, затем нажмите Tab, и вы получите полный список. Или :set -XFoo, тогда Tab отобразит список всех расширений, начинающихся с Foo.

+2

Ваш ответ очень полезен, потому что он также представил мне ': set -X'! – yairchu

3

ghc-mod для Emacs найдено здесь: http://hackage.haskell.org/package/ghc-mod, включает в себя завершение для языковых расширений. Если вы являетесь пользователем Emacs, я предлагаю вам попробовать его.

3

При использовании Leksah IDE, выбрав меню Package, затем пункт меню Edit Package, затем вкладка Расширения также дает вам отмечаемый список.

2

Мой немой Hacky способ делать такие вещи:

$ man ghc | grep String 
     -XExtendedDefaultRules -XNoExtendedDefaultRules -XOverloadedStrings 
     -XNoOverloadedStrings -XGADTs -XNoGADTs -XGADTSyntax -XNoGADTSyntax 
1

Cabal package обеспечивает Language.Haskell.Extension module, который экспортирует KnownExtension type которого каждый конструктор является расширением.

Документация каждого конструктора кратко описывает расширение и предоставляет ссылку на руководство пользователя GHC.

Смежные вопросы