Blame view

backend/makest/js/plugins/codemirror/mode/vb/index.html 3.19 KB
d1f8bd40   Alexey Boroda   first commit
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
  <!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>