index.html
4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!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>