Start addressing comments
This commit is contained in:
parent
9efccbb776
commit
3d0f30c36d
3 changed files with 18 additions and 39 deletions
|
|
@ -62,6 +62,8 @@ var fillDropdown = util.fillDropdown;
|
||||||
var bindCheckbox = util.bindCheckbox;
|
var bindCheckbox = util.bindCheckbox;
|
||||||
var bindDropdown = util.bindDropdown;
|
var bindDropdown = util.bindDropdown;
|
||||||
|
|
||||||
|
var ElasticTabstopsLite = require("ace/elastic_tabstops_lite").ElasticTabstopsLite;
|
||||||
|
|
||||||
/*********** create editor ***************************/
|
/*********** create editor ***************************/
|
||||||
var container = document.getElementById("editor-container");
|
var container = document.getElementById("editor-container");
|
||||||
|
|
||||||
|
|
@ -379,7 +381,8 @@ bindDropdown("split", function(value) {
|
||||||
|
|
||||||
|
|
||||||
bindCheckbox("elastic_tabstops", function(checked) {
|
bindCheckbox("elastic_tabstops", function(checked) {
|
||||||
env.editor.setUseElasticTabstops(checked);
|
if (checked === true)
|
||||||
|
new ElasticTabstopsLite(env.editor);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -462,8 +462,8 @@ var Editor = function(renderer, session) {
|
||||||
|
|
||||||
// update cursor because tab characters can influence the cursor position
|
// update cursor because tab characters can influence the cursor position
|
||||||
this.$cursorChange();
|
this.$cursorChange();
|
||||||
|
console.log(e);
|
||||||
if (this.$useElasticTabstops) {
|
/*if (this.$useElasticTabstops) {
|
||||||
if (this.ElasticTabstops === undefined) {
|
if (this.ElasticTabstops === undefined) {
|
||||||
var ElasticTabstops = require("./elastic_tabstops").ElasticTabstops;
|
var ElasticTabstops = require("./elastic_tabstops").ElasticTabstops;
|
||||||
this.ElasticTabstops = new ElasticTabstops(this, this.session);
|
this.ElasticTabstops = new ElasticTabstops(this, this.session);
|
||||||
|
|
@ -476,7 +476,7 @@ var Editor = function(renderer, session) {
|
||||||
// block event calling, because this method makes changes
|
// block event calling, because this method makes changes
|
||||||
this.ElasticTabstops.processRow([row]);
|
this.ElasticTabstops.processRow([row]);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
};
|
};
|
||||||
|
|
||||||
this.onTokenizerUpdate = function(e) {
|
this.onTokenizerUpdate = function(e) {
|
||||||
|
|
@ -1057,29 +1057,6 @@ var Editor = function(renderer, session) {
|
||||||
return this.getOption("fadeFoldWidgets");
|
return this.getOption("fadeFoldWidgets");
|
||||||
};
|
};
|
||||||
|
|
||||||
this.$useElasticTabstops = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines whether or not elastic tabstops should be used.
|
|
||||||
* @param {Boolean} useElasticTabstops Set to `true` to enable elastic tabstops
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
this.setUseElasticTabstops = function(useElasticTabstops) {
|
|
||||||
if (this.$useElasticTabstops == useElasticTabstops)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this.$useElasticTabstops = useElasticTabstops;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether or not elastic tabstops are set.
|
|
||||||
* @returns {Boolean} The current elastic tabstops setting
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
this.getUseElasticTabstops = function() {
|
|
||||||
return this.$useElasticTabstops;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes words of text from the editor. A "word" is defined as a string of characters bookended by whitespace.
|
* Removes words of text from the editor. A "word" is defined as a string of characters bookended by whitespace.
|
||||||
* @param {String} dir The direction of the deletion to occur, either "left" or "right"
|
* @param {String} dir The direction of the deletion to occur, either "left" or "right"
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,8 @@
|
||||||
define(function(require, exports, module) {
|
define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var ElasticTabstops = function(editor, session) {
|
var ElasticTabstopsLite = function(editor) {
|
||||||
this.$editor = editor;
|
this.$editor = editor;
|
||||||
this.$session = session;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
@ -78,7 +77,7 @@ var ElasticTabstops = function(editor, session) {
|
||||||
|
|
||||||
// forward (not including starting row)
|
// forward (not including starting row)
|
||||||
rowIter = row;
|
rowIter = row;
|
||||||
var numRows = this.$session.getLength();
|
var numRows = this.$editor.session.getLength();
|
||||||
|
|
||||||
while (rowIter < numRows - 1) {
|
while (rowIter < numRows - 1) {
|
||||||
rowIter++;
|
rowIter++;
|
||||||
|
|
@ -99,7 +98,7 @@ var ElasticTabstops = function(editor, session) {
|
||||||
|
|
||||||
var tabs = [-1].concat(this.$tabsForRow(row));
|
var tabs = [-1].concat(this.$tabsForRow(row));
|
||||||
var widths = tabs.map(function (el) { return 0; } ).slice(1);
|
var widths = tabs.map(function (el) { return 0; } ).slice(1);
|
||||||
var line = this.$session.getLine(row);
|
var line = this.$editor.session.getLine(row);
|
||||||
|
|
||||||
for (var i = 0, len = tabs.length - 1; i < len; i++) {
|
for (var i = 0, len = tabs.length - 1; i < len; i++) {
|
||||||
var leftEdge = tabs[i]+1;
|
var leftEdge = tabs[i]+1;
|
||||||
|
|
@ -115,7 +114,7 @@ var ElasticTabstops = function(editor, session) {
|
||||||
|
|
||||||
this.$selectionColumnsForRow = function(row) {
|
this.$selectionColumnsForRow = function(row) {
|
||||||
var selections = [], cursor = this.$editor.getCursorPosition();
|
var selections = [], cursor = this.$editor.getCursorPosition();
|
||||||
if (this.$session.getSelection().isEmpty()) {
|
if (this.$editor.session.getSelection().isEmpty()) {
|
||||||
// todo: support multicursor
|
// todo: support multicursor
|
||||||
if (row == cursor.row)
|
if (row == cursor.row)
|
||||||
selections.push(cursor.column);
|
selections.push(cursor.column);
|
||||||
|
|
@ -177,7 +176,7 @@ var ElasticTabstops = function(editor, session) {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.$tabsForRow = function(row) {
|
this.$tabsForRow = function(row) {
|
||||||
var rowTabs = [], line = this.$session.getLine(row),
|
var rowTabs = [], line = this.$editor.session.getLine(row),
|
||||||
re = /\t/g, match;
|
re = /\t/g, match;
|
||||||
|
|
||||||
while ((match = re.exec(line)) != null) {
|
while ((match = re.exec(line)) != null) {
|
||||||
|
|
@ -207,21 +206,21 @@ var ElasticTabstops = function(editor, session) {
|
||||||
if (difference == 0)
|
if (difference == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var partialLine = this.$session.getLine(row).substr(0, it );
|
var partialLine = this.$editor.session.getLine(row).substr(0, it );
|
||||||
var strippedPartialLine = partialLine.replace(/\s*$/g, "");
|
var strippedPartialLine = partialLine.replace(/\s*$/g, "");
|
||||||
var ispaces = partialLine.length - strippedPartialLine.length;
|
var ispaces = partialLine.length - strippedPartialLine.length;
|
||||||
|
|
||||||
if (difference > 0) {
|
if (difference > 0) {
|
||||||
// put the spaces after the tab and then delete the tab, so any insertion
|
// put the spaces after the tab and then delete the tab, so any insertion
|
||||||
// points behave as expected
|
// points behave as expected
|
||||||
this.$session.getDocument().insertInLine({row: row, column: it + 1}, Array(difference + 1).join(" ") + "\t");
|
this.$editor.session.getDocument().insertInLine({row: row, column: it + 1}, Array(difference + 1).join(" ") + "\t");
|
||||||
this.$session.getDocument().removeInLine(row, it, it + 1);
|
this.$editor.session.getDocument().removeInLine(row, it, it + 1);
|
||||||
|
|
||||||
bias += difference;
|
bias += difference;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (difference < 0 && ispaces >= -difference) {
|
if (difference < 0 && ispaces >= -difference) {
|
||||||
this.$session.getDocument().removeInLine(row, it + difference, it);
|
this.$editor.session.getDocument().removeInLine(row, it + difference, it);
|
||||||
bias += difference;
|
bias += difference;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -269,8 +268,8 @@ var ElasticTabstops = function(editor, session) {
|
||||||
return expandedSet;
|
return expandedSet;
|
||||||
};
|
};
|
||||||
|
|
||||||
}).call(ElasticTabstops.prototype);
|
}).call(ElasticTabstopsLite.prototype);
|
||||||
|
|
||||||
exports.ElasticTabstops = ElasticTabstops;
|
exports.ElasticTabstopsLite = ElasticTabstopsLite;
|
||||||
|
|
||||||
});
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue