Merge pull request #479 from nightwing/pullreq
make wrapping friendlier to code:
This commit is contained in:
commit
e8914acd7b
1 changed files with 16 additions and 13 deletions
|
|
@ -1197,6 +1197,7 @@ var EditSession = function(text, mode) {
|
|||
CHAR_EXT = 2,
|
||||
PLACEHOLDER_START = 3,
|
||||
PLACEHOLDER_BODY = 4,
|
||||
PUNCTUATION = 9,
|
||||
SPACE = 10,
|
||||
TAB = 11,
|
||||
TAB_SPACE = 12;
|
||||
|
|
@ -1240,7 +1241,7 @@ var EditSession = function(text, mode) {
|
|||
// a split is simple.
|
||||
if (tokens[split] >= SPACE) {
|
||||
// Include all following spaces + tabs in this split as well.
|
||||
while (tokens[split] >= SPACE) {
|
||||
while (tokens[split] >= SPACE) {
|
||||
split ++;
|
||||
}
|
||||
addSplit(split);
|
||||
|
|
@ -1295,16 +1296,16 @@ var EditSession = function(text, mode) {
|
|||
}
|
||||
|
||||
// === ELSE ===
|
||||
// Search for the first non space/tab/placeholder token backwards.
|
||||
for (split; split != lastSplit - 1; split--) {
|
||||
if (tokens[split] >= PLACEHOLDER_START) {
|
||||
split++;
|
||||
break;
|
||||
}
|
||||
// Search for the first non space/tab/placeholder/punctuation token backwards.
|
||||
var minSplit = Math.max(split - 10, lastSplit - 1);
|
||||
while (split > minSplit && tokens[split] < PLACEHOLDER_START) {
|
||||
split --;
|
||||
}
|
||||
// If we found one, then add the split.
|
||||
if (split > lastSplit) {
|
||||
addSplit(split);
|
||||
if (split > minSplit) {
|
||||
while(split > minSplit && tokens[split] == PUNCTUATION)
|
||||
split --;
|
||||
addSplit(++split);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1312,7 +1313,7 @@ var EditSession = function(text, mode) {
|
|||
split = lastSplit + wrapLimit;
|
||||
// The split is inside of a CHAR or CHAR_EXT token and no space
|
||||
// around -> force a split.
|
||||
addSplit(lastSplit + wrapLimit);
|
||||
addSplit(split);
|
||||
}
|
||||
return splits;
|
||||
}
|
||||
|
|
@ -1338,11 +1339,13 @@ var EditSession = function(text, mode) {
|
|||
}
|
||||
}
|
||||
// Space
|
||||
else if(c == 32) {
|
||||
else if (c == 32) {
|
||||
arr.push(SPACE);
|
||||
} else if((c > 39 && c < 48) || (c > 57 && c < 64)) {
|
||||
arr.push(PUNCTUATION);
|
||||
}
|
||||
// full width characters
|
||||
else if (isFullWidth(c)) {
|
||||
else if (c >= 0x1100 && isFullWidth(c)) {
|
||||
arr.push(CHAR, CHAR_EXT);
|
||||
} else {
|
||||
arr.push(CHAR);
|
||||
|
|
@ -1378,7 +1381,7 @@ var EditSession = function(text, mode) {
|
|||
screenColumn += this.getScreenTabSize(screenColumn);
|
||||
}
|
||||
// full width characters
|
||||
else if (isFullWidth(c)) {
|
||||
else if (c >= 0x1100 && isFullWidth(c)) {
|
||||
screenColumn += 2;
|
||||
} else {
|
||||
screenColumn += 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue