var PLUGIN_INFO =
AppLauncher
アプリケーションランチャー
Launch defined application
アプリケーションを起動します
0.12
pekepeke
2.0pre
2.0pre
https://github.com/vimpr/vimperator-plugins/raw/master/applauncher.js
||
js <
liberator.plugins.AppLauncher = (function(){
const UConv = Cc['@mozilla.org/intl/scriptableunicodeconverter'].getService(Ci.nsIScriptableUnicodeConverter);
const AppName = 'AppLauncher';
var global = liberator.globalVariables;
var settings = global.applauncher_list || [];
var defaultCharset = global.applauncher_charset;
if (!settings || settings.length <= 0) return;
var completer = settings.map( function([name, app, args]) [name, args ? app + ' ' + args.toString(): app] );
var Class = function() function(){ this.initialize.apply(this, arguments); };
var AppLauncher = new Class();
AppLauncher.prototype = {
initialize: function(){
this.buildMenu();
this.registerCommand();
},
registerCommand: function(){
var self = this;
commands.addUserCommand(['applaunch', 'runapp'], 'Run Defined Application',
function(arg){
arg = (typeof arg.string == 'undefined' ? arg : arg.string);
self.launch(arg);
}, {
completer: function(context, arg){
var filter = context.filter;
context.title = [ 'Name', 'Description'];
if (!filter){
context.completions = completer;
return;
}
filter = filter.toLowerCase();
context.completions = completer.filter( function(el) el[0].toLowerCase().indexOf(filter) == 0);
}
});
},
buildMenu: function(){
var self = this;
var menu = document.getElementById('contentAreaContextMenu')
.appendChild(document.createElement('menu'));
menu.setAttribute('id', AppName + 'Context');
menu.setAttribute('label', AppName);
menu.setAttribute('accesskey', 'L');
var menupopup = menu.appendChild(document.createElement('menupopup'));
menupopup.setAttribute('id', AppName + 'ContextMenu');
for (let i=0, l=settings.length; i '\ '
settings.some( function([name, app, args]){
args = args instanceof Array ? args : args ? [args] : [];
args = args.map( function( val ) val.replace(/%([A-Z]+)%/g, function( _, name ) self.variables[name]()) );
if (defaultCharset){
UConv.charset = defaultCharset;
args = args.map( function( val ) UConv.ConvertFromUnicode(val) );
}
if (appName == name){
io.run(app, args);
return true;
}
return false;
});
}
}
return new AppLauncher();
})();