diff --git a/lib/ace/keyboard/keybinding/default_mac.js b/lib/ace/keyboard/keybinding/default_mac.js index 46175a76..42fee22b 100644 --- a/lib/ace/keyboard/keybinding/default_mac.js +++ b/lib/ace/keyboard/keybinding/default_mac.js @@ -75,8 +75,10 @@ exports.bindings = { "gotoright": "Right", "selectpagedown": "Shift-PageDown", "pagedown": "PageDown", + "gotopagedown": "Option-PageDown", "selectpageup": "Shift-PageUp", "pageup": "PageUp", + "gotopageup": "Option-PageUp", "selectlinestart": "Shift-Home", "selectlineend": "Shift-End", "del": "Delete", diff --git a/lib/ace/keyboard/keybinding/default_win.js b/lib/ace/keyboard/keybinding/default_win.js index 83f0eec2..7f1e706e 100644 --- a/lib/ace/keyboard/keybinding/default_win.js +++ b/lib/ace/keyboard/keybinding/default_win.js @@ -74,9 +74,9 @@ exports.bindings = { "selectright": "Shift-Right", "gotoright": "Right", "selectpagedown": "Shift-PageDown", - "pagedown": "PageDown", + "gotopagedown": "PageDown", "selectpageup": "Shift-PageUp", - "pageup": "PageUp", + "gotopageup": "PageUp", "selectlinestart": "Shift-Home", "selectlineend": "Shift-End", "del": "Delete", diff --git a/lib/ace/tokenizer.js b/lib/ace/tokenizer.js index a5f847ff..fa70e2d5 100644 --- a/lib/ace/tokenizer.js +++ b/lib/ace/tokenizer.js @@ -74,11 +74,8 @@ var Tokenizer = function(rules) { var type = "text"; var value = match[0]; - if (re.lastIndex == lastIndex) { throw new Error("tokenizer error"); } - lastIndex = re.lastIndex; - for ( var i = 0; i < state.length; i++) { - if (match[i + 1]) { + if (match[i + 1] !== undefined) { if (typeof state[i].token == "function") { type = state[i].token(match[0]); } @@ -110,6 +107,10 @@ var Tokenizer = function(rules) { } else { token.value += value; } + if (lastIndex == line.length) { + break; + } + lastIndex = re.lastIndex; }; if (token.type) {