mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 11:18:00 +01:00
Fix buffer.getCurrentWord when the selection is collapsed and the word has punctuation.
This commit is contained in:
@@ -985,6 +985,7 @@ function Buffer() //{{{
|
|||||||
selController.wordMove(false, false);
|
selController.wordMove(false, false);
|
||||||
selController.wordMove(true, true);
|
selController.wordMove(true, true);
|
||||||
selController.setCaretEnabled(caretmode);
|
selController.setCaretEnabled(caretmode);
|
||||||
|
return String.match(selection, /\w*/)[0];
|
||||||
}
|
}
|
||||||
let range = selection.getRangeAt(0);
|
let range = selection.getRangeAt(0);
|
||||||
if (util.computedStyle(range.startContainer).whiteSpace == "pre"
|
if (util.computedStyle(range.startContainer).whiteSpace == "pre"
|
||||||
|
|||||||
@@ -648,8 +648,9 @@ const liberator = (function () //{{{
|
|||||||
|
|
||||||
triggerObserver: function (type)
|
triggerObserver: function (type)
|
||||||
{
|
{
|
||||||
|
let args = Array.slice(arguments, 1);
|
||||||
for (let [,fn] in Iterator(observers[type] || []))
|
for (let [,fn] in Iterator(observers[type] || []))
|
||||||
fn.apply(null, Array.slice(arguments, 1));
|
fn.apply(null, args);
|
||||||
},
|
},
|
||||||
|
|
||||||
beep: function ()
|
beep: function ()
|
||||||
|
|||||||
@@ -113,8 +113,7 @@ const modes = (function () //{{{
|
|||||||
if (newMode == modes.NORMAL)
|
if (newMode == modes.NORMAL)
|
||||||
{
|
{
|
||||||
// disable caret mode when we want to switch to normal mode
|
// disable caret mode when we want to switch to normal mode
|
||||||
let value = options.getPref("accessibility.browsewithcaret", false);
|
if (options.getPref("accessibility.browsewithcaret"))
|
||||||
if (value)
|
|
||||||
options.setPref("accessibility.browsewithcaret", false);
|
options.setPref("accessibility.browsewithcaret", false);
|
||||||
|
|
||||||
statusline.updateUrl();
|
statusline.updateUrl();
|
||||||
@@ -171,7 +170,7 @@ const modes = (function () //{{{
|
|||||||
|
|
||||||
// helper function to set both modes in one go
|
// helper function to set both modes in one go
|
||||||
// if silent == true, you also need to take care of the mode handling changes yourself
|
// if silent == true, you also need to take care of the mode handling changes yourself
|
||||||
set: function (mainMode, extendedMode, silent)
|
set: function (mainMode, extendedMode, silent, stack)
|
||||||
{
|
{
|
||||||
silent = (silent || main == mainMode && extended == extendedMode);
|
silent = (silent || main == mainMode && extended == extendedMode);
|
||||||
// if a main mode is set, the extended is always cleared
|
// if a main mode is set, the extended is always cleared
|
||||||
@@ -187,6 +186,7 @@ const modes = (function () //{{{
|
|||||||
if (main != oldMain)
|
if (main != oldMain)
|
||||||
handleModeChange(oldMain, mainMode, oldExtended);
|
handleModeChange(oldMain, mainMode, oldExtended);
|
||||||
}
|
}
|
||||||
|
liberator.triggerObserver("modeChange", [oldMain, oldExtended], [main, extended], stack);
|
||||||
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
this.show();
|
this.show();
|
||||||
@@ -195,18 +195,19 @@ const modes = (function () //{{{
|
|||||||
push: function (mainMode, extendedMode, silent)
|
push: function (mainMode, extendedMode, silent)
|
||||||
{
|
{
|
||||||
modeStack.push([main, extended]);
|
modeStack.push([main, extended]);
|
||||||
this.set(mainMode, extendedMode, silent);
|
this.set(mainMode, extendedMode, silent, { push: modeStack[modeStack.length - 1] });
|
||||||
},
|
},
|
||||||
|
|
||||||
pop: function (silent)
|
pop: function (silent)
|
||||||
{
|
{
|
||||||
let a = modeStack.pop();
|
let a = modeStack.pop();
|
||||||
if (a)
|
if (a)
|
||||||
this.set(a[0], a[1], silent);
|
this.set(a[0], a[1], silent, { pop: a });
|
||||||
else
|
else
|
||||||
this.reset(silent);
|
this.reset(silent);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// TODO: Deprecate this in favor of addMode? --Kris
|
||||||
setCustomMode: function (modestr, oneventfunc, stopfunc)
|
setCustomMode: function (modestr, oneventfunc, stopfunc)
|
||||||
{
|
{
|
||||||
// TODO this.plugin[id]... ('id' maybe submode or what..)
|
// TODO this.plugin[id]... ('id' maybe submode or what..)
|
||||||
@@ -247,19 +248,10 @@ const modes = (function () //{{{
|
|||||||
set isReplaying(value) { isReplaying = value; this.show(); },
|
set isReplaying(value) { isReplaying = value; this.show(); },
|
||||||
|
|
||||||
get main() main,
|
get main() main,
|
||||||
set main(value)
|
set main(value) { this.set(value); },
|
||||||
{
|
|
||||||
if (value != main)
|
|
||||||
handleModeChange(main, value);
|
|
||||||
|
|
||||||
main = value;
|
|
||||||
// setting the main mode always resets any extended mode
|
|
||||||
extended = modes.NONE;
|
|
||||||
this.show();
|
|
||||||
},
|
|
||||||
|
|
||||||
get extended() extended,
|
get extended() extended,
|
||||||
set extended(value) { extended = value; this.show(); }
|
set extended(value) { this.set(null, value) }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -286,7 +278,6 @@ const modes = (function () //{{{
|
|||||||
self.addMode("SEARCH_BACKWARD", true);
|
self.addMode("SEARCH_BACKWARD", true);
|
||||||
self.addMode("MENU", true); // a popupmenu is active
|
self.addMode("MENU", true); // a popupmenu is active
|
||||||
self.addMode("LINE", true); // linewise visual mode
|
self.addMode("LINE", true); // linewise visual mode
|
||||||
self.addMode("RECORDING", true);
|
|
||||||
self.addMode("PROMPT", true);
|
self.addMode("PROMPT", true);
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
|||||||
Reference in New Issue
Block a user