<!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>