ll-plus 2.10.24 → 2.10.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/theme-chalk/code-editor-vue3/addon/comment/comment.js +211 -0
- package/theme-chalk/code-editor-vue3/addon/comment/continuecomment.js +114 -0
- package/theme-chalk/code-editor-vue3/addon/dialog/dialog.css +32 -0
- package/theme-chalk/code-editor-vue3/addon/dialog/dialog.js +163 -0
- package/theme-chalk/code-editor-vue3/addon/display/autorefresh.js +47 -0
- package/theme-chalk/code-editor-vue3/addon/display/fullscreen.css +6 -0
- package/theme-chalk/code-editor-vue3/addon/display/fullscreen.js +41 -0
- package/theme-chalk/code-editor-vue3/addon/display/panel.js +133 -0
- package/theme-chalk/code-editor-vue3/addon/display/placeholder.js +78 -0
- package/theme-chalk/code-editor-vue3/addon/display/rulers.js +51 -0
- package/theme-chalk/code-editor-vue3/addon/edit/closebrackets.js +201 -0
- package/theme-chalk/code-editor-vue3/addon/edit/closetag.js +185 -0
- package/theme-chalk/code-editor-vue3/addon/edit/continuelist.js +101 -0
- package/theme-chalk/code-editor-vue3/addon/edit/matchbrackets.js +160 -0
- package/theme-chalk/code-editor-vue3/addon/edit/matchtags.js +66 -0
- package/theme-chalk/code-editor-vue3/addon/edit/trailingspace.js +27 -0
- package/theme-chalk/code-editor-vue3/addon/fold/brace-fold.js +119 -0
- package/theme-chalk/code-editor-vue3/addon/fold/comment-fold.js +59 -0
- package/theme-chalk/code-editor-vue3/addon/fold/foldcode.js +159 -0
- package/theme-chalk/code-editor-vue3/addon/fold/foldgutter.css +20 -0
- package/theme-chalk/code-editor-vue3/addon/fold/foldgutter.js +169 -0
- package/theme-chalk/code-editor-vue3/addon/fold/indent-fold.js +48 -0
- package/theme-chalk/code-editor-vue3/addon/fold/markdown-fold.js +49 -0
- package/theme-chalk/code-editor-vue3/addon/fold/xml-fold.js +184 -0
- package/theme-chalk/code-editor-vue3/addon/hint/anyword-hint.js +41 -0
- package/theme-chalk/code-editor-vue3/addon/hint/css-hint.js +66 -0
- package/theme-chalk/code-editor-vue3/addon/hint/html-hint.js +351 -0
- package/theme-chalk/code-editor-vue3/addon/hint/javascript-hint.js +162 -0
- package/theme-chalk/code-editor-vue3/addon/hint/show-hint.css +37 -0
- package/theme-chalk/code-editor-vue3/addon/hint/show-hint.js +523 -0
- package/theme-chalk/code-editor-vue3/addon/hint/sql-hint.js +304 -0
- package/theme-chalk/code-editor-vue3/addon/hint/xml-hint.js +132 -0
- package/theme-chalk/code-editor-vue3/addon/lint/coffeescript-lint.js +47 -0
- package/theme-chalk/code-editor-vue3/addon/lint/css-lint.js +40 -0
- package/theme-chalk/code-editor-vue3/addon/lint/html-lint.js +59 -0
- package/theme-chalk/code-editor-vue3/addon/lint/javascript-lint.js +65 -0
- package/theme-chalk/code-editor-vue3/addon/lint/json-lint.js +40 -0
- package/theme-chalk/code-editor-vue3/addon/lint/lint.css +79 -0
- package/theme-chalk/code-editor-vue3/addon/lint/lint.js +288 -0
- package/theme-chalk/code-editor-vue3/addon/lint/yaml-lint.js +41 -0
- package/theme-chalk/code-editor-vue3/addon/merge/merge.css +119 -0
- package/theme-chalk/code-editor-vue3/addon/merge/merge.js +1018 -0
- package/theme-chalk/code-editor-vue3/addon/mode/loadmode.js +66 -0
- package/theme-chalk/code-editor-vue3/addon/mode/multiplex.js +136 -0
- package/theme-chalk/code-editor-vue3/addon/mode/multiplex_test.js +49 -0
- package/theme-chalk/code-editor-vue3/addon/mode/overlay.js +90 -0
- package/theme-chalk/code-editor-vue3/addon/mode/simple.js +216 -0
- package/theme-chalk/code-editor-vue3/addon/runmode/colorize.js +40 -0
- package/theme-chalk/code-editor-vue3/addon/runmode/runmode-standalone.js +334 -0
- package/theme-chalk/code-editor-vue3/addon/runmode/runmode.js +76 -0
- package/theme-chalk/code-editor-vue3/addon/runmode/runmode.node.js +329 -0
- package/theme-chalk/code-editor-vue3/addon/scroll/annotatescrollbar.js +128 -0
- package/theme-chalk/code-editor-vue3/addon/scroll/scrollpastend.js +48 -0
- package/theme-chalk/code-editor-vue3/addon/scroll/simplescrollbars.css +66 -0
- package/theme-chalk/code-editor-vue3/addon/scroll/simplescrollbars.js +152 -0
- package/theme-chalk/code-editor-vue3/addon/search/jump-to-line.js +53 -0
- package/theme-chalk/code-editor-vue3/addon/search/match-highlighter.js +167 -0
- package/theme-chalk/code-editor-vue3/addon/search/matchesonscrollbar.css +8 -0
- package/theme-chalk/code-editor-vue3/addon/search/matchesonscrollbar.js +97 -0
- package/theme-chalk/code-editor-vue3/addon/search/search.js +295 -0
- package/theme-chalk/code-editor-vue3/addon/search/searchcursor.js +305 -0
- package/theme-chalk/code-editor-vue3/addon/selection/active-line.js +72 -0
- package/theme-chalk/code-editor-vue3/addon/selection/mark-selection.js +119 -0
- package/theme-chalk/code-editor-vue3/addon/selection/selection-pointer.js +98 -0
- package/theme-chalk/code-editor-vue3/addon/tern/tern.css +87 -0
- package/theme-chalk/code-editor-vue3/addon/tern/tern.js +756 -0
- package/theme-chalk/code-editor-vue3/addon/tern/worker.js +44 -0
- package/theme-chalk/code-editor-vue3/addon/wrap/hardwrap.js +160 -0
- package/theme-chalk/code-editor-vue3/lib/codemirror.css +344 -0
- package/theme-chalk/code-editor-vue3/lib/codemirror.js +9884 -0
- package/theme-chalk/code-editor-vue3/mode/apl/apl.js +174 -0
- package/theme-chalk/code-editor-vue3/mode/asciiarmor/asciiarmor.js +74 -0
- package/theme-chalk/code-editor-vue3/mode/asn.1/asn.1.js +204 -0
- package/theme-chalk/code-editor-vue3/mode/asterisk/asterisk.js +220 -0
- package/theme-chalk/code-editor-vue3/mode/brainfuck/brainfuck.js +85 -0
- package/theme-chalk/code-editor-vue3/mode/clike/clike.js +942 -0
- package/theme-chalk/code-editor-vue3/mode/clojure/clojure.js +293 -0
- package/theme-chalk/code-editor-vue3/mode/cmake/cmake.js +97 -0
- package/theme-chalk/code-editor-vue3/mode/cobol/cobol.js +255 -0
- package/theme-chalk/code-editor-vue3/mode/coffeescript/coffeescript.js +359 -0
- package/theme-chalk/code-editor-vue3/mode/commonlisp/commonlisp.js +125 -0
- package/theme-chalk/code-editor-vue3/mode/crystal/crystal.js +433 -0
- package/theme-chalk/code-editor-vue3/mode/cypher/cypher.js +152 -0
- package/theme-chalk/code-editor-vue3/mode/d/d.js +223 -0
- package/theme-chalk/code-editor-vue3/mode/dart/dart.js +168 -0
- package/theme-chalk/code-editor-vue3/mode/diff/diff.js +47 -0
- package/theme-chalk/code-editor-vue3/mode/django/django.js +356 -0
- package/theme-chalk/code-editor-vue3/mode/dockerfile/dockerfile.js +211 -0
- package/theme-chalk/code-editor-vue3/mode/dtd/dtd.js +142 -0
- package/theme-chalk/code-editor-vue3/mode/dylan/dylan.js +352 -0
- package/theme-chalk/code-editor-vue3/mode/ebnf/ebnf.js +195 -0
- package/theme-chalk/code-editor-vue3/mode/ecl/ecl.js +206 -0
- package/theme-chalk/code-editor-vue3/mode/eiffel/eiffel.js +160 -0
- package/theme-chalk/code-editor-vue3/mode/elm/elm.js +245 -0
- package/theme-chalk/code-editor-vue3/mode/erlang/erlang.js +619 -0
- package/theme-chalk/code-editor-vue3/mode/factor/factor.js +85 -0
- package/theme-chalk/code-editor-vue3/mode/fcl/fcl.js +173 -0
- package/theme-chalk/code-editor-vue3/mode/forth/forth.js +180 -0
- package/theme-chalk/code-editor-vue3/mode/fortran/fortran.js +188 -0
- package/theme-chalk/code-editor-vue3/mode/gas/gas.js +353 -0
- package/theme-chalk/code-editor-vue3/mode/gfm/gfm.js +129 -0
- package/theme-chalk/code-editor-vue3/mode/gherkin/gherkin.js +178 -0
- package/theme-chalk/code-editor-vue3/mode/go/go.js +187 -0
- package/theme-chalk/code-editor-vue3/mode/groovy/groovy.js +245 -0
- package/theme-chalk/code-editor-vue3/mode/haml/haml.js +161 -0
- package/theme-chalk/code-editor-vue3/mode/handlebars/handlebars.js +70 -0
- package/theme-chalk/code-editor-vue3/mode/haskell/haskell.js +268 -0
- package/theme-chalk/code-editor-vue3/mode/haskell-literate/haskell-literate.js +43 -0
- package/theme-chalk/code-editor-vue3/mode/haxe/haxe.js +515 -0
- package/theme-chalk/code-editor-vue3/mode/htmlmixed/htmlmixed.js +153 -0
- package/theme-chalk/code-editor-vue3/mode/http/http.js +113 -0
- package/theme-chalk/code-editor-vue3/mode/idl/idl.js +290 -0
- package/theme-chalk/code-editor-vue3/mode/jinja2/jinja2.js +193 -0
- package/theme-chalk/code-editor-vue3/mode/julia/julia.js +390 -0
- package/theme-chalk/code-editor-vue3/mode/livescript/livescript.js +280 -0
- package/theme-chalk/code-editor-vue3/mode/lua/lua.js +160 -0
- package/theme-chalk/code-editor-vue3/mode/markdown/markdown.js +886 -0
- package/theme-chalk/code-editor-vue3/mode/mathematica/mathematica.js +176 -0
- package/theme-chalk/code-editor-vue3/mode/mbox/mbox.js +129 -0
- package/theme-chalk/code-editor-vue3/mode/meta.js +221 -0
- package/theme-chalk/code-editor-vue3/mode/mirc/mirc.js +193 -0
- package/theme-chalk/code-editor-vue3/mode/mllike/mllike.js +359 -0
- package/theme-chalk/code-editor-vue3/mode/modelica/modelica.js +245 -0
- package/theme-chalk/code-editor-vue3/mode/mscgen/mscgen.js +175 -0
- package/theme-chalk/code-editor-vue3/mode/mumps/mumps.js +148 -0
- package/theme-chalk/code-editor-vue3/mode/nginx/nginx.js +178 -0
- package/theme-chalk/code-editor-vue3/mode/nsis/nsis.js +95 -0
- package/theme-chalk/code-editor-vue3/mode/ntriples/ntriples.js +195 -0
- package/theme-chalk/code-editor-vue3/mode/octave/octave.js +139 -0
- package/theme-chalk/code-editor-vue3/mode/oz/oz.js +252 -0
- package/theme-chalk/code-editor-vue3/mode/pascal/pascal.js +136 -0
- package/theme-chalk/code-editor-vue3/mode/pegjs/pegjs.js +111 -0
- package/theme-chalk/code-editor-vue3/mode/perl/perl.js +836 -0
- package/theme-chalk/code-editor-vue3/mode/php/php.js +234 -0
- package/theme-chalk/code-editor-vue3/mode/pig/pig.js +178 -0
- package/theme-chalk/code-editor-vue3/mode/powershell/powershell.js +398 -0
- package/theme-chalk/code-editor-vue3/mode/properties/properties.js +78 -0
- package/theme-chalk/code-editor-vue3/mode/protobuf/protobuf.js +72 -0
- package/theme-chalk/code-editor-vue3/mode/pug/pug.js +591 -0
- package/theme-chalk/code-editor-vue3/mode/puppet/puppet.js +220 -0
- package/theme-chalk/code-editor-vue3/mode/python/python.js +402 -0
- package/theme-chalk/code-editor-vue3/mode/q/q.js +139 -0
- package/theme-chalk/code-editor-vue3/mode/r/r.js +190 -0
- package/theme-chalk/code-editor-vue3/mode/rpm/changes/index.html +66 -0
- package/theme-chalk/code-editor-vue3/mode/rpm/rpm.js +109 -0
- package/theme-chalk/code-editor-vue3/mode/rst/rst.js +557 -0
- package/theme-chalk/code-editor-vue3/mode/ruby/ruby.js +303 -0
- package/theme-chalk/code-editor-vue3/mode/rust/rust.js +72 -0
- package/theme-chalk/code-editor-vue3/mode/sas/sas.js +303 -0
- package/theme-chalk/code-editor-vue3/mode/sass/sass.js +459 -0
- package/theme-chalk/code-editor-vue3/mode/scheme/scheme.js +284 -0
- package/theme-chalk/code-editor-vue3/mode/shell/shell.js +168 -0
- package/theme-chalk/code-editor-vue3/mode/sieve/sieve.js +193 -0
- package/theme-chalk/code-editor-vue3/mode/slim/slim.js +575 -0
- package/theme-chalk/code-editor-vue3/mode/smalltalk/smalltalk.js +168 -0
- package/theme-chalk/code-editor-vue3/mode/smarty/smarty.js +225 -0
- package/theme-chalk/code-editor-vue3/mode/solr/solr.js +104 -0
- package/theme-chalk/code-editor-vue3/mode/soy/soy.js +665 -0
- package/theme-chalk/code-editor-vue3/mode/sparql/sparql.js +184 -0
- package/theme-chalk/code-editor-vue3/mode/spreadsheet/spreadsheet.js +112 -0
- package/theme-chalk/code-editor-vue3/mode/sql/sql.js +525 -0
- package/theme-chalk/code-editor-vue3/mode/stex/stex.js +264 -0
- package/theme-chalk/code-editor-vue3/mode/stylus/stylus.js +775 -0
- package/theme-chalk/code-editor-vue3/mode/swift/swift.js +221 -0
- package/theme-chalk/code-editor-vue3/mode/tcl/tcl.js +140 -0
- package/theme-chalk/code-editor-vue3/mode/textile/textile.js +469 -0
- package/theme-chalk/code-editor-vue3/mode/tiddlywiki/tiddlywiki.css +14 -0
- package/theme-chalk/code-editor-vue3/mode/tiddlywiki/tiddlywiki.js +308 -0
- package/theme-chalk/code-editor-vue3/mode/tiki/tiki.css +26 -0
- package/theme-chalk/code-editor-vue3/mode/tiki/tiki.js +312 -0
- package/theme-chalk/code-editor-vue3/mode/toml/toml.js +88 -0
- package/theme-chalk/code-editor-vue3/mode/tornado/tornado.js +68 -0
- package/theme-chalk/code-editor-vue3/mode/troff/troff.js +84 -0
- package/theme-chalk/code-editor-vue3/mode/ttcn/ttcn.js +283 -0
- package/theme-chalk/code-editor-vue3/mode/ttcn-cfg/ttcn-cfg.js +214 -0
- package/theme-chalk/code-editor-vue3/mode/turtle/turtle.js +162 -0
- package/theme-chalk/code-editor-vue3/mode/twig/twig.js +141 -0
- package/theme-chalk/code-editor-vue3/mode/vb/vb.js +275 -0
- package/theme-chalk/code-editor-vue3/mode/vbscript/vbscript.js +350 -0
- package/theme-chalk/code-editor-vue3/mode/velocity/velocity.js +202 -0
- package/theme-chalk/code-editor-vue3/mode/verilog/verilog.js +781 -0
- package/theme-chalk/code-editor-vue3/mode/vhdl/vhdl.js +189 -0
- package/theme-chalk/code-editor-vue3/mode/wast/wast.js +132 -0
- package/theme-chalk/code-editor-vue3/mode/webidl/webidl.js +195 -0
- package/theme-chalk/code-editor-vue3/mode/xml/xml.js +417 -0
- package/theme-chalk/code-editor-vue3/mode/xquery/xquery.js +448 -0
- package/theme-chalk/code-editor-vue3/mode/yacas/yacas.js +204 -0
- package/theme-chalk/code-editor-vue3/mode/yaml/yaml.js +120 -0
- package/theme-chalk/code-editor-vue3/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
- package/theme-chalk/code-editor-vue3/mode/z80/z80.js +116 -0
|
@@ -0,0 +1,252 @@
|
|
|
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("oz", function (conf) {
|
|
15
|
+
|
|
16
|
+
function wordRegexp(words) {
|
|
17
|
+
return new RegExp("^((" + words.join(")|(") + "))\\b");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var singleOperators = /[\^@!\|<>#~\.\*\-\+\\/,=]/;
|
|
21
|
+
var doubleOperators = /(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/;
|
|
22
|
+
var tripleOperators = /(:::)|(\.\.\.)|(=<:)|(>=:)/;
|
|
23
|
+
|
|
24
|
+
var middle = ["in", "then", "else", "of", "elseof", "elsecase", "elseif", "catch",
|
|
25
|
+
"finally", "with", "require", "prepare", "import", "export", "define", "do"];
|
|
26
|
+
var end = ["end"];
|
|
27
|
+
|
|
28
|
+
var atoms = wordRegexp(["true", "false", "nil", "unit"]);
|
|
29
|
+
var commonKeywords = wordRegexp(["andthen", "at", "attr", "declare", "feat", "from", "lex",
|
|
30
|
+
"mod", "div", "mode", "orelse", "parser", "prod", "prop", "scanner", "self", "syn", "token"]);
|
|
31
|
+
var openingKeywords = wordRegexp(["local", "proc", "fun", "case", "class", "if", "cond", "or", "dis",
|
|
32
|
+
"choice", "not", "thread", "try", "raise", "lock", "for", "suchthat", "meth", "functor"]);
|
|
33
|
+
var middleKeywords = wordRegexp(middle);
|
|
34
|
+
var endKeywords = wordRegexp(end);
|
|
35
|
+
|
|
36
|
+
// Tokenizers
|
|
37
|
+
function tokenBase(stream, state) {
|
|
38
|
+
if (stream.eatSpace()) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Brackets
|
|
43
|
+
if(stream.match(/[{}]/)) {
|
|
44
|
+
return "bracket";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Special [] keyword
|
|
48
|
+
if (stream.match('[]')) {
|
|
49
|
+
return "keyword"
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Operators
|
|
53
|
+
if (stream.match(tripleOperators) || stream.match(doubleOperators)) {
|
|
54
|
+
return "operator";
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Atoms
|
|
58
|
+
if(stream.match(atoms)) {
|
|
59
|
+
return 'atom';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Opening keywords
|
|
63
|
+
var matched = stream.match(openingKeywords);
|
|
64
|
+
if (matched) {
|
|
65
|
+
if (!state.doInCurrentLine)
|
|
66
|
+
state.currentIndent++;
|
|
67
|
+
else
|
|
68
|
+
state.doInCurrentLine = false;
|
|
69
|
+
|
|
70
|
+
// Special matching for signatures
|
|
71
|
+
if(matched[0] == "proc" || matched[0] == "fun")
|
|
72
|
+
state.tokenize = tokenFunProc;
|
|
73
|
+
else if(matched[0] == "class")
|
|
74
|
+
state.tokenize = tokenClass;
|
|
75
|
+
else if(matched[0] == "meth")
|
|
76
|
+
state.tokenize = tokenMeth;
|
|
77
|
+
|
|
78
|
+
return 'keyword';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Middle and other keywords
|
|
82
|
+
if (stream.match(middleKeywords) || stream.match(commonKeywords)) {
|
|
83
|
+
return "keyword"
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// End keywords
|
|
87
|
+
if (stream.match(endKeywords)) {
|
|
88
|
+
state.currentIndent--;
|
|
89
|
+
return 'keyword';
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Eat the next char for next comparisons
|
|
93
|
+
var ch = stream.next();
|
|
94
|
+
|
|
95
|
+
// Strings
|
|
96
|
+
if (ch == '"' || ch == "'") {
|
|
97
|
+
state.tokenize = tokenString(ch);
|
|
98
|
+
return state.tokenize(stream, state);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Numbers
|
|
102
|
+
if (/[~\d]/.test(ch)) {
|
|
103
|
+
if (ch == "~") {
|
|
104
|
+
if(! /^[0-9]/.test(stream.peek()))
|
|
105
|
+
return null;
|
|
106
|
+
else if (( stream.next() == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
|
|
107
|
+
return "number";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
|
|
111
|
+
return "number";
|
|
112
|
+
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Comments
|
|
117
|
+
if (ch == "%") {
|
|
118
|
+
stream.skipToEnd();
|
|
119
|
+
return 'comment';
|
|
120
|
+
}
|
|
121
|
+
else if (ch == "/") {
|
|
122
|
+
if (stream.eat("*")) {
|
|
123
|
+
state.tokenize = tokenComment;
|
|
124
|
+
return tokenComment(stream, state);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Single operators
|
|
129
|
+
if(singleOperators.test(ch)) {
|
|
130
|
+
return "operator";
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// If nothing match, we skip the entire alphanumeric block
|
|
134
|
+
stream.eatWhile(/\w/);
|
|
135
|
+
|
|
136
|
+
return "variable";
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function tokenClass(stream, state) {
|
|
140
|
+
if (stream.eatSpace()) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);
|
|
144
|
+
state.tokenize = tokenBase;
|
|
145
|
+
return "variable-3"
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function tokenMeth(stream, state) {
|
|
149
|
+
if (stream.eatSpace()) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
stream.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);
|
|
153
|
+
state.tokenize = tokenBase;
|
|
154
|
+
return "def"
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function tokenFunProc(stream, state) {
|
|
158
|
+
if (stream.eatSpace()) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if(!state.hasPassedFirstStage && stream.eat("{")) {
|
|
163
|
+
state.hasPassedFirstStage = true;
|
|
164
|
+
return "bracket";
|
|
165
|
+
}
|
|
166
|
+
else if(state.hasPassedFirstStage) {
|
|
167
|
+
stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/);
|
|
168
|
+
state.hasPassedFirstStage = false;
|
|
169
|
+
state.tokenize = tokenBase;
|
|
170
|
+
return "def"
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
state.tokenize = tokenBase;
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function tokenComment(stream, state) {
|
|
179
|
+
var maybeEnd = false, ch;
|
|
180
|
+
while (ch = stream.next()) {
|
|
181
|
+
if (ch == "/" && maybeEnd) {
|
|
182
|
+
state.tokenize = tokenBase;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
maybeEnd = (ch == "*");
|
|
186
|
+
}
|
|
187
|
+
return "comment";
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function tokenString(quote) {
|
|
191
|
+
return function (stream, state) {
|
|
192
|
+
var escaped = false, next, end = false;
|
|
193
|
+
while ((next = stream.next()) != null) {
|
|
194
|
+
if (next == quote && !escaped) {
|
|
195
|
+
end = true;
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
escaped = !escaped && next == "\\";
|
|
199
|
+
}
|
|
200
|
+
if (end || !escaped)
|
|
201
|
+
state.tokenize = tokenBase;
|
|
202
|
+
return "string";
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function buildElectricInputRegEx() {
|
|
207
|
+
// Reindentation should occur on [] or on a match of any of
|
|
208
|
+
// the block closing keywords, at the end of a line.
|
|
209
|
+
var allClosings = middle.concat(end);
|
|
210
|
+
return new RegExp("[\\[\\]]|(" + allClosings.join("|") + ")$");
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return {
|
|
214
|
+
|
|
215
|
+
startState: function () {
|
|
216
|
+
return {
|
|
217
|
+
tokenize: tokenBase,
|
|
218
|
+
currentIndent: 0,
|
|
219
|
+
doInCurrentLine: false,
|
|
220
|
+
hasPassedFirstStage: false
|
|
221
|
+
};
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
token: function (stream, state) {
|
|
225
|
+
if (stream.sol())
|
|
226
|
+
state.doInCurrentLine = 0;
|
|
227
|
+
|
|
228
|
+
return state.tokenize(stream, state);
|
|
229
|
+
},
|
|
230
|
+
|
|
231
|
+
indent: function (state, textAfter) {
|
|
232
|
+
var trueText = textAfter.replace(/^\s+|\s+$/g, '');
|
|
233
|
+
|
|
234
|
+
if (trueText.match(endKeywords) || trueText.match(middleKeywords) || trueText.match(/(\[])/))
|
|
235
|
+
return conf.indentUnit * (state.currentIndent - 1);
|
|
236
|
+
|
|
237
|
+
if (state.currentIndent < 0)
|
|
238
|
+
return 0;
|
|
239
|
+
|
|
240
|
+
return state.currentIndent * conf.indentUnit;
|
|
241
|
+
},
|
|
242
|
+
fold: "indent",
|
|
243
|
+
electricInput: buildElectricInputRegEx(),
|
|
244
|
+
lineComment: "%",
|
|
245
|
+
blockCommentStart: "/*",
|
|
246
|
+
blockCommentEnd: "*/"
|
|
247
|
+
};
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
CodeMirror.defineMIME("text/x-oz", "oz");
|
|
251
|
+
|
|
252
|
+
});
|
|
@@ -0,0 +1,136 @@
|
|
|
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("pascal", function() {
|
|
15
|
+
function words(str) {
|
|
16
|
+
var obj = {}, words = str.split(" ");
|
|
17
|
+
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
var keywords = words(
|
|
21
|
+
"absolute and array asm begin case const constructor destructor div do " +
|
|
22
|
+
"downto else end file for function goto if implementation in inherited " +
|
|
23
|
+
"inline interface label mod nil not object of operator or packed procedure " +
|
|
24
|
+
"program record reintroduce repeat self set shl shr string then to type " +
|
|
25
|
+
"unit until uses var while with xor as class dispinterface except exports " +
|
|
26
|
+
"finalization finally initialization inline is library on out packed " +
|
|
27
|
+
"property raise resourcestring threadvar try absolute abstract alias " +
|
|
28
|
+
"assembler bitpacked break cdecl continue cppdecl cvar default deprecated " +
|
|
29
|
+
"dynamic enumerator experimental export external far far16 forward generic " +
|
|
30
|
+
"helper implements index interrupt iocheck local message name near " +
|
|
31
|
+
"nodefault noreturn nostackframe oldfpccall otherwise overload override " +
|
|
32
|
+
"pascal platform private protected public published read register " +
|
|
33
|
+
"reintroduce result safecall saveregisters softfloat specialize static " +
|
|
34
|
+
"stdcall stored strict unaligned unimplemented varargs virtual write");
|
|
35
|
+
var atoms = {"null": true};
|
|
36
|
+
|
|
37
|
+
var isOperatorChar = /[+\-*&%=<>!?|\/]/;
|
|
38
|
+
|
|
39
|
+
function tokenBase(stream, state) {
|
|
40
|
+
var ch = stream.next();
|
|
41
|
+
if (ch == "#" && state.startOfLine) {
|
|
42
|
+
stream.skipToEnd();
|
|
43
|
+
return "meta";
|
|
44
|
+
}
|
|
45
|
+
if (ch == '"' || ch == "'") {
|
|
46
|
+
state.tokenize = tokenString(ch);
|
|
47
|
+
return state.tokenize(stream, state);
|
|
48
|
+
}
|
|
49
|
+
if (ch == "(" && stream.eat("*")) {
|
|
50
|
+
state.tokenize = tokenComment;
|
|
51
|
+
return tokenComment(stream, state);
|
|
52
|
+
}
|
|
53
|
+
if (ch == "{") {
|
|
54
|
+
state.tokenize = tokenCommentBraces;
|
|
55
|
+
return tokenCommentBraces(stream, state);
|
|
56
|
+
}
|
|
57
|
+
if (/[\[\]\(\),;\:\.]/.test(ch)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (/\d/.test(ch)) {
|
|
61
|
+
stream.eatWhile(/[\w\.]/);
|
|
62
|
+
return "number";
|
|
63
|
+
}
|
|
64
|
+
if (ch == "/") {
|
|
65
|
+
if (stream.eat("/")) {
|
|
66
|
+
stream.skipToEnd();
|
|
67
|
+
return "comment";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (isOperatorChar.test(ch)) {
|
|
71
|
+
stream.eatWhile(isOperatorChar);
|
|
72
|
+
return "operator";
|
|
73
|
+
}
|
|
74
|
+
stream.eatWhile(/[\w\$_]/);
|
|
75
|
+
var cur = stream.current();
|
|
76
|
+
if (keywords.propertyIsEnumerable(cur)) return "keyword";
|
|
77
|
+
if (atoms.propertyIsEnumerable(cur)) return "atom";
|
|
78
|
+
return "variable";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function tokenString(quote) {
|
|
82
|
+
return function(stream, state) {
|
|
83
|
+
var escaped = false, next, end = false;
|
|
84
|
+
while ((next = stream.next()) != null) {
|
|
85
|
+
if (next == quote && !escaped) {end = true; break;}
|
|
86
|
+
escaped = !escaped && next == "\\";
|
|
87
|
+
}
|
|
88
|
+
if (end || !escaped) state.tokenize = null;
|
|
89
|
+
return "string";
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function tokenComment(stream, state) {
|
|
94
|
+
var maybeEnd = false, ch;
|
|
95
|
+
while (ch = stream.next()) {
|
|
96
|
+
if (ch == ")" && maybeEnd) {
|
|
97
|
+
state.tokenize = null;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
maybeEnd = (ch == "*");
|
|
101
|
+
}
|
|
102
|
+
return "comment";
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function tokenCommentBraces(stream, state) {
|
|
106
|
+
var ch;
|
|
107
|
+
while (ch = stream.next()) {
|
|
108
|
+
if (ch == "}") {
|
|
109
|
+
state.tokenize = null;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return "comment";
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Interface
|
|
117
|
+
|
|
118
|
+
return {
|
|
119
|
+
startState: function() {
|
|
120
|
+
return {tokenize: null};
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
token: function(stream, state) {
|
|
124
|
+
if (stream.eatSpace()) return null;
|
|
125
|
+
var style = (state.tokenize || tokenBase)(stream, state);
|
|
126
|
+
if (style == "comment" || style == "meta") return style;
|
|
127
|
+
return style;
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
electricChars: "{}"
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
CodeMirror.defineMIME("text/x-pascal", "pascal");
|
|
135
|
+
|
|
136
|
+
});
|
|
@@ -0,0 +1,111 @@
|
|
|
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"), require("../javascript/javascript"));
|
|
7
|
+
else if (typeof define == "function" && define.amd) // AMD
|
|
8
|
+
define(["../../lib/codemirror", "../javascript/javascript"], mod);
|
|
9
|
+
else // Plain browser env
|
|
10
|
+
mod(CodeMirror);
|
|
11
|
+
})(function(CodeMirror) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
CodeMirror.defineMode("pegjs", function (config) {
|
|
15
|
+
var jsMode = CodeMirror.getMode(config, "javascript");
|
|
16
|
+
|
|
17
|
+
function identifier(stream) {
|
|
18
|
+
return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
startState: function () {
|
|
23
|
+
return {
|
|
24
|
+
inString: false,
|
|
25
|
+
stringType: null,
|
|
26
|
+
inComment: false,
|
|
27
|
+
inCharacterClass: false,
|
|
28
|
+
braced: 0,
|
|
29
|
+
lhs: true,
|
|
30
|
+
localState: null
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
token: function (stream, state) {
|
|
34
|
+
//check for state changes
|
|
35
|
+
if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
|
|
36
|
+
state.stringType = stream.peek();
|
|
37
|
+
stream.next(); // Skip quote
|
|
38
|
+
state.inString = true; // Update state
|
|
39
|
+
}
|
|
40
|
+
if (!state.inString && !state.inComment && stream.match('/*')) {
|
|
41
|
+
state.inComment = true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (state.inString) {
|
|
45
|
+
while (state.inString && !stream.eol()) {
|
|
46
|
+
if (stream.peek() === state.stringType) {
|
|
47
|
+
stream.next(); // Skip quote
|
|
48
|
+
state.inString = false; // Clear flag
|
|
49
|
+
} else if (stream.peek() === '\\') {
|
|
50
|
+
stream.next();
|
|
51
|
+
stream.next();
|
|
52
|
+
} else {
|
|
53
|
+
stream.match(/^.[^\\\"\']*/);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return state.lhs ? "property string" : "string"; // Token style
|
|
57
|
+
} else if (state.inComment) {
|
|
58
|
+
while (state.inComment && !stream.eol()) {
|
|
59
|
+
if (stream.match('*/')) {
|
|
60
|
+
state.inComment = false; // Clear flag
|
|
61
|
+
} else {
|
|
62
|
+
stream.match(/^.[^\*]*/);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return "comment";
|
|
66
|
+
} else if (state.inCharacterClass) {
|
|
67
|
+
while (state.inCharacterClass && !stream.eol()) {
|
|
68
|
+
if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
|
|
69
|
+
state.inCharacterClass = false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} else if (stream.peek() === '[') {
|
|
73
|
+
stream.next();
|
|
74
|
+
state.inCharacterClass = true;
|
|
75
|
+
return 'bracket';
|
|
76
|
+
} else if (stream.match('//')) {
|
|
77
|
+
stream.skipToEnd();
|
|
78
|
+
return "comment";
|
|
79
|
+
} else if (state.braced || stream.peek() === '{') {
|
|
80
|
+
if (state.localState === null) {
|
|
81
|
+
state.localState = CodeMirror.startState(jsMode);
|
|
82
|
+
}
|
|
83
|
+
var token = jsMode.token(stream, state.localState);
|
|
84
|
+
var text = stream.current();
|
|
85
|
+
if (!token) {
|
|
86
|
+
for (var i = 0; i < text.length; i++) {
|
|
87
|
+
if (text[i] === '{') {
|
|
88
|
+
state.braced++;
|
|
89
|
+
} else if (text[i] === '}') {
|
|
90
|
+
state.braced--;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return token;
|
|
95
|
+
} else if (identifier(stream)) {
|
|
96
|
+
if (stream.peek() === ':') {
|
|
97
|
+
return 'variable';
|
|
98
|
+
}
|
|
99
|
+
return 'variable-2';
|
|
100
|
+
} else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {
|
|
101
|
+
stream.next();
|
|
102
|
+
return 'bracket';
|
|
103
|
+
} else if (!stream.eatSpace()) {
|
|
104
|
+
stream.next();
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}, "javascript");
|
|
110
|
+
|
|
111
|
+
});
|