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