1
0
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:
Kris Maglione
2014-07-30 00:06:46 -07:00
parent 42859c7633
commit b71b724ccb
2 changed files with 12 additions and 11 deletions

View File

@@ -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)))

View File

@@ -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"],