simplify lua folding
This commit is contained in:
parent
db499d06a9
commit
5ab20469c0
1 changed files with 4 additions and 16 deletions
|
|
@ -53,6 +53,8 @@ oop.inherits(FoldMode, BaseFoldMode);
|
||||||
|
|
||||||
if (isStart && !isEnd) {
|
if (isStart && !isEnd) {
|
||||||
var match = line.match(this.foldingStartMarker);
|
var match = line.match(this.foldingStartMarker);
|
||||||
|
if (match[1] == "then" && /\belseif\b/.test(line))
|
||||||
|
return;
|
||||||
if (match[1]) {
|
if (match[1]) {
|
||||||
if (session.getTokenAt(row, match.index + 1).type === "keyword")
|
if (session.getTokenAt(row, match.index + 1).type === "keyword")
|
||||||
return "start";
|
return "start";
|
||||||
|
|
@ -113,16 +115,10 @@ oop.inherits(FoldMode, BaseFoldMode);
|
||||||
"do": 1,
|
"do": 1,
|
||||||
"then": 1,
|
"then": 1,
|
||||||
"elseif": -1,
|
"elseif": -1,
|
||||||
"else": 0,
|
|
||||||
"end": -1,
|
"end": -1,
|
||||||
"repeat": 1,
|
"repeat": 1,
|
||||||
"until": -1,
|
"until": -1,
|
||||||
};
|
};
|
||||||
var voidKeywords = {
|
|
||||||
"elseif": 1,
|
|
||||||
"if": 1,
|
|
||||||
"for": 1
|
|
||||||
};
|
|
||||||
|
|
||||||
var token = stream.getCurrentToken();
|
var token = stream.getCurrentToken();
|
||||||
if (!token || token.type != "keyword")
|
if (!token || token.type != "keyword")
|
||||||
|
|
@ -130,15 +126,7 @@ oop.inherits(FoldMode, BaseFoldMode);
|
||||||
|
|
||||||
var val = token.value;
|
var val = token.value;
|
||||||
var stack = [val];
|
var stack = [val];
|
||||||
var dir;
|
var dir = indentKeywords[val];
|
||||||
if (voidKeywords[val]) {
|
|
||||||
stack = [];
|
|
||||||
dir = 1;
|
|
||||||
} else if (val === "else") {
|
|
||||||
dir = 1;
|
|
||||||
} else {
|
|
||||||
dir = indentKeywords[val];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dir)
|
if (!dir)
|
||||||
return;
|
return;
|
||||||
|
|
@ -156,7 +144,7 @@ oop.inherits(FoldMode, BaseFoldMode);
|
||||||
stack.unshift(token.value);
|
stack.unshift(token.value);
|
||||||
} else if (level <= 0) {
|
} else if (level <= 0) {
|
||||||
stack.shift();
|
stack.shift();
|
||||||
if (!stack.length)
|
if (!stack.length && token.value != "elseif")
|
||||||
break;
|
break;
|
||||||
if (level === 0)
|
if (level === 0)
|
||||||
stack.unshift(token.value);
|
stack.unshift(token.value);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue