嗯,這是很好的工作,你發現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