aboutsummaryrefslogtreecommitdiffstats
path: root/public/vendor/plugins/codemirror/mode/swift/test.js
diff options
context:
space:
mode:
authoroscar.lofwenhamn <44643697+oscarlofwenhamn@users.noreply.github.com>2019-10-15 10:40:42 +0200
committerLauris BH <lauris@nix.lv>2019-10-15 11:40:42 +0300
commit1e9b33052553bb546ca526f04816579e2853c8da (patch)
treefab0b7043b93ccf1d89e8532e2d8890052647b4a /public/vendor/plugins/codemirror/mode/swift/test.js
parent6fa14ac3c82433f7f9bff4f4fe2ec6e33deb82ec (diff)
downloadgitea-1e9b33052553bb546ca526f04816579e2853c8da.tar.gz
gitea-1e9b33052553bb546ca526f04816579e2853c8da.zip
Update CodeMirror to version 5.49.0 (#8381)
* Update CodeMirror to version 5.49.0 * Update CodeMirror versions in librejs and VERSIONS
Diffstat (limited to 'public/vendor/plugins/codemirror/mode/swift/test.js')
-rw-r--r--public/vendor/plugins/codemirror/mode/swift/test.js162
1 files changed, 162 insertions, 0 deletions
diff --git a/public/vendor/plugins/codemirror/mode/swift/test.js b/public/vendor/plugins/codemirror/mode/swift/test.js
new file mode 100644
index 0000000000..8c93721d12
--- /dev/null
+++ b/public/vendor/plugins/codemirror/mode/swift/test.js
@@ -0,0 +1,162 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function() {
+ var mode = CodeMirror.getMode({indentUnit: 2}, "swift");
+ function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
+
+ // Ensure all number types are properly represented.
+ MT("numbers",
+ "[keyword var] [def a] [operator =] [number 17]",
+ "[keyword var] [def b] [operator =] [number -0.5]",
+ "[keyword var] [def c] [operator =] [number 0.3456e-4]",
+ "[keyword var] [def d] [operator =] [number 345e2]",
+ "[keyword var] [def e] [operator =] [number 0o7324]",
+ "[keyword var] [def f] [operator =] [number 0b10010]",
+ "[keyword var] [def g] [operator =] [number -0x35ade]",
+ "[keyword var] [def h] [operator =] [number 0xaea.ep-13]",
+ "[keyword var] [def i] [operator =] [number 0x13ep6]");
+
+ // Variable/class/etc definition.
+ MT("definition",
+ "[keyword var] [def a] [operator =] [number 5]",
+ "[keyword let] [def b][punctuation :] [variable-2 Int] [operator =] [number 10]",
+ "[keyword class] [def C] [punctuation {] [punctuation }]",
+ "[keyword struct] [def D] [punctuation {] [punctuation }]",
+ "[keyword enum] [def E] [punctuation {] [punctuation }]",
+ "[keyword extension] [def F] [punctuation {] [punctuation }]",
+ "[keyword protocol] [def G] [punctuation {] [punctuation }]",
+ "[keyword func] [def h][punctuation ()] [punctuation {] [punctuation }]",
+ "[keyword import] [def Foundation]",
+ "[keyword typealias] [def NewString] [operator =] [variable-2 String]",
+ "[keyword associatedtype] [def I]",
+ "[keyword for] [def j] [keyword in] [number 0][punctuation ..][operator <][number 3] [punctuation {] [punctuation }]");
+
+ // Strings and string interpolation.
+ MT("strings",
+ "[keyword var] [def a][punctuation :] [variable-2 String] [operator =] [string \"test\"]",
+ "[keyword var] [def b][punctuation :] [variable-2 String] [operator =] [string \"\\(][variable a][string )\"]",
+ "[keyword var] [def c] [operator =] [string \"\"\"]",
+ "[string multi]",
+ "[string line]",
+ "[string \"test\"]",
+ "[string \"\"\"]",
+ "[variable print][punctuation (][string \"\"][punctuation )]");
+
+ // Comments.
+ MT("comments",
+ "[comment // This is a comment]",
+ "[comment /* This is another comment */]",
+ "[keyword var] [def a] [operator =] [number 5] [comment // Third comment]");
+
+ // Atoms.
+ MT("atoms",
+ "[keyword class] [def FooClass] [punctuation {]",
+ " [keyword let] [def fooBool][punctuation :] [variable-2 Bool][operator ?]",
+ " [keyword let] [def fooInt][punctuation :] [variable-2 Int][operator ?]",
+ " [keyword func] [keyword init][punctuation (][variable fooBool][punctuation :] [variable-2 Bool][punctuation ,] [variable barBool][punctuation :] [variable-2 Bool][punctuation )] [punctuation {]",
+ " [atom super][property .init][punctuation ()]",
+ " [atom self][property .fooBool] [operator =] [variable fooBool]",
+ " [variable fooInt] [operator =] [atom nil]",
+ " [keyword if] [variable barBool] [operator ==] [atom true] [punctuation {]",
+ " [variable print][punctuation (][string \"True!\"][punctuation )]",
+ " [punctuation }] [keyword else] [keyword if] [variable barBool] [operator ==] [atom false] [punctuation {]",
+ " [keyword for] [atom _] [keyword in] [number 0][punctuation ...][number 5] [punctuation {]",
+ " [variable print][punctuation (][string \"False!\"][punctuation )]",
+ " [punctuation }]",
+ " [punctuation }]",
+ " [punctuation }]",
+ "[punctuation }]");
+
+ // Types.
+ MT("types",
+ "[keyword var] [def a] [operator =] [variable-2 Array][operator <][variable-2 Int][operator >]",
+ "[keyword var] [def b] [operator =] [variable-2 Set][operator <][variable-2 Bool][operator >]",
+ "[keyword var] [def c] [operator =] [variable-2 Dictionary][operator <][variable-2 String][punctuation ,][variable-2 Character][operator >]",
+ "[keyword var] [def d][punctuation :] [variable-2 Int64][operator ?] [operator =] [variable-2 Optional][punctuation (][number 8][punctuation )]",
+ "[keyword func] [def e][punctuation ()] [operator ->] [variable-2 Void] [punctuation {]",
+ " [keyword var] [def e1][punctuation :] [variable-2 Float] [operator =] [number 1.2]",
+ "[punctuation }]",
+ "[keyword func] [def f][punctuation ()] [operator ->] [variable-2 Never] [punctuation {]",
+ " [keyword var] [def f1][punctuation :] [variable-2 Double] [operator =] [number 2.4]",
+ "[punctuation }]");
+
+ // Operators.
+ MT("operators",
+ "[keyword var] [def a] [operator =] [number 1] [operator +] [number 2]",
+ "[keyword var] [def b] [operator =] [number 1] [operator -] [number 2]",
+ "[keyword var] [def c] [operator =] [number 1] [operator *] [number 2]",
+ "[keyword var] [def d] [operator =] [number 1] [operator /] [number 2]",
+ "[keyword var] [def e] [operator =] [number 1] [operator %] [number 2]",
+ "[keyword var] [def f] [operator =] [number 1] [operator |] [number 2]",
+ "[keyword var] [def g] [operator =] [number 1] [operator &] [number 2]",
+ "[keyword var] [def h] [operator =] [number 1] [operator <<] [number 2]",
+ "[keyword var] [def i] [operator =] [number 1] [operator >>] [number 2]",
+ "[keyword var] [def j] [operator =] [number 1] [operator ^] [number 2]",
+ "[keyword var] [def k] [operator =] [operator ~][number 1]",
+ "[keyword var] [def l] [operator =] [variable foo] [operator ?] [number 1] [punctuation :] [number 2]",
+ "[keyword var] [def m][punctuation :] [variable-2 Int] [operator =] [variable-2 Optional][punctuation (][number 8][punctuation )][operator !]");
+
+ // Punctuation.
+ MT("punctuation",
+ "[keyword let] [def a] [operator =] [number 1][punctuation ;] [keyword let] [def b] [operator =] [number 2]",
+ "[keyword let] [def testArr][punctuation :] [punctuation [[][variable-2 Int][punctuation ]]] [operator =] [punctuation [[][variable a][punctuation ,] [variable b][punctuation ]]]",
+ "[keyword for] [def i] [keyword in] [number 0][punctuation ..][operator <][variable testArr][property .count] [punctuation {]",
+ " [variable print][punctuation (][variable testArr][punctuation [[][variable i][punctuation ]])]",
+ "[punctuation }]");
+
+ // Identifiers.
+ MT("identifiers",
+ "[keyword let] [def abc] [operator =] [number 1]",
+ "[keyword let] [def ABC] [operator =] [number 2]",
+ "[keyword let] [def _123] [operator =] [number 3]",
+ "[keyword let] [def _$1$2$3] [operator =] [number 4]",
+ "[keyword let] [def A1$_c32_$_] [operator =] [number 5]",
+ "[keyword let] [def `var`] [operator =] [punctuation [[][number 1][punctuation ,] [number 2][punctuation ,] [number 3][punctuation ]]]",
+ "[keyword let] [def square$] [operator =] [variable `var`][property .map] [punctuation {][variable $0] [operator *] [variable $0][punctuation }]",
+ "$$ [number 1][variable a] $[atom _] [variable _$] [variable __] `[variable a] [variable b]`");
+
+ // Properties.
+ MT("properties",
+ "[variable print][punctuation (][variable foo][property .abc][punctuation )]",
+ "[variable print][punctuation (][variable foo][property .ABC][punctuation )]",
+ "[variable print][punctuation (][variable foo][property ._123][punctuation )]",
+ "[variable print][punctuation (][variable foo][property ._$1$2$3][punctuation )]",
+ "[variable print][punctuation (][variable foo][property .A1$_c32_$_][punctuation )]",
+ "[variable print][punctuation (][variable foo][property .`var`][punctuation )]",
+ "[variable print][punctuation (][variable foo][property .__][punctuation )]");
+
+ // Instructions or other things that start with #.
+ MT("instructions",
+ "[keyword if] [builtin #available][punctuation (][variable iOS] [number 9][punctuation ,] [operator *][punctuation )] [punctuation {}]",
+ "[variable print][punctuation (][builtin #file][punctuation ,] [builtin #function][punctuation )]",
+ "[variable print][punctuation (][builtin #line][punctuation ,] [builtin #column][punctuation )]",
+ "[builtin #if] [atom true]",
+ "[keyword import] [def A]",
+ "[builtin #elseif] [atom false]",
+ "[keyword import] [def B]",
+ "[builtin #endif]",
+ "[builtin #sourceLocation][punctuation (][variable file][punctuation :] [string \"file.swift\"][punctuation ,] [variable line][punctuation :] [number 2][punctuation )]");
+
+ // Attributes; things that start with @.
+ MT("attributes",
+ "[attribute @objc][punctuation (][variable objcFoo][punctuation :)]",
+ "[attribute @available][punctuation (][variable iOS][punctuation )]");
+
+ // Property/number edge case.
+ MT("property_number",
+ "[variable print][punctuation (][variable foo][property ._123][punctuation )]",
+ "[variable print][punctuation (]")
+
+ MT("nested_comments",
+ "[comment /*]",
+ "[comment But wait /* this is a nested comment */ for real]",
+ "[comment /**** let * me * show * you ****/]",
+ "[comment ///// let / me / show / you /////]",
+ "[comment */]");
+
+ // TODO: correctly identify when multiple variables are being declared
+ // by use of a comma-separated list.
+ // TODO: correctly identify when variables are being declared in a tuple.
+ // TODO: identify protocols as types when used before an extension?
+})();