annotate .cms/lib/codemirror/mode/modelica/modelica.js @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 // Modelica support for CodeMirror, copyright (c) by Lennart Ochel
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 (function(mod) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 if (typeof exports == "object" && typeof module == "object") // CommonJS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 mod(require("../../lib/codemirror"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 else if (typeof define == "function" && define.amd) // AMD
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 define(["../../lib/codemirror"], mod);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 else // Plain browser env
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 mod(CodeMirror);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 })
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 (function(CodeMirror) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 "use strict";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 CodeMirror.defineMode("modelica", function(config, parserConfig) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 var indentUnit = config.indentUnit;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 var keywords = parserConfig.keywords || {};
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 var builtin = parserConfig.builtin || {};
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 var atoms = parserConfig.atoms || {};
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 var isSingleOperatorChar = /[;=\(:\),{}.*<>+\-\/^\[\]]/;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 var isDigit = /[0-9]/;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 var isNonDigit = /[_a-zA-Z]/;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 function tokenLineComment(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 stream.skipToEnd();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 return "comment";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 function tokenBlockComment(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 var maybeEnd = false, ch;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 while (ch = stream.next()) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 if (maybeEnd && ch == "/") {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 maybeEnd = (ch == "*");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 return "comment";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 function tokenString(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 var escaped = false, ch;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 while ((ch = stream.next()) != null) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 if (ch == '"' && !escaped) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 state.sol = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 escaped = !escaped && ch == "\\";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 return "string";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 function tokenIdent(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 stream.eatWhile(isDigit);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 var cur = stream.current();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 if(state.sol && (cur == "package" || cur == "model" || cur == "when" || cur == "connector")) state.level++;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 else if(state.sol && cur == "end" && state.level > 0) state.level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 state.sol = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 if (keywords.propertyIsEnumerable(cur)) return "keyword";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 else if (builtin.propertyIsEnumerable(cur)) return "builtin";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 else if (atoms.propertyIsEnumerable(cur)) return "atom";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 else return "variable";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 function tokenQIdent(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 while (stream.eat(/[^']/)) { }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 state.sol = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 if(stream.eat("'"))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 return "variable";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 else
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 return "error";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 function tokenUnsignedNumber(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 stream.eatWhile(isDigit);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 if (stream.eat('.')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 stream.eatWhile(isDigit);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 if (stream.eat('e') || stream.eat('E')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 if (!stream.eat('-'))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 stream.eat('+');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 stream.eatWhile(isDigit);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 state.sol = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 return "number";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 // Interface
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 return {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 startState: function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 return {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 tokenize: null,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 level: 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 sol: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 token: function(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 if(state.tokenize != null) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 if(stream.sol()) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 state.sol = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 // WHITESPACE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 if(stream.eatSpace()) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 return null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 var ch = stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 // LINECOMMENT
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 if(ch == '/' && stream.eat('/')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 state.tokenize = tokenLineComment;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 // BLOCKCOMMENT
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 else if(ch == '/' && stream.eat('*')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 state.tokenize = tokenBlockComment;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 // TWO SYMBOL TOKENS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 else if(isDoubleOperatorChar.test(ch+stream.peek())) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 return "operator";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 // SINGLE SYMBOL TOKENS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 else if(isSingleOperatorChar.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 return "operator";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 // IDENT
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 else if(isNonDigit.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 state.tokenize = tokenIdent;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 // Q-IDENT
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 else if(ch == "'" && stream.peek() && stream.peek() != "'") {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 state.tokenize = tokenQIdent;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 // STRING
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 else if(ch == '"') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 state.tokenize = tokenString;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 // UNSIGNED_NUMBER
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 else if(isDigit.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 state.tokenize = tokenUnsignedNumber;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 // ERROR
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 state.tokenize = null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 return "error";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 indent: function(state, textAfter) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 if (state.tokenize != null) return CodeMirror.Pass;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 var level = state.level;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 if(/(algorithm)/.test(textAfter)) level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 if(/(equation)/.test(textAfter)) level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 if(/(initial algorithm)/.test(textAfter)) level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 if(/(initial equation)/.test(textAfter)) level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 if(/(end)/.test(textAfter)) level--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 if(level > 0)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 return indentUnit*level;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 else
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 return 0;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 blockCommentStart: "/*",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 blockCommentEnd: "*/",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 lineComment: "//"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 function words(str) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203 var obj = {}, words = str.split(" ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 for (var i=0; i<words.length; ++i)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 obj[words[i]] = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 return obj;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 var modelicaKeywords = "algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 var modelicaBuiltin = "abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 var modelicaAtoms = "Real Boolean Integer String";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 function def(mimes, mode) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 if (typeof mimes == "string")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 mimes = [mimes];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 var words = [];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 function add(obj) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 if (obj)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 for (var prop in obj)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 if (obj.hasOwnProperty(prop))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 words.push(prop);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 add(mode.keywords);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 add(mode.builtin);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 add(mode.atoms);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 if (words.length) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 mode.helperType = mimes[0];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 CodeMirror.registerHelper("hintWords", mimes[0], words);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 for (var i=0; i<mimes.length; ++i)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 CodeMirror.defineMIME(mimes[i], mode);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 def(["text/x-modelica"], {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240 name: "modelica",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 keywords: words(modelicaKeywords),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 builtin: words(modelicaBuiltin),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 atoms: words(modelicaAtoms)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 });