为Mac OS X上的Haskell编程设置TextMate

|| 我是mac的新手,并且正在使用我需要的所有程序进行计算机设置,其中之一就是Haskell。 令我惊讶的是,用于OS X的Haskell平台与Windows不同(在平台安装中内置了一个GUI编辑器-winGHiC)。在四处查看后,我发现该编辑器TextMate应该与Haskell兼容,但是发现为它设置Haskell Bundle相当复杂。 我已经下载并安装了以下内容: 适用于Mac OS X的Haskell平台 Xcode 3.4(Haskell先决条件) 文字伴侣 haskell.tmbundle文件(如上所述) 是否有人熟悉如何使其正常工作?就像我说的那样,这对我来说意味着很多详细的逐步说明,自从我第一次使用OS X以来我只有1天的时间。 谢谢你     
已邀请:
好了,这几天您发现该捆绑软件在Github上,是一项很好的工作。 单击be0ѭ,然后按
Haskell
,您应该能够找到内置选项。标准
Haskell.tmbundle
中几乎没有。最明显有用的是...加载文件
command-shift-r
command-R
。如果您编写了以.hs或.lhs结尾的模块,则它会...在ghci中打开它。 (有人谈论过TextMate II中的集成终端,但是谁知道呢?非集成终端的一个烦人的特征是,人们倾向于通过单击command-R而不是在ѭ5内执行:r来“重新加载”。 ;在某些狂潮中,我将拥有15份终端机副本。) 许多不错的功能仅仅是由语言描述确定的TextMate常规功能,因此阅读TextMate细节的一般描述可能会很好。例如,如果加亮了几行,那么命令-/用6注释掉它们;或者,如果它们已经被注释,则取消注释。早在我意识到它已经存在之前,我就已经凑整了一些东西来做这件事,还没有足够仔细地研究手册。 当然,所有东西都有键绑定,而且添加自己的脚本来运行小脚本并插入小片段非常容易,比Emacs中的要多得多。 在
Bundles
下单击
Bundle Editor
并检查文本中是否有其他种类的东西。 因此,例如,要使Tab触发器启动光标扩展区rag10ѭ中的语言扩展编译指示
{-#LANGUAGE ... #-}
,请复制
Snippet
并替换
{-#LANGUAGE ${1}#-}
选择
Activation: Tab Trigger
,然后说
LANG
作为触发。 一件好事是它们都是shell脚本,或者(像这样)都是部分shell脚本,周围带有一些TextMate变量,您几乎可以用自己的首选语言编写它们。 (对于Haskell软件包,我没有更多可谈论的Haskell软件包,但是对于其他软件包,我可以说。) 语法高亮令人惊讶地听起来不错,但在一些花哨的扩展程序(例如\“ PackageImports \”,GADT语法,Haddock文档系统的标记以及其他一些怪异之处。我已经破解了自己的文件,但是我发现语法文件的格式非常难以理解,因此没有必要向您发送副本。在过去的两三年中,一些知识渊博的Haskellers对“ѭ2”进行了修改。最早做到这一点的人只是在学习Haskell,而没有组成了Haddocked模块,但是另一方面,他似乎很幸运,他非常熟练,并且对TextMate机械有深入的了解。 请注意,TextMate以一种相当奇怪的方式将您所做的修订存储在ѭ8中。 TextMate随附的捆绑软件,例如
/Applications/Textmate.app/.../Bundles
中有
C
Ruby
HTML
LaTeX
等。您安装的是在ѭ22中。当您通过ѭ8进行修改时,它们会存储在本地的ѭ24中。这虽然有些道理,但是有点复杂,并且阻碍了Haskell软件包的公开改进。 (我与其他人共享的捆绑软件不是Haskell的捆绑软件,我保留在git版本下的最新,最外面的目录中,因此原始版本和我的修订都在一起。) \“ Hoogle上的查找\”键绑定/选项以突出显示的术语起作用;这是hayoo网站的副本,可以搜索类型签名的使用
echo \"<meta http-equiv=\\\"refresh\\\" content=\\\"0; 
http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}\\\">\"
如果您在安装hoogle,则可以使用类似以下的脚本对hoogle进行本地调用:
 hoogle --w --n=100 \'${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}\'
选择保存:不输入,输入:选定的文本,或:单词,输出:显示为HTML 我所做的其他修改大部分都是微不足道的,例如`{-#LANGUAGE ...#-}的制表符触发代码段,或者我自己的怪癖。 值得一提的是,我设法集成的是来自Hackage的
typeof
可执行文件,
cabal install typeof
,可运行到ghci进行推断的类型签名。我有一个键绑定,以将推断的类型显示为html的显示位,还可以将其插入。有点微妙,但这是类型显示器的文字
#!/bin/bash
word=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}
module=\"${TM_FILEPATH}\"
echo $word | typeof $module 
选择
Input: Selected Text
Or: Line
;
Output: Show as Tool Tip
Activation : Key Equivalent
(然后选择一个键绑定,我的是
control-option-command-j
)类似地,对于通过
typeof
进行类型插入,请新建一个C(命令文件)标题,并包括以下内容:
#!/bin/bash
word=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}
module=\"${TM_FILEPATH}\"
echo $word | typeof $module | typeof_wordorder

# typeof_wordorder is the following hack compiled
# in my local ~/bin
# module Main where
# main = interact reword where
#  reword :: String -> String
#  reword xs = 
#     xs ++  (head . words . concat . lines $ xs)
这里的ѭ27和ѭ38是Haskell可执行文件,第一个安装了cabal,第二个是上述注释的白痴,它们是在我本地的ѭ39中编译的,以避开一些逃避的废话。在这里您应该选择
Output : Insert as Snippet
抱歉,我只是在考虑随机的事情。您应该在此标题下继续发布问题,因为我认为值得一看如何跳伞,还应该了解我们聪明的Haskeller朋友可能想到的黑客技术。我一直想把mbundle的'fork \'放在github上,但这并不太令人兴奋,Bundle目录的组织永远使我败北。     

要回复问题请先登录注册