demo.ts 15.71 KiB
"use strict";
import ace from "ace-builds";
import "ace-builds/src-noconflict/ext-searchbox";
import "ace-builds/src-noconflict/ext-language_tools";
import "ace-builds/src-noconflict/ext-error_marker";
import "ace-builds/src-noconflict/ext-options";
import "ace-builds/src-noconflict/ext-prompt";
import {Mode} from "./playground/cvu-mode";
let DemoWorker = require("worker-loader!./demo-worker")
let demoWorker = new DemoWorker();
ace.Editor.prototype.__defineGetter__("$readOnly", function() { return this.session.$readOnly })
var mode = "ast";
var refs = {};
var dom = ace.require("ace/lib/dom");
var box = require("./playground/ui-lib/box");
var cvuCompleters = [{
    getCompletions(editor, session, pos, prefix, callback) {
        session.$worker.call("complete", [pos], function(result) {
            callback(null, result);
        });
var WorkerClient = ace.require("ace/worker/worker_client").WorkerClient;
function WebpackWorkerClient(worker) {
    this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);
    this.changeListener = this.changeListener.bind(this);
    this.onMessage = this.onMessage.bind(this);
    this.$worker = worker;
    this.callbackId = 1;
    this.callbacks = {};
    this.$worker.onmessage = this.onMessage;
WebpackWorkerClient.prototype = WorkerClient.prototype;
var sharedWorker =  new WebpackWorkerClient(demoWorker);
sharedWorker.on("annotate", function(e) {
    sharedWorker.session.setAnnotations(e.data); 
});
var result, ast;
var mode = window.localStorage.mode || "ast"
var cvumode = new Mode() 
var {HashHandler} = ace.require("ace/keyboard/hash_handler");
var event = ace.require("ace/lib/event");
var keyUtil = ace.require("ace/lib/keys");
var menuKb = new HashHandler([
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
bindKey: {win: "Ctrl-O|Ctrl-P", mac: "Cmd-O|Cmd-P"}, name: "Open File", exec: function () { promptOpenFile() } }, { bindKey: {win: "F1|Ctrl-Shift-P", mac: "F1|Cmd-Shift-P"}, name: "commandPrompt", exec: function () { saveCurrentFile() } }, { bindKey: {win: "Ctrl-S", mac: "Cmd-S"}, name: "Save", exec: function () { saveCurrentFile() } } ]); event.addCommandKeyListener(window, function (e, hashId, keyCode) { var keyString = keyUtil.keyCodeToString(keyCode); var command = menuKb.findKeyCommand(hashId, keyString); if (command) { event.stopEvent(e); command.exec(); } }); var {Box, Pane} = require("./playground/ui-lib/box"); var {ListBox} = require("./playground/ui-lib/listBox"); var {Tab, TabBar, Panel, PanelBar} = require("./playground/ui-lib/tab"); var {TabManager} = require("./playground/ui-lib/tabManager"); var mainBox var listBox var baseBox = new Box({ vertical: false, toolBars: { top: new PanelBar({}), bottom: new PanelBar({}) }, 1: new Box({ vertical: false, 0: new Box({ vertical: false, 0: listBox = new ListBox({ size: "200px", }), 1: mainBox = new Box({ ratio: 1, isMain: true, }), }), toolBars: {}, }), }); var onResize = function() { baseBox.setBox(0, 0, window.innerWidth, window.innerHeight) }; window.onresize = onResize; document.body.innerHTML = "" document.body.appendChild(baseBox.draw()); onResize()