annotate .cms/lib/codemirror/addon/mode/multiplex_test.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 (function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 CodeMirror.defineMode("markdown_with_stex", function(){
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 var inner = CodeMirror.getMode({}, "stex");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 var outer = CodeMirror.getMode({}, "markdown");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 var innerOptions = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 open: '$',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 close: '$',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 mode: inner,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 delimStyle: 'delim',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 innerStyle: 'inner'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 return CodeMirror.multiplexingMode(outer, innerOptions);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 var mode = CodeMirror.getMode({}, "markdown_with_stex");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 function MT(name) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 test.mode(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 name,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 mode,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 Array.prototype.slice.call(arguments, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 'multiplexing');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 "stexInsideMarkdown",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 CodeMirror.defineMode("identical_delim_multiplex", function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 return CodeMirror.multiplexingMode(CodeMirror.getMode({indentUnit: 2}, "javascript"), {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 open: "#",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 close: "#",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 mode: CodeMirror.getMode({}, "markdown"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 parseDelimiters: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 innerStyle: "q"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 var mode2 = CodeMirror.getMode({}, "identical_delim_multiplex");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 test.mode("identical_delimiters_with_parseDelimiters", mode2, [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 "[keyword let] [def x] [operator =] [q #foo][q&em *bar*][q #];"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 ], "multiplexing")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 })();