You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
ace.define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module) { |
|
"use strict"; |
|
var dom = require("ace/lib/dom"); |
|
var lang = require("ace/lib/lang"); |
|
|
|
var StatusBar = function(editor, parentNode) { |
|
this.element = dom.createElement("div"); |
|
this.element.className = "ace_status-indicator"; |
|
this.element.style.cssText = "display: inline-block;"; |
|
parentNode.appendChild(this.element); |
|
|
|
var statusUpdate = lang.delayedCall(function(){ |
|
this.updateStatus(editor) |
|
}.bind(this)); |
|
editor.on("changeStatus", function() { |
|
statusUpdate.schedule(100); |
|
}); |
|
editor.on("changeSelection", function() { |
|
statusUpdate.schedule(100); |
|
}); |
|
}; |
|
|
|
(function(){ |
|
this.updateStatus = function(editor) { |
|
var status = []; |
|
function add(str, separator) { |
|
str && status.push(str, separator || "|"); |
|
} |
|
|
|
add(editor.keyBinding.getStatusText(editor)); |
|
if (editor.commands.recording) |
|
add("REC"); |
|
|
|
var c = editor.selection.lead; |
|
add(c.row + ":" + c.column, " "); |
|
if (!editor.selection.isEmpty()) { |
|
var r = editor.getSelectionRange(); |
|
add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")"); |
|
} |
|
status.pop(); |
|
this.element.textContent = status.join(""); |
|
}; |
|
}).call(StatusBar.prototype); |
|
|
|
exports.StatusBar = StatusBar; |
|
|
|
}); |
|
(function() { |
|
ace.require(["ace/ext/statusbar"], function() {}); |
|
})(); |
|
|