@@ -0,0 +1,219 @@
3+# http://www.sublimetext.com/docs/3/syntax.html
12+ ^(\*+) # leading stars
13+ \s*([A-Z_]{2,})? # todo keywords
14+ \s*(\[\#[A-Ca-c]\])? # priority
15+ \s*(?=\s+[A-Za-z0-9]+) # expected heading text
16+ comment: Outline headings
18+ 1: punctuation.definition.heading.orgmode
19+ 2: keyword.other.todo.orgmode
20+ 3: constant.other.priority.orgmode
22+ - meta_scope: markup.heading.orgmode
23+ - meta_content_scope: entity.name.section.orgmode
26+ - include: heading-inline
28+ scope: meta.separator.orgmode
29+ - match: '^\s*([-+]|\s+\*)\s+(.*?)\s+::'
31+ 1: keyword.operator.list.orgmode
32+ 2: markup.bold.definition.orgmode
34+ - meta_scope: meta.list.definition.orgmode
38+ - match: '^\s*?([-+]|\s+\*|\d+[).])'
40+ 1: keyword.operator.list.orgmode
42+ - meta_scope: meta.list.plain.orgmode
45+ - include: list-inline
46+ - match: (?i)^#\+(BEGIN_(QUOTE|VERSE|CENTER))$
48+ 1: keyword.control.block.orgmode
50+ - meta_scope: markup.quote.orgmode
51+ - match: (?i)^#\+(END_\2)$
53+ 1: keyword.control.block.orgmode
56+ scope: comment.line.number-sign.orgmode
57+ - match: ^:(PROPERTIES):$
59+ 1: keyword.control.drawer.orgmode
61+ - meta_scope: meta.drawer.properties.orgmode
64+ 1: keyword.control.drawer.orgmode
66+ - include: properties
69+ 1: keyword.control.drawer.orgmode
71+ - meta_scope: meta.drawer.other.orgmode
74+ 1: keyword.control.drawer.orgmode
76+ - match: (?i)#\+(BEGIN_LaTeX)$
78+ 1: keyword.control.block.orgmode
80+ - meta_scope: meta.block.latex.orgmode
81+ - match: (?i)#\+(END_LaTeX)$
83+ 1: keyword.control.block.orgmode
85+ - include: scope:text.tex.latex
86+ - match: (?i)#\+(BEGIN_HTML)$
88+ 1: keyword.control.block.orgmode
90+ - meta_scope: meta.block.html.orgmode
91+ - match: (?i)#\+(END_HTML)$
93+ 1: keyword.control.block.orgmode
95+ - include: scope:text.html.basic
96+ - match: (?i)#\+(BEGIN_SRC)\s+(python)\s*(.*)$
98+ 1: keyword.control.block.orgmode
99+ 2: constant.other.language.orgmode
100+ 3: string.other.header-args.orgmode
102+ - meta_scope: meta.block.source.python.orgmode
103+ - match: (?i)#\+(END_SRC)$
105+ 1: keyword.control.block.orgmode
107+ - include: scope:source.python
108+ - match: (?i)#\+(BEGIN_SRC)\s+(ruby)\s*(.*)$
110+ 1: keyword.control.block.orgmode
111+ 2: constant.other.language.orgmode
112+ 3: string.other.header-args.orgmode
114+ - meta_scope: meta.block.source.ruby.orgmode
115+ - match: (?i)#\+(END_SRC)$
117+ 1: keyword.control.block.orgmode
119+ - include: scope:source.ruby
120+ - match: (?i)#\+(BEGIN_SRC)\s+((?:emacs-)?lisp)\s*(.*)$
122+ 1: keyword.control.block.orgmode
123+ 2: constant.other.language.orgmode
124+ 3: string.other.header-args.orgmode
126+ - meta_scope: meta.block.source.lisp.orgmode
127+ - match: (?i)#\+(END_SRC)$
129+ 1: keyword.control.block.orgmode
131+ - include: scope:source.lisp
132+ - match: (?i)#\+(BEGIN_SRC)\s+(sh)\s*(.*)$
134+ 1: keyword.control.block.orgmode
135+ 2: constant.other.language.orgmode
136+ 3: string.other.header-args.orgmode
138+ - meta_scope: meta.block.source.shell.orgmode
139+ - match: (?i)#\+(END_SRC)$
141+ 1: keyword.control.block.orgmode
143+ - include: scope:source.shell
144+ - match: '(?i)#\+(BEGIN_(SRC|EXAMPLE))(?:\s+([\w-]+)?\s*(.*))?$'
146+ 1: keyword.control.block.orgmode
147+ 3: constant.other.language.orgmode
148+ 4: string.other.header-args.orgmode
150+ - meta_scope: meta.block.source.other.orgmode
151+ - meta_content_scope: markup.raw.block.orgmode
152+ - match: (?i)#\+(END_\2)$
154+ 1: keyword.control.block.orgmode
156+ - match: '#\+(OPTIONS):'
158+ 1: keyword.control.pragma.orgmode
160+ - meta_scope: meta.pragma.options.orgmode
163+ - match: '([^\s]+):([^\s]+)'
164+ scope: meta.option.orgmode
166+ 1: variable.parameter.option.orgmode
167+ 2: string.other.option.orgmode
168+ - match: '#\+(CALL):\s+[A-Za-z-]+(?:\[([^\]]*)\])?\(?'
170+ 1: keyword.control.pragma.orgmode
171+ 2: string.other.header-args.orgmode
173+ - meta_scope: meta.pragma.call.orgmode
174+ - match: '\)?([^)]*)$'
176+ 1: string.other.header-args.orgmode
179+ scope: meta.assignment.orgmode
181+ 1: variable.parameter.header-args.orgmode
182+ - match: '^#\+([a-zA-Z_-]+): ?(.*)$'
183+ scope: meta.pragma.orgmode
185+ 1: keyword.control.pragma.orgmode
186+ 2: string.unquoted.pragma.orgmode
189+ - match: ':([^:^\s]*)(?=:)'
190+ scope: meta.keyword.orgmode
192+ 1: string.quoted.keyword.orgmode
195+ - match: '(?<=^|[.,:;\s])/[^/]+/(?=$|[.,:;\s])'
196+ scope: markup.italic.orgmode
197+ - match: '(?<=^|[.,:;\s])\*[^*]+\*(?=$|[.,:;\s])'
198+ scope: markup.bold.orgmode
199+ - match: '(?<=^|[.,:;\s])_[^_]+_(?=$|[.,:;\s])'
200+ scope: markup.underline.orgmode
201+ - match: '(?<=^|[.,:;\s])([~=]).+?\1(?=$|[.,:;\s])'
202+ scope: markup.raw.inline.orgmode
203+ - match: '\[(?:\[([^\]]*)\])?\[([^\]]*)\]\]'
204+ scope: meta.link.orgmode
206+ 1: markup.underline.link.orgmode
207+ 2: string.other.link.orgmode
208+ - match: (?:http|ftp)s?:\/\/\S+
209+ scope: markup.underline.url.orgmode
211+ - match: '\[[ -X]\]'
212+ scope: keyword.operator.checkbox.orgmode
215+ - match: '^:([A-Za-z_]+):\s(.*)$'
216+ scope: meta.property.orgmode
218+ 1: keyword.control.property.orgmode
219+ 2: string.unquoted.propval.orgmode