1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 23:58:00 +01:00

:macros <filter> added + 2 additional autocommands events: BrowserRestart and BrowserQuit

This commit is contained in:
Marco Candrian
2008-01-20 19:23:31 +00:00
parent 4be468e568
commit d21dccfff7
4 changed files with 35 additions and 0 deletions

View File

@@ -1439,6 +1439,24 @@ vimperator.Commands = function () //{{{
completer: function (filter) { return vimperator.completion.autocommands(filter); }
}
));
commandManager.add(new vimperator.Command(["mac[ros]"],
function (arg)
{
var str = "<table>";
var macroRef = vimperator.events.getMacros(arg);
for (var item in macroRef)
str += "<tr><td>\"" + item + " &nbsp; </td><td>" +
vimperator.util.escapeHTML(macroRef[item]) + "</td></tr>";
str += "</table>";
vimperator.echo(str, vimperator.commandline.FORCE_MULTILINE);
},
{
shortHelp: "List macros matching the argument; or all macros if no argument is given."
}
));
// 0 args -> list all maps
// 1 arg -> list the maps starting with args
// 2 args -> map arg1 to arg*

View File

@@ -133,6 +133,8 @@ vimperator.Completion = function () //{{{
{
substrings = [];
var nodes = [
["BrowserExit", "when firefox exits"],
["BrowserRestart", "when firefox restarts"],
["PageLoad", "when a page gets (re)loaded/opened"]
];

View File

@@ -539,6 +539,17 @@ vimperator.Events = function () //{{{
vimperator.echoerr("Register " + lastMacro + " not set");
},
getMacros: function (filter)
{
var mfiltered = {};
for (var item in macros)
{
if (filter == null || item.indexOf(filter) != -1)
mfiltered[item] = macros[item];
}
return mfiltered; //XXX: returns a real copy, since this is only a 'var ..'?
},
// This method pushes keys into the event queue from vimperator
// it is similar to vim's feedkeys() method, but cannot cope with
// 2 partially feeded strings, you have to feed one parsable string

View File

@@ -374,6 +374,8 @@ const vimperator = (function () //{{{
// quit vimperator, no matter how many tabs/windows are open
quit: function (saveSession)
{
vimperator.autocommands.trigger("BrowserExit", "");
if (saveSession)
vimperator.options.setFirefoxPref("browser.startup.page", 3); // start with saved session
else
@@ -384,6 +386,8 @@ const vimperator = (function () //{{{
restart: function ()
{
vimperator.autocommands.trigger("BrowserRestart", "");
const nsIAppStartup = Components.interfaces.nsIAppStartup;
// notify all windows that an application quit has been requested.