Merge remote branch 'upstream/master'

This commit is contained in:
dgeorge 2011-10-28 14:27:16 -07:00
commit dc84eac595
5 changed files with 88 additions and 85 deletions

View file

@ -1105,6 +1105,7 @@ var EditSession = function(text, mode) {
CHAR_EXT = 2, CHAR_EXT = 2,
PLACEHOLDER_START = 3, PLACEHOLDER_START = 3,
PLACEHOLDER_BODY = 4, PLACEHOLDER_BODY = 4,
PUNCTUATION = 9,
SPACE = 10, SPACE = 10,
TAB = 11, TAB = 11,
TAB_SPACE = 12; TAB_SPACE = 12;
@ -1203,16 +1204,16 @@ var EditSession = function(text, mode) {
} }
// === ELSE === // === ELSE ===
// Search for the first non space/tab/placeholder token backwards. // Search for the first non space/tab/placeholder/punctuation token backwards.
for (split; split != lastSplit - 1; split--) { var minSplit = Math.max(split - 10, lastSplit - 1);
if (tokens[split] >= PLACEHOLDER_START) { while (split > minSplit && tokens[split] < PLACEHOLDER_START) {
split++; split --;
break;
}
} }
// If we found one, then add the split. // If we found one, then add the split.
if (split > lastSplit) { if (split > minSplit) {
addSplit(split); while(split > minSplit && tokens[split] == PUNCTUATION)
split --;
addSplit(++split);
continue; continue;
} }
@ -1220,7 +1221,7 @@ var EditSession = function(text, mode) {
split = lastSplit + wrapLimit; split = lastSplit + wrapLimit;
// The split is inside of a CHAR or CHAR_EXT token and no space // The split is inside of a CHAR or CHAR_EXT token and no space
// around -> force a split. // around -> force a split.
addSplit(lastSplit + wrapLimit); addSplit(split);
} }
return splits; return splits;
} }
@ -1248,9 +1249,11 @@ var EditSession = function(text, mode) {
// Space // Space
else if (c == 32) { else if (c == 32) {
arr.push(SPACE); arr.push(SPACE);
} else if((c > 39 && c < 48) || (c > 57 && c < 64)) {
arr.push(PUNCTUATION);
} }
// full width characters // full width characters
else if (isFullWidth(c)) { else if (c >= 0x1100 && isFullWidth(c)) {
arr.push(CHAR, CHAR_EXT); arr.push(CHAR, CHAR_EXT);
} else { } else {
arr.push(CHAR); arr.push(CHAR);
@ -1286,7 +1289,7 @@ var EditSession = function(text, mode) {
screenColumn += this.getScreenTabSize(screenColumn); screenColumn += this.getScreenTabSize(screenColumn);
} }
// full width characters // full width characters
else if (isFullWidth(c)) { else if (c >= 0x1100 && isFullWidth(c)) {
screenColumn += 2; screenColumn += 2;
} else { } else {
screenColumn += 1; screenColumn += 1;

View file

@ -93,8 +93,8 @@ var vimStates = {
}, },
vimcommand("(k|up)", "golineup"), vimcommand("(k|up)", "golineup"),
vimcommand("(j|down)", "golinedown"), vimcommand("(j|down)", "golinedown"),
vimcommand("(l|right)", "golineright"), vimcommand("(l|right)", "gotoright"),
vimcommand("(h|left)", "golineleft"), vimcommand("(h|left)", "gotoleft"),
{ {
key: "shift-g", key: "shift-g",
exec: "gotoend" exec: "gotoend"

View file

@ -54,7 +54,7 @@ define(function(require, exports, module) {
var keywords = lang.arrayToMap(( var keywords = lang.arrayToMap((
"this|throw|then|try|typeof|super|switch|return|break|by)|continue|" + "this|throw|then|try|typeof|super|switch|return|break|by)|continue|" +
"catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|" + "catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|" +
"finally|function|while|when|new|not|delete|debugger|do|loop|of|off|" + "finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|" +
"or|on|unless|until|and|yes").split("|") "or|on|unless|until|and|yes").split("|")
); );