[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE 3 4 (function(mod) { 5 if (typeof exports == "object" && typeof module == "object") // CommonJS 6 mod(require("../../lib/codemirror")); 7 else if (typeof define == "function" && define.amd) // AMD 8 define(["../../lib/codemirror"], mod); 9 else // Plain browser env 10 mod(CodeMirror); 11 })(function(CodeMirror) { 12 "use strict"; 13 14 CodeMirror.defineMode('mllike', function(_config, parserConfig) { 15 var words = { 16 'as': 'keyword', 17 'do': 'keyword', 18 'else': 'keyword', 19 'end': 'keyword', 20 'exception': 'keyword', 21 'fun': 'keyword', 22 'functor': 'keyword', 23 'if': 'keyword', 24 'in': 'keyword', 25 'include': 'keyword', 26 'let': 'keyword', 27 'of': 'keyword', 28 'open': 'keyword', 29 'rec': 'keyword', 30 'struct': 'keyword', 31 'then': 'keyword', 32 'type': 'keyword', 33 'val': 'keyword', 34 'while': 'keyword', 35 'with': 'keyword' 36 }; 37 38 var extraWords = parserConfig.extraWords || {}; 39 for (var prop in extraWords) { 40 if (extraWords.hasOwnProperty(prop)) { 41 words[prop] = parserConfig.extraWords[prop]; 42 } 43 } 44 var hintWords = []; 45 for (var k in words) { hintWords.push(k); } 46 CodeMirror.registerHelper("hintWords", "mllike", hintWords); 47 48 function tokenBase(stream, state) { 49 var ch = stream.next(); 50 51 if (ch === '"') { 52 state.tokenize = tokenString; 53 return state.tokenize(stream, state); 54 } 55 if (ch === '{') { 56 if (stream.eat('|')) { 57 state.longString = true; 58 state.tokenize = tokenLongString; 59 return state.tokenize(stream, state); 60 } 61 } 62 if (ch === '(') { 63 if (stream.match(/^\*(?!\))/)) { 64 state.commentLevel++; 65 state.tokenize = tokenComment; 66 return state.tokenize(stream, state); 67 } 68 } 69 if (ch === '~' || ch === '?') { 70 stream.eatWhile(/\w/); 71 return 'variable-2'; 72 } 73 if (ch === '`') { 74 stream.eatWhile(/\w/); 75 return 'quote'; 76 } 77 if (ch === '/' && parserConfig.slashComments && stream.eat('/')) { 78 stream.skipToEnd(); 79 return 'comment'; 80 } 81 if (/\d/.test(ch)) { 82 if (ch === '0' && stream.eat(/[bB]/)) { 83 stream.eatWhile(/[01]/); 84 } if (ch === '0' && stream.eat(/[xX]/)) { 85 stream.eatWhile(/[0-9a-fA-F]/) 86 } if (ch === '0' && stream.eat(/[oO]/)) { 87 stream.eatWhile(/[0-7]/); 88 } else { 89 stream.eatWhile(/[\d_]/); 90 if (stream.eat('.')) { 91 stream.eatWhile(/[\d]/); 92 } 93 if (stream.eat(/[eE]/)) { 94 stream.eatWhile(/[\d\-+]/); 95 } 96 } 97 return 'number'; 98 } 99 if ( /[+\-*&%=<>!?|@\.~:]/.test(ch)) { 100 return 'operator'; 101 } 102 if (/[\w\xa1-\uffff]/.test(ch)) { 103 stream.eatWhile(/[\w\xa1-\uffff]/); 104 var cur = stream.current(); 105 return words.hasOwnProperty(cur) ? words[cur] : 'variable'; 106 } 107 return null 108 } 109 110 function tokenString(stream, state) { 111 var next, end = false, escaped = false; 112 while ((next = stream.next()) != null) { 113 if (next === '"' && !escaped) { 114 end = true; 115 break; 116 } 117 escaped = !escaped && next === '\\'; 118 } 119 if (end && !escaped) { 120 state.tokenize = tokenBase; 121 } 122 return 'string'; 123 }; 124 125 function tokenComment(stream, state) { 126 var prev, next; 127 while(state.commentLevel > 0 && (next = stream.next()) != null) { 128 if (prev === '(' && next === '*') state.commentLevel++; 129 if (prev === '*' && next === ')') state.commentLevel--; 130 prev = next; 131 } 132 if (state.commentLevel <= 0) { 133 state.tokenize = tokenBase; 134 } 135 return 'comment'; 136 } 137 138 function tokenLongString(stream, state) { 139 var prev, next; 140 while (state.longString && (next = stream.next()) != null) { 141 if (prev === '|' && next === '}') state.longString = false; 142 prev = next; 143 } 144 if (!state.longString) { 145 state.tokenize = tokenBase; 146 } 147 return 'string'; 148 } 149 150 return { 151 startState: function() {return {tokenize: tokenBase, commentLevel: 0, longString: false};}, 152 token: function(stream, state) { 153 if (stream.eatSpace()) return null; 154 return state.tokenize(stream, state); 155 }, 156 157 blockCommentStart: "(*", 158 blockCommentEnd: "*)", 159 lineComment: parserConfig.slashComments ? "//" : null 160 }; 161 }); 162 163 CodeMirror.defineMIME('text/x-ocaml', { 164 name: 'mllike', 165 extraWords: { 166 'and': 'keyword', 167 'assert': 'keyword', 168 'begin': 'keyword', 169 'class': 'keyword', 170 'constraint': 'keyword', 171 'done': 'keyword', 172 'downto': 'keyword', 173 'external': 'keyword', 174 'function': 'keyword', 175 'initializer': 'keyword', 176 'lazy': 'keyword', 177 'match': 'keyword', 178 'method': 'keyword', 179 'module': 'keyword', 180 'mutable': 'keyword', 181 'new': 'keyword', 182 'nonrec': 'keyword', 183 'object': 'keyword', 184 'private': 'keyword', 185 'sig': 'keyword', 186 'to': 'keyword', 187 'try': 'keyword', 188 'value': 'keyword', 189 'virtual': 'keyword', 190 'when': 'keyword', 191 192 // builtins 193 'raise': 'builtin', 194 'failwith': 'builtin', 195 'true': 'builtin', 196 'false': 'builtin', 197 198 // Pervasives builtins 199 'asr': 'builtin', 200 'land': 'builtin', 201 'lor': 'builtin', 202 'lsl': 'builtin', 203 'lsr': 'builtin', 204 'lxor': 'builtin', 205 'mod': 'builtin', 206 'or': 'builtin', 207 208 // More Pervasives 209 'raise_notrace': 'builtin', 210 'trace': 'builtin', 211 'exit': 'builtin', 212 'print_string': 'builtin', 213 'print_endline': 'builtin', 214 215 'int': 'type', 216 'float': 'type', 217 'bool': 'type', 218 'char': 'type', 219 'string': 'type', 220 'unit': 'type', 221 222 // Modules 223 'List': 'builtin' 224 } 225 }); 226 227 CodeMirror.defineMIME('text/x-fsharp', { 228 name: 'mllike', 229 extraWords: { 230 'abstract': 'keyword', 231 'assert': 'keyword', 232 'base': 'keyword', 233 'begin': 'keyword', 234 'class': 'keyword', 235 'default': 'keyword', 236 'delegate': 'keyword', 237 'do!': 'keyword', 238 'done': 'keyword', 239 'downcast': 'keyword', 240 'downto': 'keyword', 241 'elif': 'keyword', 242 'extern': 'keyword', 243 'finally': 'keyword', 244 'for': 'keyword', 245 'function': 'keyword', 246 'global': 'keyword', 247 'inherit': 'keyword', 248 'inline': 'keyword', 249 'interface': 'keyword', 250 'internal': 'keyword', 251 'lazy': 'keyword', 252 'let!': 'keyword', 253 'match': 'keyword', 254 'member': 'keyword', 255 'module': 'keyword', 256 'mutable': 'keyword', 257 'namespace': 'keyword', 258 'new': 'keyword', 259 'null': 'keyword', 260 'override': 'keyword', 261 'private': 'keyword', 262 'public': 'keyword', 263 'return!': 'keyword', 264 'return': 'keyword', 265 'select': 'keyword', 266 'static': 'keyword', 267 'to': 'keyword', 268 'try': 'keyword', 269 'upcast': 'keyword', 270 'use!': 'keyword', 271 'use': 'keyword', 272 'void': 'keyword', 273 'when': 'keyword', 274 'yield!': 'keyword', 275 'yield': 'keyword', 276 277 // Reserved words 278 'atomic': 'keyword', 279 'break': 'keyword', 280 'checked': 'keyword', 281 'component': 'keyword', 282 'const': 'keyword', 283 'constraint': 'keyword', 284 'constructor': 'keyword', 285 'continue': 'keyword', 286 'eager': 'keyword', 287 'event': 'keyword', 288 'external': 'keyword', 289 'fixed': 'keyword', 290 'method': 'keyword', 291 'mixin': 'keyword', 292 'object': 'keyword', 293 'parallel': 'keyword', 294 'process': 'keyword', 295 'protected': 'keyword', 296 'pure': 'keyword', 297 'sealed': 'keyword', 298 'tailcall': 'keyword', 299 'trait': 'keyword', 300 'virtual': 'keyword', 301 'volatile': 'keyword', 302 303 // builtins 304 'List': 'builtin', 305 'Seq': 'builtin', 306 'Map': 'builtin', 307 'Set': 'builtin', 308 'Option': 'builtin', 309 'int': 'builtin', 310 'string': 'builtin', 311 'not': 'builtin', 312 'true': 'builtin', 313 'false': 'builtin', 314 315 'raise': 'builtin', 316 'failwith': 'builtin' 317 }, 318 slashComments: true 319 }); 320 321 322 CodeMirror.defineMIME('text/x-sml', { 323 name: 'mllike', 324 extraWords: { 325 'abstype': 'keyword', 326 'and': 'keyword', 327 'andalso': 'keyword', 328 'case': 'keyword', 329 'datatype': 'keyword', 330 'fn': 'keyword', 331 'handle': 'keyword', 332 'infix': 'keyword', 333 'infixr': 'keyword', 334 'local': 'keyword', 335 'nonfix': 'keyword', 336 'op': 'keyword', 337 'orelse': 'keyword', 338 'raise': 'keyword', 339 'withtype': 'keyword', 340 'eqtype': 'keyword', 341 'sharing': 'keyword', 342 'sig': 'keyword', 343 'signature': 'keyword', 344 'structure': 'keyword', 345 'where': 'keyword', 346 'true': 'keyword', 347 'false': 'keyword', 348 349 // types 350 'int': 'builtin', 351 'real': 'builtin', 352 'string': 'builtin', 353 'char': 'builtin', 354 'bool': 'builtin' 355 }, 356 slashComments: true 357 }); 358 359 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |