CVS HEADでjavascript補完と実際の実行が一致していない事へのパッチ
例えば、:echo plugi
で補完させると、あたかも使えますよーといわんばかりにpluginsがリストに載るのだが、実行すると「そんなオブジェクトねぇよボケッ」とエラーが返る。
これは、実際の実行時のスコープがliberator.modules
なのに、補完時のスコープはliberator
またはwindow
になっていて一致していないからだ。
javascript_completion.path
Index: content/completion.js =================================================================== RCS file: /cvs/vimperator/src/content/completion.js,v retrieving revision 1.159 diff -u -r1.159 completion.js --- content/completion.js 23 Oct 2008 14:06:39 -0000 1.159 +++ content/completion.js 23 Oct 2008 15:19:04 -0000 @@ -410,7 +410,7 @@ let end = (frame == -1 ? lastIdx : get(frame + 1)[OFFSET]); cacheKey = null; - let obj = [liberator, window]; // Default objects; + let obj = [liberator.modules, window]; // Default objects; /* Is this an object dereference? */ if (dot < statement) // No. dot = statement - 1;
んで、最近パッチを送っても無視されちゃう(何かオイラ悪いことしたのか?)ので、ここにコッソリ載せておくよ
追記(2008-10-28)
#8 (vimperator 2.0pre: mismatch namespace between javascript completion and actual execution) – vimperator labs – Tracでチケットきって主張したお陰か、git – vimperator labs – Tracで修正されたよ。