Update comments with more thoughts

dev/git-series/gccdum
Matt Godbolt 6 years ago
parent 262656160f
commit 0639664de2

@ -93,7 +93,6 @@ define(function (require) {
// Hide the binary option if the global options has it disabled.
this.domRoot.find("[data-bind='binary']").toggle(options.supportsBinary);
// TODO: everything here
this.outputEditor = monaco.editor.create(this.domRoot.find(".monaco-placeholder")[0], {
scrollBeyondLastLine: false,
readOnly: true,
@ -245,54 +244,48 @@ define(function (require) {
return '<div class="address">' + address + '</div>' + opcodes + '</div>';
};
// TODO: use ContentWidgets? OverlayWidgets?
// Use highlight providers? hover providers? highlight providers?
Compiler.prototype.setAssembly = function (assembly) {
this.assembly = assembly;
this.outputEditor.getModel().setValue(_.pluck(assembly, 'text').join("\n"));
/* TODO!
var addrToAddrDiv = {};
_.each(this.assembly, _.bind(function (obj, line) {
var address = obj.address ? obj.address.toString(16) : "";
var div = $("<div class='address cm-number'>" + address + "</div>");
addrToAddrDiv[address] = {div: div, line: line};
this.outputEditor.setGutterMarker(line, 'address', div[0]);
}, this));
_.each(this.assembly, _.bind(function (obj, line) {
var opcodes = $("<div class='opcodes'></div>");
if (obj.opcodes) {
_.each(obj.opcodes, function (op) {
opcodes.append($("<span class='opcode'>" + op + "</span>"));
});
opcodes.attr('title', obj.opcodes.join(" "));
}
this.outputEditor.setGutterMarker(line, 'opcodes', opcodes[0]);
if (obj.links) {
_.each(obj.links, _.bind(function (link) {
var from = {line: line, ch: link.offset};
var to = {line: line, ch: link.offset + link.length};
var address = link.to.toString(16);
var thing = $("<a href='#' class='cm-number'>" + address + "</a>");
this.outputEditor.markText(
from, to, {replacedWith: thing[0], handleMouseEvents: false});
var dest = addrToAddrDiv[address];
if (dest) {
var editor = this.outputEditor;
thing.hover(function (e) {
var entered = e.type == "mouseenter";
dest.div.toggleClass("highlighted", entered);
thing.toggleClass("highlighted", entered);
});
thing.on('click', function (e) {
editor.scrollIntoView({line: dest.line, ch: 0}, 30);
dest.div.toggleClass("highlighted", false);
thing.toggleClass("highlighted", false);
e.preventDefault();
});
}
}, this));
}
}, this));
*/
var addrToAddrDiv = {};
var decorations = [];
_.each(this.assembly, _.bind(function (obj, line) {
var address = obj.address ? obj.address.toString(16) : "";
// var div = $("<div class='address cm-number'>" + address + "</div>");
addrToAddrDiv[address] = {div: "moo", line: line};
}, this));
_.each(this.assembly, _.bind(function (obj, line) {
if (obj.links) {
_.each(obj.links, _.bind(function (link) {
var address = link.to.toString(16);
// var thing = $("<a href='#' class='cm-number'>" + address + "</a>");
// this.outputEditor.markText(
// from, to, {replacedWith: thing[0], handleMouseEvents: false});
var dest = addrToAddrDiv[address];
if (dest) {
decorations.push({
range: new monaco.Range(line, link.offset, line, link.offset + link.length),
options: {}
});
// var editor = this.outputEditor;
// thing.hover(function (e) {
// var entered = e.type == "mouseenter";
// dest.div.toggleClass("highlighted", entered);
// thing.toggleClass("highlighted", entered);
// });
// thing.on('click', function (e) {
// editor.scrollIntoView({line: dest.line, ch: 0}, 30);
// dest.div.toggleClass("highlighted", false);
// thing.toggleClass("highlighted", false);
// e.preventDefault();
// });
}
}, this));
}
}, this));
};
function errorResult(text) {

Loading…
Cancel
Save