Skip to content

Commit 0283238

Browse files
committed
add non-standard x_syntax accessor to set syntax for view
1 parent a857c1c commit 0283238

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

README.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,16 @@ Caveats
5757
*******
5858

5959
If the option's value contains a semicolon (``;``), make sure it isn't followed
60-
by a blank space. Otherwise it will be interpreted as a multioption separator.
60+
by a blank space. Otherwise it will be interpreted as a multioption separator.
61+
62+
63+
Non-Standard Options
64+
********************
65+
66+
For some common cases, no directly settable option exists (for example, a
67+
setting to specify a syntax). For such cases, Sublime Modelines provides
68+
non-standard accessors as a stop-gap solution.
69+
70+
**x_syntax** *Packages/Foo/Foo.tmLanguage>*
71+
72+
Sets the syntax to the specified *.tmLanguage* file.

sublime_modelines.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,15 @@ class ExecuteSublimeTextModeLinesCommand(sublime_plugin.EventListener):
102102
"""
103103
def do_modelines(self, view):
104104
for setter, name, value in gen_modeline_options(view):
105-
try:
106-
setter(name, to_json_type(value))
107-
except ValueError, e:
108-
sublime.status_message("[SublimeModelines] Bad modeline detected.")
109-
print "[SublimeModelines] Bad option detected: %s, %s" % (name, value)
110-
print "[SublimeModelines] Tip: Keys cannot be empty strings."
105+
if name == 'x_syntax':
106+
view.set_syntax_file(value)
107+
else:
108+
try:
109+
setter(name, to_json_type(value))
110+
except ValueError, e:
111+
sublime.status_message("[SublimeModelines] Bad modeline detected.")
112+
print "[SublimeModelines] Bad option detected: %s, %s" % (name, value)
113+
print "[SublimeModelines] Tip: Keys cannot be empty strings."
111114

112115
def on_load(self, view):
113116
self.do_modelines(view)

0 commit comments

Comments
 (0)