on master help sign in
Merge pull request #248 from melted/sublime

Idris support for Sublime Text 2

commitd48b5efd6b918d10a291c665786c81e20ef5dbb4 authorEdwin Brady <edwin.brady@gmail.com> dateWed 20 Mar 2013, 04:15 (14 years ago) parent3012479c9b75b5
4 files changed+212
contribs/tool-support/sublime-text/Idris/Idris.JSON-tmLanguage+70 contribs/tool-support/sublime-text/Idris/Idris.tmLanguage+126 contribs/tool-support/sublime-text/Idris/idris.sublime-build+5 contribs/tool-support/sublime-text/README.md+11
contribs/tool-support/sublime-text/Idris/Idris.JSON-tmLanguagenew file+70
@@ -0,0 +1,70 @@
1+{ "name": "Idris",
2+ "scopeName": "source.idris",
3+ "fileTypes": ["idr"],
4+ "patterns": [
5+ { "name": "keyword.control.idris",
6+ "match": "\\b(if|then|else|do|let|in|data|codata|record|dsl|import)\\b"
7+
8+ },
9+ { "name": "keyword.control.idris",
10+ "match": "\\b(impossible|case|of|total|partial|mutual|infix|infixl|infixr)\\b"
11+
12+ },
13+ { "name": "keyword.control.idris",
14+ "match": "\\b(where|with|syntax|proof|postulate|using|namespace|class|instance)\\b"
15+
16+ },
17+ { "name": "keyword.control.idris",
18+ "match": "\\b(public|private|abstract|implicit)\\b"
19+
20+ },
21+ { "name": "keyword.other.idris",
22+ "match": "\\b(Type|Int|Integer|Float|Char|String|Ptr|Bits8|Bits16|Bits32|Bits64)\\b"
23+ },
24+ { "name": "constant.numeric.idris",
25+ "match": "\\b(S|O)\\b"
26+ },
27+ { "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b",
28+ "name": "constant.numeric.idris",
29+ "comment": "integers"
30+ },
31+ {
32+ "match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",
33+ "name": "constant.numeric.float.idris",
34+ "comment": "floats"
35+ },
36+ {
37+ "name": "comment.line.idris",
38+ "match": "(--).*$\n?",
39+ "comment": "Line comment"
40+ },
41+ { "name": "comment.block.idris",
42+ "begin": "\\{-",
43+ "end": "-\\}",
44+ "comment": "Block comment"
45+ },
46+ {
47+ "name": "string.quoted.idris",
48+ "begin": "\"",
49+ "beginCaptures": {
50+ "0": { "name": "punctuation.definition.string.begin.idris"}
51+ },
52+ "end": "\"",
53+ "endCaptures": {
54+ "0": { "name": "punctuation.definition.string.end.idris"}
55+ },
56+ "patterns": [
57+ { "name": "constant.character.escape.idris",
58+ "match": "\\\\\""
59+ }
60+ ]
61+
62+ }
63+
64+
65+ ],
66+ "repository": {
67+
68+ },
69+ "uuid": "4dd16092-ffa5-4ba4-8075-e5da9f368a72"
70+}
contribs/tool-support/sublime-text/Idris/Idris.tmLanguagenew file+126
@@ -0,0 +1,126 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+<plist version="1.0">
4+<dict>
5+ <key>fileTypes</key>
6+ <array>
7+ <string>idr</string>
8+ </array>
9+ <key>name</key>
10+ <string>Idris</string>
11+ <key>patterns</key>
12+ <array>
13+ <dict>
14+ <key>match</key>
15+ <string>\b(if|then|else|do|let|in|data|codata|record|dsl|import)\b</string>
16+ <key>name</key>
17+ <string>keyword.control.idris</string>
18+ </dict>
19+ <dict>
20+ <key>match</key>
21+ <string>\b(impossible|case|of|total|partial|mutual|infix|infixl|infixr)\b</string>
22+ <key>name</key>
23+ <string>keyword.control.idris</string>
24+ </dict>
25+ <dict>
26+ <key>match</key>
27+ <string>\b(where|with|syntax|proof|postulate|using|namespace|class|instance)\b</string>
28+ <key>name</key>
29+ <string>keyword.control.idris</string>
30+ </dict>
31+ <dict>
32+ <key>match</key>
33+ <string>\b(public|private|abstract|implicit)\b</string>
34+ <key>name</key>
35+ <string>keyword.control.idris</string>
36+ </dict>
37+ <dict>
38+ <key>match</key>
39+ <string>\b(Type|Int|Integer|Float|Char|String|Ptr|Bits8|Bits16|Bits32|Bits64)\b</string>
40+ <key>name</key>
41+ <string>keyword.other.idris</string>
42+ </dict>
43+ <dict>
44+ <key>match</key>
45+ <string>\b(S|O)\b</string>
46+ <key>name</key>
47+ <string>constant.numeric.idris</string>
48+ </dict>
49+ <dict>
50+ <key>comment</key>
51+ <string>integers</string>
52+ <key>match</key>
53+ <string>\b([0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\b</string>
54+ <key>name</key>
55+ <string>constant.numeric.idris</string>
56+ </dict>
57+ <dict>
58+ <key>comment</key>
59+ <string>floats</string>
60+ <key>match</key>
61+ <string>\b([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\b</string>
62+ <key>name</key>
63+ <string>constant.numeric.float.idris</string>
64+ </dict>
65+ <dict>
66+ <key>comment</key>
67+ <string>Line comment</string>
68+ <key>match</key>
69+ <string>(--).*$
70+?</string>
71+ <key>name</key>
72+ <string>comment.line.idris</string>
73+ </dict>
74+ <dict>
75+ <key>begin</key>
76+ <string>\{-</string>
77+ <key>comment</key>
78+ <string>Block comment</string>
79+ <key>end</key>
80+ <string>-\}</string>
81+ <key>name</key>
82+ <string>comment.block.idris</string>
83+ </dict>
84+ <dict>
85+ <key>begin</key>
86+ <string>"</string>
87+ <key>beginCaptures</key>
88+ <dict>
89+ <key>0</key>
90+ <dict>
91+ <key>name</key>
92+ <string>punctuation.definition.string.begin.idris</string>
93+ </dict>
94+ </dict>
95+ <key>end</key>
96+ <string>"</string>
97+ <key>endCaptures</key>
98+ <dict>
99+ <key>0</key>
100+ <dict>
101+ <key>name</key>
102+ <string>punctuation.definition.string.end.idris</string>
103+ </dict>
104+ </dict>
105+ <key>name</key>
106+ <string>string.quoted.idris</string>
107+ <key>patterns</key>
108+ <array>
109+ <dict>
110+ <key>match</key>
111+ <string>\\"</string>
112+ <key>name</key>
113+ <string>constant.character.escape.idris</string>
114+ </dict>
115+ </array>
116+ </dict>
117+ </array>
118+ <key>repository</key>
119+ <dict>
120+ </dict>
121+ <key>scopeName</key>
122+ <string>source.idris</string>
123+ <key>uuid</key>
124+ <string>4dd16092-ffa5-4ba4-8075-e5da9f368a72</string>
125+</dict>
126+</plist>
contribs/tool-support/sublime-text/Idris/idris.sublime-buildnew file+5
@@ -0,0 +1,5 @@
1+{
2+ "cmd": ["idris", "$file"],
3+ "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
4+ "selector": "source.idris"
5+}
contribs/tool-support/sublime-text/README.mdnew file+11
@@ -0,0 +1,11 @@
1+#### Idris support for Sublime Text 2
2+
3+To install, copy the Idris directory to Sublime Text's Packages directory.
4+
5+To build a new Idris.tmLanguage file from the Idris.JSON-tmLanguage file, Sublime Text needs to have the AAAPackageDev package installed.
6+
7+Syntax Definitions tutorial: https://sublime-text-unofficial-documentation.readthedocs.org/en/latest/extensibility/syntaxdefs.html
8+
9+Syntax Definitions reference: https://sublime-text-unofficial-documentation.readthedocs.org/en/latest/reference/syntaxdefs.html
10+
11+Most used scopes: http://manual.macromates.com/en/language_grammars#naming_conventions