mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 18:47:58 +01:00
Make [[ and ]] work better.
This commit is contained in:
@@ -302,7 +302,7 @@ var HintSession = Class("HintSession", CommandMode, {
|
|||||||
rect.left > offsets.right || rect.right < offsets.left)
|
rect.left > offsets.right || rect.right < offsets.left)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!rect.width || !rect.height)
|
if (!rect.width && !rect.height)
|
||||||
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
||||||
&& DOM(elem).style.float != "none"
|
&& DOM(elem).style.float != "none"
|
||||||
&& isVisible(elem)))
|
&& isVisible(elem)))
|
||||||
@@ -1125,7 +1125,7 @@ var Hints = Module("hints", {
|
|||||||
}, {
|
}, {
|
||||||
isVisible: function isVisible(elem, offScreen) {
|
isVisible: function isVisible(elem, offScreen) {
|
||||||
let rect = elem.getBoundingClientRect();
|
let rect = elem.getBoundingClientRect();
|
||||||
if (!rect.width || !rect.height)
|
if (!rect.width && !rect.height)
|
||||||
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
||||||
&& DOM(elem).style.float != "none"
|
&& DOM(elem).style.float != "none"
|
||||||
&& isVisible(elem)))
|
&& isVisible(elem)))
|
||||||
|
|||||||
@@ -481,10 +481,13 @@ var Buffer = Module("Buffer", {
|
|||||||
|
|
||||||
let selector = path || options.get("hinttags").stringDefaultValue;
|
let selector = path || options.get("hinttags").stringDefaultValue;
|
||||||
|
|
||||||
|
let relRev = ["next", "prev"];
|
||||||
|
let rev = relRev[1 - relRev.indexOf(rel)];
|
||||||
|
|
||||||
function followFrame(frame) {
|
function followFrame(frame) {
|
||||||
function iter(elems) {
|
function iter(elems) {
|
||||||
for (let i = 0; i < elems.length; i++)
|
for (let i = 0; i < elems.length; i++)
|
||||||
if (elems[i].rel.toLowerCase() === rel || elems[i].rev.toLowerCase() === rel)
|
if (elems[i].rel.toLowerCase() === rel || elems[i].rev.toLowerCase() === rev)
|
||||||
yield elems[i];
|
yield elems[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,18 +495,16 @@ var Buffer = Module("Buffer", {
|
|||||||
for (let elem in iter(elems))
|
for (let elem in iter(elems))
|
||||||
yield elem;
|
yield elem;
|
||||||
|
|
||||||
elems = frame.document.getElementsByTagName("a");
|
|
||||||
for (let elem in iter(elems))
|
|
||||||
yield elem;
|
|
||||||
|
|
||||||
function a(regexp, elem) regexp.test(elem.textContent) === regexp.result ||
|
function a(regexp, elem) regexp.test(elem.textContent) === regexp.result ||
|
||||||
Array.some(elem.childNodes,
|
Array.some(elem.childNodes,
|
||||||
child => (regexp.test(child.alt) === regexp.result));
|
child => (regexp.test(child.alt) === regexp.result));
|
||||||
|
|
||||||
function b(regexp, elem) regexp.test(elem.title) === regexp.result;
|
function b(regexp, elem) regexp.test(elem.title) === regexp.result;
|
||||||
|
|
||||||
let res = Array.filter(frame.document.querySelectorAll(selector), Hints.isVisible);
|
let res = Array.filter(frame.document.querySelectorAll(selector),
|
||||||
for (let test in values([a, b]))
|
Hints.isVisible);
|
||||||
|
|
||||||
|
for (let test of [a, b])
|
||||||
for (let regexp in values(regexps))
|
for (let regexp in values(regexps))
|
||||||
for (let i in util.range(res.length, 0, -1))
|
for (let i in util.range(res.length, 0, -1))
|
||||||
if (test(regexp, res[i]))
|
if (test(regexp, res[i]))
|
||||||
@@ -2522,12 +2523,12 @@ var Buffer = Module("Buffer", {
|
|||||||
|
|
||||||
options.add(["nextpattern"],
|
options.add(["nextpattern"],
|
||||||
"Patterns to use when guessing the next page in a document sequence",
|
"Patterns to use when guessing the next page in a document sequence",
|
||||||
"regexplist", UTF8(/'^Next [>»]','^Next »','\bnext\b',^>$,^(>>|»)$,^(>|»),(>|»)$,'\bmore\b'/.source),
|
"regexplist", UTF8(/'^\s*Next Page\s*$','^\s*Next [>»]','\bnext\b',^>$,^(>>|»)$,^(>|»),(>|»)$,'\bmore\b'/.source),
|
||||||
{ regexpFlags: "i" });
|
{ regexpFlags: "i" });
|
||||||
|
|
||||||
options.add(["previouspattern"],
|
options.add(["previouspattern"],
|
||||||
"Patterns to use when guessing the previous page in a document sequence",
|
"Patterns to use when guessing the previous page in a document sequence",
|
||||||
"regexplist", UTF8(/'[<«] Prev$','« Prev$','\bprev(ious)?\b',^<$,^(<<|«)$,^(<|«),(<|«)$/.source),
|
"regexplist", UTF8(/'^\s*Prev(ious)? Page\s*$','[<«] Prev\s*$','\bprev(ious)?\b',^<$,^(<<|«)$,^(<|«),(<|«)$/.source),
|
||||||
{ regexpFlags: "i" });
|
{ regexpFlags: "i" });
|
||||||
|
|
||||||
options.add(["pageinfo", "pa"],
|
options.add(["pageinfo", "pa"],
|
||||||
|
|||||||
Reference in New Issue
Block a user