view rhodecode/public/js/mode/vb/index.html @ 4029:c9bcfe2d2ade

codecleaner
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 21 Jun 2013 01:11:16 +0200
parents a60a0e9092c6
children
line wrap: on
line source

<html>
  <head>
    <meta charset="utf-8">
    <title>CodeMirror: VB.NET mode</title>
    <link rel="stylesheet" href="../../lib/codemirror.css">
    <script src="../../lib/codemirror.js"></script>
    <script src="vb.js"></script>
    <link rel="stylesheet" href="../../doc/docs.css">
    <link href="http://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css">
    <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>
    <script type="text/javascript" src="../../addon/runmode/runmode.js"></script>
  </head>
  <body onload="init()">
    <h1>CodeMirror: VB.NET mode</h1>
<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,
        tabMode: "shift"
    });
    runTest();
}
function runTest() {
    document.getElementById('testresult').innerHTML = testAll();
  initText(editor);

}
</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>

</body></html>