mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-26 01:51:51 +00:00
103 lines
3.2 KiB
HTML
103 lines
3.2 KiB
HTML
|
<!doctype html>
|
||
|
|
||
|
<title>CodeMirror: VB.NET mode</title>
|
||
|
<meta charset="utf-8"/>
|
||
|
<link rel=stylesheet href="../../doc/docs.css">
|
||
|
|
||
|
<link rel="stylesheet" href="../../lib/codemirror.css">
|
||
|
<link href="http://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css">
|
||
|
<script src="../../lib/codemirror.js"></script>
|
||
|
<script src="vb.js"></script>
|
||
|
<script type="text/javascript" src="../../addon/runmode/runmode.js"></script>
|
||
|
<style>
|
||
|
.CodeMirror {border: 1px solid #aaa; height:210px; height: auto;}
|
||
|
.CodeMirror-scroll { overflow-x: auto; overflow-y: hidden;}
|
||
|
.CodeMirror pre { font-family: Inconsolata; font-size: 14px}
|
||
|
</style>
|
||
|
<div id=nav>
|
||
|
<a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
|
||
|
|
||
|
<ul>
|
||
|
<li><a href="../../index.html">Home</a>
|
||
|
<li><a href="../../doc/manual.html">Manual</a>
|
||
|
<li><a href="https://github.com/marijnh/codemirror">Code</a>
|
||
|
</ul>
|
||
|
<ul>
|
||
|
<li><a href="../index.html">Language modes</a>
|
||
|
<li><a class=active href="#">VB.NET</a>
|
||
|
</ul>
|
||
|
</div>
|
||
|
|
||
|
<article>
|
||
|
<h2>VB.NET mode</h2>
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
function test(golden, text) {
|
||
|
var ok = true;
|
||
|
var i = 0;
|
||
|
function callback(token, style, lineNo, pos){
|
||
|
//console.log(String(token) + " " + String(style) + " " + String(lineNo) + " " + String(pos));
|
||
|
var result = [String(token), String(style)];
|
||
|
if (golden[i][0] != result[0] || golden[i][1] != result[1]){
|
||
|
return "Error, expected: " + String(golden[i]) + ", got: " + String(result);
|
||
|
ok = false;
|
||
|
}
|
||
|
i++;
|
||
|
}
|
||
|
CodeMirror.runMode(text, "text/x-vb",callback);
|
||
|
|
||
|
if (ok) return "Tests OK";
|
||
|
}
|
||
|
function testTypes() {
|
||
|
var golden = [['Integer','keyword'],[' ','null'],['Float','keyword']]
|
||
|
var text = "Integer Float";
|
||
|
return test(golden,text);
|
||
|
}
|
||
|
function testIf(){
|
||
|
var golden = [['If','keyword'],[' ','null'],['True','keyword'],[' ','null'],['End','keyword'],[' ','null'],['If','keyword']];
|
||
|
var text = 'If True End If';
|
||
|
return test(golden, text);
|
||
|
}
|
||
|
function testDecl(){
|
||
|
var golden = [['Dim','keyword'],[' ','null'],['x','variable'],[' ','null'],['as','keyword'],[' ','null'],['Integer','keyword']];
|
||
|
var text = 'Dim x as Integer';
|
||
|
return test(golden, text);
|
||
|
}
|
||
|
function testAll(){
|
||
|
var result = "";
|
||
|
|
||
|
result += testTypes() + "\n";
|
||
|
result += testIf() + "\n";
|
||
|
result += testDecl() + "\n";
|
||
|
return result;
|
||
|
|
||
|
}
|
||
|
function initText(editor) {
|
||
|
var content = 'Class rocket\nPrivate quality as Double\nPublic Sub launch() as String\nif quality > 0.8\nlaunch = "Successful"\nElse\nlaunch = "Failed"\nEnd If\nEnd sub\nEnd class\n';
|
||
|
editor.setValue(content);
|
||
|
for (var i =0; i< editor.lineCount(); i++) editor.indentLine(i);
|
||
|
}
|
||
|
function init() {
|
||
|
editor = CodeMirror.fromTextArea(document.getElementById("solution"), {
|
||
|
lineNumbers: true,
|
||
|
mode: "text/x-vb",
|
||
|
readOnly: false
|
||
|
});
|
||
|
runTest();
|
||
|
}
|
||
|
function runTest() {
|
||
|
document.getElementById('testresult').innerHTML = testAll();
|
||
|
initText(editor);
|
||
|
|
||
|
}
|
||
|
document.body.onload = init;
|
||
|
</script>
|
||
|
|
||
|
<div id="edit">
|
||
|
<textarea style="width:95%;height:200px;padding:5px;" name="solution" id="solution" ></textarea>
|
||
|
</div>
|
||
|
<pre id="testresult"></pre>
|
||
|
<p>MIME type defined: <code>text/x-vb</code>.</p>
|
||
|
|
||
|
</article>
|