mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.2 KiB
102 lines
3.2 KiB
<!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"><h1>CodeMirror</h1><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/codemirror/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>
|
|
|