Files @ 531ab818cc3d
Branch filter:

Location: kallithea/rhodecode/public/js/mode/vb/index.html - annotation

Bradley M. Kuhn
Add javascript for Object Code excanvas (flot) version herein included and use that instead of minified version.

I had a bit of trouble finding the upstream on excanvas, as the version from
Google, which appears to be the original source, seems unmaintained.

However, it appears the version we're carrying in Kallithea is indeed from
the excanvas era of flot.

$ (cd /tmp; \
svn -r 135 checkout http://flot.googlecode.com/svn/trunk/ flot )
$ cp /tmp/flot/excanvas.js rhodecode/public/js/excanvas.js

I also verified the sha256sum of the min file matched ours:

$ sha256sum /tmp/flot/excanvas.min.js rhodecode/public/js/excanvas.min.js
5f94b032a110504b7b261eaf71392fa3e8d82cdc6455c0cba5c9f03cd34ed122 /tmp/flot/excanvas.min.js
5f94b032a110504b7b261eaf71392fa3e8d82cdc6455c0cba5c9f03cd34ed122 rhodecode/public/js/excanvas.min.js
<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>