Pan*_*cos 11 ide macos textmate haskell text-editor
我是mac的新手,我正在使用我需要的所有程序安装计算机,其中一个是Haskell.
令我惊讶的是,OS X的Haskell平台与Windows不同(在平台安装上有一个GUI编辑器 - winGHiC).看了很多之后,我发现这个编辑器TextMate应该与Haskell兼容,但我发现为它设置Haskell Bundle非常复杂.
我已经下载并安装了以下内容:
是否有人熟悉如何使其工作?这对我来说意味着一个详细的逐步解释,就像我说的那样,自从我第一次使用OS X以来,我只有一天.
谢谢一堆.
app*_*ive 28
好吧,你发现这些日子里有关于Github的tmbundle是好事.
您应该可以通过单击Bundles,然后找到内置选项Haskell.标准中相当少Haskell.tmbundle.最明显有用的是...加载文件command-shift-r或command-R.如果你已经写了一个结尾为.hs或.lhs的模块,那么......在ghci中打开它.
(在TextMate II中有一些关于集成终端的讨论,但是谁知道呢?非集成终端的一个令人讨厌的特性是,通过单击命令-R而不是通过执行:r inside ghci;在某些情况下,人们很想重新加载' 疯狂它会发展我有15份终端开放.)
许多不错的功能只是一般TextMate的东西,由语言描述决定,所以阅读TextMate细节的一般描述可能会很好.例如,如果多个行被高亮,那么用--s 命令/注释它们; 或者,如果它们已被评论,则取消评论它们.在我意识到它已经存在之前,我已经将一些事情做了很多事情,而且还没有仔细研究过这本手册.
当然,一切都有键绑定,并且很容易添加自己的脚本来运行小脚本并插入一些小片段,比Emacs更多.
在Bundles点击Bundle Editor并检查不同性质的东西的文本.
因此,例如,要创建一个制表符触发器来启动一个语言扩展pragma {-#LANGUAGE ... #-},其中光标在空间中...制作一个和一个Snippet替换副本
{-#LANGUAGE ${1}#-}
Run Code Online (Sandbox Code Playgroud)
选择Activation: Tab Trigger,并(例如)LANG作为触发器.
一个好处是它们都是shell脚本,或者(就像这一个)部分shell脚本和一些TextMate变量,你几乎可以用自己喜欢的语言编写它们.(对于Haskell包,我没有任何Haskell可以说的,但对于我做的其他包.)
语法高亮显然是令人惊讶的声音,但跳过一些奇特的扩展,例如"PackageImports",GADT语法,Haddock文档系统的标记,以及其他一些奇怪的东西.我已经自己攻击了,但是我发现语法文件的格式非常难以理解,所以发送副本没用.在Haskell.tmbundle过去两三年里已经仔细的校勘一些知识渊博Haskellers.最初制作Haskell的人只是学习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包的公共改进.(我与人分享的一个捆绑包,而不是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}\">"
Run Code Online (Sandbox Code Playgroud)
如果您安装了hoogle,那么您可以使用如下脚本对hoogle进行本地调用:
hoogle --w --n=100 '${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}'
Run Code Online (Sandbox Code Playgroud)
选择保存:无,输入:选定文本,或:Word,输出:显示为HTML
我所做的其他修正大多是微不足道的,比如`{ - #LANGUAGE ...# - }的标签触发片段,或者我自己的怪癖.
值得一提的是,我设法集成的是typeof来自Hackage 的可执行文件cabal install typeof,它运行到ghci以获得推断类型签名.我有一个键绑定,以显示推断类型为html的显示位,但也插入它.它有点精致,但这里是类型的显示器的文本
#!/bin/bash
word=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}
module="${TM_FILEPATH}"
echo $word | typeof $module
Run Code Online (Sandbox Code Playgroud)
选择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)
Run Code Online (Sandbox Code Playgroud)
这里typeof和typeof_worderorderHaskell可执行文件,第一个cabal安装,第二个是上面评论的白痴,在我的本地编译,~\bin以绕过一些逃避废话.在这里你应该选择Output : Insert as Snippet
对不起,我只想到随意的事情.你应该继续在这个标题下发帖提问,因为我认为值得看看一个人如何绊倒,还有我们聪明的Haskeller朋友可能会想到的.我一直意味着把我的tmbundle的'fork'放在github上,但它并不太令人兴奋,而Bundle目录的组织永远会让我失望.
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |