annotate .cms/lib/codemirror/mode/powershell/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 var mode = CodeMirror.getMode({indentUnit: 2}, "powershell");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 function forEach(arr, f) { for (var i = 0; i < arr.length; i++) f(arr[i], i) }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 MT('comment', '[number 1][comment # A]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 MT('comment_multiline', '[number 1][comment <#]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 '[comment ABC]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 '[comment #>][number 2]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 forEach([
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 '0', '1234',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 '12kb', '12mb', '12Gb', '12Tb', '12PB', '12L', '12D', '12lkb', '12dtb',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 '1.234', '1.234e56', '1.', '1.e2', '.2', '.2e34',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 '1.2MB', '1.kb', '.1dTB', '1.e1gb', '.2', '.2e34',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 '0x1', '0xabcdef', '0x3tb', '0xelmb'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 ], function(number) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 MT("number_" + number, "[number " + number + "]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 MT('string_literal_escaping', "[string 'a''']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 MT('string_literal_variable', "[string 'a $x']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 MT('string_escaping_1', '[string "a `""]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 MT('string_escaping_2', '[string "a """]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 MT('string_variable_escaping', '[string "a `$x"]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT('string_variable', '[string "a ][variable-2 $x][string b"]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 MT('string_variable_spaces', '[string "a ][variable-2 ${x y}][string b"]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 MT('string_expression', '[string "a ][punctuation $(][variable-2 $x][operator +][number 3][punctuation )][string b"]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 MT('string_expression_nested', '[string "A][punctuation $(][string "a][punctuation $(][string "w"][punctuation )][string b"][punctuation )][string B"]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 MT('string_heredoc', '[string @"]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 '[string abc]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 '[string "@]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 MT('string_heredoc_quotes', '[string @"]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 '[string abc "\']',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 '[string "@]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 MT('string_heredoc_variable', '[string @"]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 '[string a ][variable-2 $x][string b]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 '[string "@]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 MT('string_heredoc_nested_string', '[string @"]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 '[string a][punctuation $(][string "w"][punctuation )][string b]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 '[string "@]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 MT('string_heredoc_literal_quotes', "[string @']",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 '[string abc "\']',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 "[string '@]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 MT('array', "[punctuation @(][string 'a'][punctuation ,][string 'b'][punctuation )]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 MT('hash', "[punctuation @{][string 'key'][operator :][string 'value'][punctuation }]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 MT('variable', "[variable-2 $test]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 MT('variable_global', "[variable-2 $global:test]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 MT('variable_spaces', "[variable-2 ${test test}]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 MT('operator_splat', "[variable-2 @x]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 MT('variable_builtin', "[builtin $ErrorActionPreference]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 MT('variable_builtin_symbols', "[builtin $$]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 MT('operator', "[operator +]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 MT('operator_unary', "[operator +][number 3]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 MT('operator_long', "[operator -match]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 forEach([
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 '(', ')', '[[', ']]', '{', '}', ',', '`', ';', '.', '\\'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 ], function(punctuation) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 MT("punctuation_" + punctuation.replace(/^[\[\]]/,''), "[punctuation " + punctuation + "]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 MT('keyword', "[keyword if]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 MT('call_builtin', "[builtin Get-ChildItem]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 })();