嗯,这是很好的工作,你发现tmbundle现在在Github上。
您应该能够通过点击Bundles
,然后Haskell
找到内置选项。标准Haskell.tmbundle
中有相当少的。最明显有用的是...加载文件command-shift-r
或command-R
。如果你写了一个结尾为.hs或.lhs的模块,它会以ghci打开它。但是谁知道呢?一个非集成终端的一个令人讨厌的特点是,人们试图通过点击命令-R而不是通过执行来重新加载:r在ghci
;在某些疯狂,它会发展,我有15个副本的终端打开。)
很多不错的功能只是一般的TextMate的东西,由语言描述决定,所以它可能是好的阅读一般性描述TextMate细节。例如,如果几个线highlighed,然后命令 - /评论他们与--
S;或者,如果它们已被评论,则取消注释。我砍死在一起的东西要做到这一点,没过多久,我意识到它已经在那里了,没有研究说明书不够紧密。
一切有键绑定,当然,它是很容易的添加自己的运行小脚本,然后插入小片段,远远超过在Emacs,说。
在Bundles
点击Bundle Editor
并研究不同性质的东西的文本。
因此,例如,做一个标签触发启动语言扩展编译{-#LANGUAGE ... #-}
光标所在的空间...
做出Snippet
的副本并替换
{-#LANGUAGE ${1}#-}
选择Activation: Tab Trigger
,和(比如说)LANG
作为触发器。
一件好事就是它们都是shell脚本,或者(像这样)一些带有一些TextMate变量的部分shell脚本,你可以用你自己的首选语言编写它们。 (对于Haskell包,我没有任何Haskell人可以谈论,但是对于其他捆绑包)。
语法高亮显示出人意料地合理,但是出现了一些奇特的扩展,例如, “PackageImports”,GADT语法,Haddock文档系统的标记以及其他一些古怪的东西。我已经破解了我自己的,但是我发现语法文件的格式非常难以理解,所以发送一份副本是没有用的。 Haskell.tmbundle
在过去的两三年中已经被一些知识渊博的哈斯克勒斯所修正。最初做这件事的人只是学习Haskell,并没有例如组成了Haddocked模块,但另一方面,他似乎非常熟练,并且对TextMate机器有深入的了解。
通过TextMate以一种相当奇怪的方式存储您在Bundle Editor
中所做的修正的通知。 TextMate附带的捆绑包,例如C
,Ruby
,HTML
,LaTeX
等在/Applications/Textmate.app/.../Bundles
。你安装的是/Library/Application\ Support/TextMate/Bundles
。当你通过Bundle Editor
进行修正时,它们被存储在你的本地~/Library/Application\ Support/TextMate/Bundles.
这有点合理,但有点复杂,并且阻碍了Haskell包的公共改进。 (我与人分享的一束,而不是哈斯克尔,我保留在git修订版的最后一个最外面的目录中,所以原始和我的校正结合在一起。)
“Hoogle查找”键绑定/选项突出显示的条款;这里是为hayoo网站的翻版,如果你CABAL安装hoogle可搜索式签名
echo "<meta http-equiv=\"refresh\" content=\"0;
http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}\">"
的用途,那么你可以做一个本地电话用一个脚本来hoogle像这样:
hoogle --w --n=100 '${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}'
选择保存:没什么,输入:选定的文本,或者:字,输出:显示为HTML
我已经做多琐碎的其他emendations,就像一个标签触发片段的`{ - #语言...# - }或者我自己的怪癖。
值得一提的是,我设法整合了来自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)
这里typeof
和typeof_worderorder
是Haskell的可执行文件,所述第一第二个就是上面评论过的白痴,编在我的当地~\bin
左右一些逃脱的废话。在这里您应该选择Output : Insert as Snippet
对不起,我只是在想随机的事情。你应该在这个标题下继续发布问题,因为我认为看看人们如何绊倒是值得的,但也是我们聪明的哈斯克勒朋友可能想到的。我保留在github上放置我的tmbundle的'fork'的意思,但它并不太刺激,并且Bundle目录的组织永远打败了我。
WinGHCi本身不是“GUI编辑器”*。你可以使用命令行中的'ghci'程序,这在很大程度上是等价的。我就是做这个的。 我其实更喜欢WinGHCi,它的命令完成很糟糕。 – Ezra 2011-04-15 23:02:02