Spaces:
Running
Running
// CodeMirror, copyright (c) by Marijn Haverbeke and others | |
// Distributed under an MIT license: http://codemirror.net/LICENSE | |
(function() { | |
var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-c"); | |
function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } | |
MT("indent", | |
"[type void] [def foo]([type void*] [variable a], [type int] [variable b]) {", | |
" [type int] [variable c] [operator =] [variable b] [operator +]", | |
" [number 1];", | |
" [keyword return] [operator *][variable a];", | |
"}"); | |
MT("indent_switch", | |
"[keyword switch] ([variable x]) {", | |
" [keyword case] [number 10]:", | |
" [keyword return] [number 20];", | |
" [keyword default]:", | |
" [variable printf]([string \"foo %c\"], [variable x]);", | |
"}"); | |
MT("def", | |
"[type void] [def foo]() {}", | |
"[keyword struct] [def bar]{}", | |
"[type int] [type *][def baz]() {}"); | |
MT("def_new_line", | |
"::[variable std]::[variable SomeTerribleType][operator <][variable T][operator >]", | |
"[def SomeLongMethodNameThatDoesntFitIntoOneLine]([keyword const] [variable MyType][operator &] [variable param]) {}") | |
MT("double_block", | |
"[keyword for] (;;)", | |
" [keyword for] (;;)", | |
" [variable x][operator ++];", | |
"[keyword return];"); | |
MT("preprocessor", | |
"[meta #define FOO 3]", | |
"[type int] [variable foo];", | |
"[meta #define BAR\\]", | |
"[meta 4]", | |
"[type unsigned] [type int] [variable bar] [operator =] [number 8];", | |
"[meta #include <baz> ][comment // comment]") | |
var mode_cpp = CodeMirror.getMode({indentUnit: 2}, "text/x-c++src"); | |
function MTCPP(name) { test.mode(name, mode_cpp, Array.prototype.slice.call(arguments, 1)); } | |
MTCPP("cpp14_literal", | |
"[number 10'000];", | |
"[number 0b10'000];", | |
"[number 0x10'000];", | |
"[string '100000'];"); | |
MTCPP("ctor_dtor", | |
"[def Foo::Foo]() {}", | |
"[def Foo::~Foo]() {}"); | |
var mode_scala = CodeMirror.getMode({indentUnit: 2}, "text/x-scala"); | |
function MTSCALA(name) { test.mode("scala_" + name, mode_scala, Array.prototype.slice.call(arguments, 1)); } | |
MTSCALA("nested_comments", | |
"[comment /*]", | |
"[comment But wait /* this is a nested comment */ for real]", | |
"[comment /**** let * me * show * you ****/]", | |
"[comment ///// let / me / show / you /////]", | |
"[comment */]"); | |
})(); | |