mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 23:27:59 +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)
|
||||
return false;
|
||||
|
||||
if (!rect.width || !rect.height)
|
||||
if (!rect.width && !rect.height)
|
||||
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
||||
&& DOM(elem).style.float != "none"
|
||||
&& isVisible(elem)))
|
||||
@@ -1125,7 +1125,7 @@ var Hints = Module("hints", {
|
||||
}, {
|
||||
isVisible: function isVisible(elem, offScreen) {
|
||||
let rect = elem.getBoundingClientRect();
|
||||
if (!rect.width || !rect.height)
|
||||
if (!rect.width && !rect.height)
|
||||
if (!Array.some(elem.childNodes, elem => elem instanceof Element
|
||||
&& DOM(elem).style.float != "none"
|
||||
&& isVisible(elem)))
|
||||
|
||||
@@ -481,10 +481,13 @@ var Buffer = Module("Buffer", {
|
||||
|
||||
let selector = path || options.get("hinttags").stringDefaultValue;
|
||||
|
||||
let relRev = ["next", "prev"];
|
||||
let rev = relRev[1 - relRev.indexOf(rel)];
|
||||
|
||||
function followFrame(frame) {
|
||||
function iter(elems) {
|
||||
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];
|
||||
}
|
||||
|
||||
@@ -492,18 +495,16 @@ var Buffer = Module("Buffer", {
|
||||
for (let elem in iter(elems))
|
||||
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 ||
|
||||
Array.some(elem.childNodes,
|
||||
child => (regexp.test(child.alt) === regexp.result));
|
||||
|
||||
function b(regexp, elem) regexp.test(elem.title) === regexp.result;
|
||||
|
||||
let res = Array.filter(frame.document.querySelectorAll(selector), Hints.isVisible);
|
||||
for (let test in values([a, b]))
|
||||
let res = Array.filter(frame.document.querySelectorAll(selector),
|
||||
Hints.isVisible);
|
||||
|
||||
for (let test of [a, b])
|
||||
for (let regexp in values(regexps))
|
||||
for (let i in util.range(res.length, 0, -1))
|
||||
if (test(regexp, res[i]))
|
||||
@@ -2522,12 +2523,12 @@ var Buffer = Module("Buffer", {
|
||||
|
||||
options.add(["nextpattern"],
|
||||
"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" });
|
||||
|
||||
options.add(["previouspattern"],
|
||||
"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" });
|
||||
|
||||
options.add(["pageinfo", "pa"],
|
||||
|
||||
Reference in New Issue
Block a user