use lazy getTokenizer in getNextLineIndent
This commit is contained in:
parent
811d190c95
commit
b4628d450f
27 changed files with 32 additions and 32 deletions
|
|
@ -58,7 +58,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ oop.inherits(Mode, TextMode);
|
||||||
|
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
||||||
|
|
||||||
if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&
|
if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&
|
||||||
state === 'start' && indenter.test(line))
|
state === 'start' && indenter.test(line))
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ oop.inherits(Mode, TextMode);
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
// ignore braces in comments
|
// ignore braces in comments
|
||||||
var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
return indent;
|
return indent;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ oop.inherits(Mode, TextMode);
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
// ignore braces in comments
|
// ignore braces in comments
|
||||||
var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
return indent;
|
return indent;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
if (/comment|string/.test(endState))
|
if (/comment|string/.test(endState))
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ oop.inherits(Mode, TextMode);
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
var level = 0;
|
var level = 0;
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (state == "start") {
|
if (state == "start") {
|
||||||
|
|
@ -123,7 +123,7 @@ oop.inherits(Mode, TextMode);
|
||||||
if (line.match(/^\s*[\)\}\]]$/))
|
if (line.match(/^\s*[\)\}\]]$/))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
||||||
|
|
||||||
if (!tokens || !tokens.length)
|
if (!tokens || !tokens.length)
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -134,7 +134,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.autoOutdent = function(state, session, row) {
|
this.autoOutdent = function(state, session, row) {
|
||||||
var prevLine = session.getLine(row - 1);
|
var prevLine = session.getLine(row - 1);
|
||||||
var prevIndent = this.$getIndent(prevLine).length;
|
var prevIndent = this.$getIndent(prevLine).length;
|
||||||
var prevTokens = this.$tokenizer.getLineTokens(prevLine, "start").tokens;
|
var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens;
|
||||||
var tabLength = session.getTabString().length;
|
var tabLength = session.getTabString().length;
|
||||||
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
||||||
var curIndent = this.$getIndent(session.getLine(row)).length;
|
var curIndent = this.$getIndent(session.getLine(row)).length;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
@ -80,7 +80,7 @@ oop.inherits(Mode, TextMode);
|
||||||
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
||||||
|
|
||||||
if (!tokens)
|
if (!tokens)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ var indenter = /(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;
|
||||||
|
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
||||||
|
|
||||||
if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&
|
if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&
|
||||||
state === 'start' && indenter.test(line))
|
state === 'start' && indenter.test(line))
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
@ -80,7 +80,7 @@ oop.inherits(Mode, TextMode);
|
||||||
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
||||||
|
|
||||||
if (!tokens)
|
if (!tokens)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ oop.inherits(Mode, TextMode);
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
// ignore braces in comments
|
// ignore braces in comments
|
||||||
var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
return indent;
|
return indent;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
@ -79,7 +79,7 @@ oop.inherits(Mode, TextMode);
|
||||||
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
if (input !== "\r\n" && input !== "\r" && input !== "\n")
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
|
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
||||||
|
|
||||||
if (!tokens)
|
if (!tokens)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
|
|
||||||
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ oop.inherits(Mode, TextMode);
|
||||||
this.getNextLineIndent = function(state, line, tab) {
|
this.getNextLineIndent = function(state, line, tab) {
|
||||||
var indent = this.$getIndent(line);
|
var indent = this.$getIndent(line);
|
||||||
|
|
||||||
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
||||||
var tokens = tokenizedLine.tokens;
|
var tokens = tokenizedLine.tokens;
|
||||||
var endState = tokenizedLine.state;
|
var endState = tokenizedLine.state;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue