diff options
Diffstat (limited to 'imports/codemirror/mode/stex/stex.js')
-rw-r--r-- | imports/codemirror/mode/stex/stex.js | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/imports/codemirror/mode/stex/stex.js b/imports/codemirror/mode/stex/stex.js index bb47fb45..b89e619e 100644 --- a/imports/codemirror/mode/stex/stex.js +++ b/imports/codemirror/mode/stex/stex.js | |||
@@ -82,7 +82,7 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg) | |||
82 | } | 82 | } |
83 | 83 | ||
84 | function normal(source, state) { | 84 | function normal(source, state) { |
85 | if (source.match(/^\\[a-z]+/)) { | 85 | if (source.match(/^\\[a-zA-Z@]+/)) { |
86 | var cmdName = source.current(); | 86 | var cmdName = source.current(); |
87 | cmdName = cmdName.substr(1, cmdName.length-1); | 87 | cmdName = cmdName.substr(1, cmdName.length-1); |
88 | var plug = plugins[cmdName]; | 88 | var plug = plugins[cmdName]; |
@@ -95,9 +95,22 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg) | |||
95 | return plug.style; | 95 | return plug.style; |
96 | } | 96 | } |
97 | 97 | ||
98 | // escape characters | ||
99 | if (source.match(/^\\[$&%#{}_]/)) { | ||
100 | return "tag"; | ||
101 | } | ||
102 | |||
103 | // white space control characters | ||
104 | if (source.match(/^\\[,;!\/]/)) { | ||
105 | return "tag"; | ||
106 | } | ||
107 | |||
98 | var ch = source.next(); | 108 | var ch = source.next(); |
99 | if (ch == "%") { | 109 | if (ch == "%") { |
100 | setState(state, inCComment); | 110 | // special case: % at end of its own line; stay in same state |
111 | if (!source.eol()) { | ||
112 | setState(state, inCComment); | ||
113 | } | ||
101 | return "comment"; | 114 | return "comment"; |
102 | } | 115 | } |
103 | else if (ch=='}' || ch==']') { | 116 | else if (ch=='}' || ch==']') { |