summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js')
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js b/www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js
new file mode 100644
index 00000000..0c46b381
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/ext-statusbar.js
@@ -0,0 +1,53 @@
+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)).schedule.bind(null, 100);
+
+ editor.on("changeStatus", statusUpdate);
+ editor.on("changeSelection", statusUpdate);
+ editor.on("keyboardActivity", statusUpdate);
+};
+
+(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 sel = editor.selection;
+ var c = sel.lead;
+
+ if (!sel.isEmpty()) {
+ var r = editor.getSelectionRange();
+ add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")", " ");
+ }
+ add(c.row + ":" + c.column, " ");
+ if (sel.rangeCount)
+ add("[" + sel.rangeCount + "]", " ");
+ status.pop();
+ this.element.textContent = status.join("");
+ };
+}).call(StatusBar.prototype);
+
+exports.StatusBar = StatusBar;
+
+});
+ (function() {
+ ace.require(["ace/ext/statusbar"], function() {});
+ })();
+ \ No newline at end of file