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

vimperator is default namespace for scripts, :echo, :js and :time now, so if (options["visualbell"]) ... works there

This commit is contained in:
Martin Stubenschrott
2007-11-13 22:43:48 +00:00
parent 479928bd64
commit 77b1de73ce
3 changed files with 35 additions and 29 deletions

View File

@@ -813,7 +813,8 @@ vimperator.Commands = function () //{{{
try
{
// TODO: move to vimperator.eval()?
arg = eval(arg);
// with (vimperator) means, vimperator is the default namespace "inside" eval
arg = eval("with(vimperator){" + arg + "}");
}
catch (e)
{
@@ -989,7 +990,7 @@ vimperator.Commands = function () //{{{
{
try
{
eval(args);
eval("with(vimperator){" + args + "}");
}
catch (e)
{
@@ -2018,7 +2019,7 @@ vimperator.Commands = function () //{{{
else
{
while (i--)
eval(args);
eval("with(vimperator){" + args + "}");
}
if (special)
@@ -2064,7 +2065,7 @@ vimperator.Commands = function () //{{{
if (args && args[0] == ":")
vimperator.execute(args);
else
eval(args);
eval("with(vimperator){" + args + "}");
if (special)
return;

View File

@@ -379,7 +379,7 @@ vimperator.Completion = function () // {{{
{
g_substrings = [];
var matches = str.match(/^(.*?)(\s*\.\s*)?(\w*)$/);
var object = "window";
var objects = [];
var filter = matches[3] || "";
var start = matches[1].length - 1;
if (matches[2])
@@ -411,32 +411,37 @@ vimperator.Completion = function () // {{{
break outer;
}
}
object = matches[1].substr(start+1) || "window";
if (matches[1].substr(start+1))
{
objects.push(matches[1].substr(start+1));
}
else
{
objects.push("vimperator");
objects.push("window");
}
var completions = [];
try
{
completions = eval(
"var comp = [];" +
"var type = '';" +
"var value = '';" +
"var obj = eval(" + object + ");" +
"for (var i in obj) {" +
" try { type = typeof(obj[i]); } catch (e) { type = 'unknown type'; };" +
" if (type == 'number' || type == 'string' || type == 'boolean') {" +
" value = obj[i];" +
" comp.push([[i], type + ': ' + value]); }" +
// The problem with that is that you complete vimperator.
// but can't press <Tab> to complete sub items
// so it's better to complete vimperator and the user can do
// .<tab> to get the sub items
//" else if (type == 'function') {" +
//" comp.push([[i+'('], type]); }" +
//" else if (type == 'object') {" +
//" comp.push([[i+'.'], type]); }" +
" else {" +
" comp.push([[i], type]); }" +
"} comp;");
for (var o = 0; o < objects.length; o++)
{
completions = completions.concat(eval(
"var comp = [];" +
"var type = '';" +
"var value = '';" +
"var obj = eval('with(vimperator){" + objects[o] + "}');" +
"for (var i in obj) {" +
" try { type = typeof(obj[i]); } catch (e) { type = 'unknown type'; };" +
" if (type == 'number' || type == 'string' || type == 'boolean') {" +
" value = obj[i];" +
" comp.push([[i], type + ': ' + value]); }" +
" else {" +
" comp.push([[i], type]); }" +
"} comp;"
));
}
}
catch (e)
{

View File

@@ -516,7 +516,7 @@ const vimperator = (function () //{{{
// handle pure javascript files specially
if (/\.js$/.test(filename))
{
eval(str);
eval("with(vimperator){" + str + "}");
}
else
{
@@ -528,7 +528,7 @@ const vimperator = (function () //{{{
{
if (heredoc_end.test(line))
{
eval(heredoc);
eval("with(vimperator){" + heredoc + "}");
heredoc = "";
heredoc_end = null;
}