如果你的語法做到這一點建立在或擴展哈斯克爾,我會通過導入Haskell語法規則
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>my-extension</string>
</array>
<key>name</key>
<string>My Language</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.haskell</string>
</dict>
<!-- custom syntax here -->
</array>
<key>scopeName</key>
<string>source.haskell.myExt</string>
<key>uuid</key>
<string></string>
</dict>
</plist>
然後就可以開始添加自定義的語法或覆蓋Haswell的默認值,如啓動
<dict>
<key>match</key>
<string>(\b|^\s*)(?i)(list|of|my|keywords)\b</string>
<key>name</key>
<string>keyword.command.myExt</string>
</dict>
<dict>
<key>match</key>
<string>\b(true|on)\b</string>
<key>name</key>
<string>constant.boolean.true.myExt</string>
</dict>
<dict>
<key>match</key>
<string>\b(false|off)\b</string>
<key>name</key>
<string>constant.boolean.false.myExt</string>
</dict>
<dict>
<key>match</key>
<string>\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?))\b</string>
<key>name</key>
<string>constants.nummeric.myExt</string>
</dict>
我推薦一下創建自定義之前Haskell.tmLanguage
,看看它的結構和命名方案。
我不確定製表符是否在語言定義中定義。我可以想象你可以在你的語法設置中控制這個,儘管這些也可能適用於導入的Haskell。
{
"tab_size": 4,
"translate_tabs_to_spaces": false
}
也讓我指出標記這個問題textmate
時,你可能會得到更好的響應,爲崇高的文本使用TextMate的.tmLanguage
文件的語法定義。
This Works;謝謝! :) – p0lAris