mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-01-09 01:14:11 +01:00
Merge branch 'master' of kmaglione@git.vimperator.org:/git/vimperator/liberator
This commit is contained in:
3
Makefile
3
Makefile
@@ -9,5 +9,6 @@ $(TARGETS:%=\%.%):
|
||||
echo MAKE $@
|
||||
$(MAKE) -C $* $(@:$*.%=%)
|
||||
|
||||
$(TARGETS): %: $(DIRS:%=%.%)
|
||||
$(TARGETS):
|
||||
$(MAKE) $(DIRS:%=%.$@)
|
||||
|
||||
|
||||
@@ -573,7 +573,7 @@ function Commands() //{{{
|
||||
|
||||
count++; // to compensate the "=" character
|
||||
}
|
||||
else if (!/\s/.test(sep)) // this isn't really an option as it has trailing characters, parse it as an argument
|
||||
else if (!/\s/.test(sep) && sep != undefined) // this isn't really an option as it has trailing characters, parse it as an argument
|
||||
{
|
||||
invalid = true;
|
||||
}
|
||||
|
||||
@@ -399,87 +399,51 @@ function Hints() //{{{
|
||||
let wordSplitRegex = RegExp(options["wordseparators"]);
|
||||
|
||||
// What the **** does this do? --Kris
|
||||
//
|
||||
// This function matches hintStrings like 'hekho' to links like 'Hey Kris, how are you?' -> [HE]y [K]ris [HO]w are you --Daniel
|
||||
function charsAtBeginningOfWords(chars, words, allowWordOverleaping)
|
||||
{
|
||||
let charIdx = 0;
|
||||
let numMatchedWords = 0;
|
||||
for (let [,word] in Iterator(words))
|
||||
function charMatches(charIdx, chars, wordIdx, words, inWordIdx, allowWordOverleaping)
|
||||
{
|
||||
if (word.length == 0)
|
||||
continue;
|
||||
|
||||
let wcIdx = 0;
|
||||
// Check if the current word matches same characters as the previous word.
|
||||
// Each already matched word has matched at least one character.
|
||||
if (charIdx > numMatchedWords)
|
||||
let matches = (chars[charIdx] == words[wordIdx][inWordIdx]);
|
||||
if ((matches == false && allowWordOverleaping) || words[wordIdx].length == 0)
|
||||
{
|
||||
let matchingStarted = false;
|
||||
for (let i in util.range(numMatchedWords, charIdx))
|
||||
{
|
||||
if (chars[i] == word[wcIdx])
|
||||
{
|
||||
matchingStarted = true;
|
||||
wcIdx++;
|
||||
}
|
||||
else if (matchingStarted)
|
||||
{
|
||||
wcIdx = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
let nextWordIdx = wordIdx + 1;
|
||||
if (nextWordIdx == words.length)
|
||||
return false;
|
||||
|
||||
return charMatches(charIdx, chars, nextWordIdx, words, 0, allowWordOverleaping);
|
||||
}
|
||||
|
||||
// the current word matches same characters as the previous word
|
||||
let prevCharIdx;
|
||||
if (wcIdx > 0)
|
||||
if (matches)
|
||||
{
|
||||
prevCharIdx = charIdx;
|
||||
// now check if it matches additional characters
|
||||
for (; wcIdx < word.length && charIdx < chars.length; wcIdx++, charIdx++)
|
||||
{
|
||||
if (word[wcIdx] != chars[charIdx])
|
||||
break;
|
||||
}
|
||||
let nextCharIdx = charIdx + 1;
|
||||
if (nextCharIdx == chars.length)
|
||||
return true;
|
||||
|
||||
// the word doesn't match additional characters, now check if the
|
||||
// already matched characters are equal to the next characters for matching,
|
||||
// if yes, then consume them
|
||||
if (prevCharIdx == charIdx)
|
||||
{
|
||||
for (let i = 0; i < wcIdx && charIdx < chars.length; i++, charIdx++)
|
||||
{
|
||||
if (word[i] != chars[charIdx])
|
||||
break;
|
||||
}
|
||||
}
|
||||
let nextWordIdx = wordIdx + 1;
|
||||
let beyondLastWord = (nextWordIdx == words.length);
|
||||
let charMatched = false;
|
||||
if (beyondLastWord == false)
|
||||
charMatched = charMatches(nextCharIdx, chars, nextWordIdx, words, 0, allowWordOverleaping)
|
||||
|
||||
numMatchedWords++;
|
||||
}
|
||||
// the current word doesn't match same characters as the previous word, just
|
||||
// try to match the next characters
|
||||
else
|
||||
{
|
||||
prevCharIdx = charIdx;
|
||||
for (let i = 0; i < word.length && charIdx < chars.length; i++, charIdx++)
|
||||
{
|
||||
if (word[i] != chars[charIdx])
|
||||
break;
|
||||
}
|
||||
if (charMatched)
|
||||
return true;
|
||||
|
||||
if (prevCharIdx == charIdx)
|
||||
if (charMatched == false || beyondLastWord == true)
|
||||
{
|
||||
if (!allowWordOverleaping)
|
||||
let nextInWordIdx = inWordIdx + 1;
|
||||
if (nextInWordIdx == words[wordIdx].length)
|
||||
return false;
|
||||
|
||||
return charMatches(nextCharIdx, chars, wordIdx, words, nextInWordIdx, allowWordOverleaping);
|
||||
}
|
||||
else
|
||||
numMatchedWords++;
|
||||
}
|
||||
|
||||
if (charIdx == chars.length)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
return (charIdx == chars.length);
|
||||
return charMatches(0, chars, 0, words, 0, allowWordOverleaping);
|
||||
}
|
||||
|
||||
function stringsAtBeginningOfWords(strings, words, allowWordOverleaping)
|
||||
|
||||
@@ -1274,7 +1274,8 @@ function CommandLine() //{{{
|
||||
}
|
||||
else if (event.type == "input")
|
||||
{
|
||||
//this.resetCompletions(); -> already handled by "keypress" below (hopefully), so don't do it twice
|
||||
//liberator.dump("input: " + command);
|
||||
this.resetCompletions();
|
||||
liberator.triggerCallback("change", currentExtendedMode, command);
|
||||
}
|
||||
else if (event.type == "keypress")
|
||||
@@ -1322,7 +1323,7 @@ function CommandLine() //{{{
|
||||
else if (key == "<BS>")
|
||||
{
|
||||
// reset the tab completion
|
||||
this.resetCompletions();
|
||||
//this.resetCompletions();
|
||||
|
||||
// and blur the command line if there is no text left
|
||||
if (command.length == 0)
|
||||
@@ -1333,7 +1334,7 @@ function CommandLine() //{{{
|
||||
}
|
||||
else // any other key
|
||||
{
|
||||
this.resetCompletions();
|
||||
//this.resetCompletions();
|
||||
}
|
||||
return true; // allow this event to be handled by Firefox
|
||||
}
|
||||
@@ -1758,7 +1759,7 @@ function ItemList(id) //{{{
|
||||
</div>
|
||||
</div>, divNodes);
|
||||
doc.body.replaceChild(div, doc.body.firstChild);
|
||||
div.scrollIntoView(true);
|
||||
//div.scrollIntoView(true);
|
||||
|
||||
items.contextList.forEach(function init_eachContext(context) {
|
||||
delete context.cache.nodes;
|
||||
@@ -1941,7 +1942,7 @@ function ItemList(id) //{{{
|
||||
if (index >= 0)
|
||||
{
|
||||
getCompletion(index).setAttribute("selected", "true");
|
||||
getCompletion(index).scrollIntoView(false);
|
||||
//getCompletion(index).scrollIntoView(false);
|
||||
}
|
||||
|
||||
//if (index == 0)
|
||||
|
||||
@@ -995,12 +995,13 @@ function Mail() //{{{
|
||||
// TODO: find out why, and solve the problem
|
||||
try
|
||||
{
|
||||
var msgs = folder.getMessages(msgWindow);
|
||||
var msgs = folder.messages;
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
liberator.dump("ERROR: " + folder.prettyName + " failed to getMessages\n");
|
||||
continue;
|
||||
var msgs = folder.getMessages(msgWindow); // for older thunderbirds
|
||||
liberator.dump("WARNING: " + folder.prettyName + " failed to getMessages, trying old API");
|
||||
//continue;
|
||||
}
|
||||
|
||||
while (msgs.hasMoreElements())
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<em:id>muttator@mozdev.org</em:id>
|
||||
<em:name>Muttator</em:name>
|
||||
<em:version>###VERSION###</em:version>
|
||||
<em:description>Make Thunderbird behave like Vim</em:description>
|
||||
<em:creator>Martin Stubenschrott</em:creator>
|
||||
<em:homepageURL>http://vimperator.org/</em:homepageURL>
|
||||
<em:iconURL>chrome://muttator/skin/icon.png</em:iconURL>
|
||||
<em:file>
|
||||
<Description about="urn:mozilla:extension:file:vimperator.jar">
|
||||
<em:package>content/muttator/</em:package>
|
||||
</Description>
|
||||
</em:file>
|
||||
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
|
||||
<em:minVersion>3.0a1pre</em:minVersion>
|
||||
<em:maxVersion>3.0b2pre</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
</Description>
|
||||
</RDF>
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<em:id>muttator@mozdev.org</em:id>
|
||||
<em:name>Muttator</em:name>
|
||||
<em:version>###VERSION###</em:version>
|
||||
<em:description>Make Thunderbird behave like Vim</em:description>
|
||||
<em:creator>Martin Stubenschrott</em:creator>
|
||||
<em:homepageURL>http://vimperator.org/</em:homepageURL>
|
||||
<em:iconURL>chrome://muttator/skin/icon.png</em:iconURL>
|
||||
<em:file>
|
||||
<Description about="urn:mozilla:extension:file:vimperator.jar">
|
||||
<em:package>content/muttator/</em:package>
|
||||
</Description>
|
||||
</em:file>
|
||||
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
|
||||
<em:minVersion>3.0b2pre</em:minVersion>
|
||||
<em:maxVersion>3.0b2</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
</Description>
|
||||
</RDF>
|
||||
|
||||
@@ -2,6 +2,11 @@ Contiuous donations:
|
||||
* Daniel Bainton (web hosting)
|
||||
|
||||
2009:
|
||||
* David C Foor
|
||||
* Oliver Schaefer
|
||||
* Paul Moss
|
||||
* Yongji Zhang
|
||||
* Brian Peiris
|
||||
* Peleg Michaeli ("Every hand revealed" from my amazon.de wishlist)
|
||||
* InspireFocus
|
||||
* Michael Fremont
|
||||
|
||||
@@ -18,6 +18,10 @@ BUGS:
|
||||
- :sidebar improvements (:sidebar! Downloads while downloads is open should refocus the sidebar)
|
||||
- ;s saves the page rather than the image
|
||||
- http://cgiirc.blitzed.org?chan=%23debug is unusable after login in
|
||||
- "g<" fails without a trailing escape because both "g<" and "g<C-g>"
|
||||
are mapped. Vimp should recognize "<C-g>" as an atom that should not
|
||||
be matched literally. In fact, typing "g<C-g>" out literally is
|
||||
equivalent to typing "g" and then <C-g>.
|
||||
|
||||
(recent CVS regressions):
|
||||
- :set noflashblock seems broken (= :set fb? afterwards says "fb"), let's see if that's a
|
||||
@@ -29,10 +33,15 @@ BUGS:
|
||||
=> it often overwrites the open command line while editing etc.
|
||||
- <tags> and <keyword> autocmd 'keywords' are not available when adding a
|
||||
bookmark - they're being set after the observer triggers the autocmd event.
|
||||
- MOW is broken for multiple commands when open E.g. :ls | ls
|
||||
- MOW rendering is broken for multiple commands when open E.g. :ls | ls
|
||||
- completion height is broken, try :a<tab>....<tab>, when it wraps it's totally off.
|
||||
and even if it is not totally off, i had it jump by one pixel when wrapping around.
|
||||
If that's unfixable, i propose reverting the new completion height stuff.
|
||||
- Windows paths have escaped backslashes in messages - presumably due to
|
||||
String#quote change.
|
||||
- :messages is _very_ slow for message history of several thousand lines ->
|
||||
Unresponsive Script: util.js:79 (sometimes xmlToDom() and elsewhere)
|
||||
- :hardcopy! seems to be broken for me
|
||||
|
||||
FEATURES:
|
||||
9 finish :help TODOs
|
||||
@@ -40,6 +49,8 @@ FEATURES:
|
||||
9 adaptive timeout for auto-completions, :set completions can be updated more often than
|
||||
:open foo
|
||||
9 use the storage module for autocommands
|
||||
9 the NEWS file should be more easily available for users, via :help news or something
|
||||
at the moment you need to unzip the xpi or check the sources to view it, which isn't user friendly
|
||||
8 support 'activate' in buffer.followLink?
|
||||
Leave this to the bookmarks.tabs.loadInBackground. Hint activation
|
||||
should be nearly equivalent to the corresponding mouse motion, and that
|
||||
@@ -69,7 +80,7 @@ FEATURES:
|
||||
google to another page and click 10 links there, [d would take me back to the google page
|
||||
opera's fast forward does something like this
|
||||
7 make an option to disable session saving by default when you close Firefox
|
||||
7 The output of the pageinfo-command sould contain the security-information of ssl-encrypted sites
|
||||
7 The output of the pageinfo-command should contain the security-information of ssl-encrypted sites
|
||||
7 Add :every command
|
||||
6 support private mode (and :set [no]private): http://ehsanakhgari.org/blog/2008-11-08/prepare-your-add-private-browsing
|
||||
6 add [count] support to :b* and :tab* commands where missing
|
||||
|
||||
Reference in New Issue
Block a user