all repos — NoPaste @ de062991ccdf763b2091f26873047685f9c0c977

Resurrected - The PussTheCat.org fork of NoPaste

scripts/CodeMirror/mode/powershell/test.js (view raw)

 1// CodeMirror, copyright (c) by Marijn Haverbeke and others
 2// Distributed under an MIT license: https://codemirror.net/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})();