completer の仕様変更?

1日たったら変わっていた!
というものなので、どうなるかわからないけど…
commands の completer に渡される引数が以下の三つになった模様。

context

なにか知らないけどコンテキストだよ!!
キャレットの位置などもわかるようになったので、今までよりもまともな補完が出来るはず。

argument

現在入力されている引数を parseArg したものが入っている。

bang

"!" 指定の有無。

注意!

今は、バグっているので覚悟完了していない人は最新にするのは控えた方が良いかも。
そもそも、プラグインが対応していないし。
覚悟完了している人は地雷踏みを楽しめばいいと思います。

新 completer への置き換え方法

completer の返り血で補完リストが決定されるのではなくなりました。多分。
completer への第一引数のオブジェクト context の操作で補完リストを構築します。

completer: function (context, arg) {
  // 補完リストのカラムタイトル
  context.tile = ["name", "description"];
  // 補完リストにアイテムを追加
  context.completions = [['item1', '一個目だよ!'],
                         ['item2', '二個目だよ!'],
                         ['item3', '三個目だよ!']];
  // cotext.completions.push([..]) はうまくいかなかった。
  // 返り血は要らない!
}

こうすると generate に突っ込んだ関数が別スレッドで動いてその値を補完リストに追加する?
どちらでも、特に代わりはなかった。
遅い処理なら違うかも。

completer: function (context, arg) {
  // 補完リストのカラムタイトル
  context.tile = ["name", "description"];
  // 補完リストジェネレータを設定しているような気分
  context.generate = function () {
                        return [['item1', '一個目だよ!'],
                                ['item2', '二個目だよ!'],
                                ['item3', '三個目だよ!']];
                     };
  // 返り血は要らない!
}

bang

bang などは、
http://d.hatena.ne.jp/nokturnalmortum/20081127#1227757063
で書いた変更と共に、引数からはなくなりました。
しかし、第二引数の arg のプロパティとしてとれます。

completer: funciton (context, arg) {
  if (arg.bang)
    ...

自前補完編

list = 保管用の何かのリスト
completer: function (args, bang) {
  let result = [];
  list.forEach (function (it) {
    if (it.indexOf(args) != -1)
      result.push([it, "説明"]);
  });
  return [0, result];

といった補完であれば、下のように変更すればOK

completer: funciton (context, arg) {
  context.title = ["name", "description"];
  let result = [];
  list.forEach (function (it) {
    if (it.indexOf(context.filter) != -1)
      result.push([it, "説明"]);
  });
  context.completions = result;

completion オブジェクト利用編

大体、今まで文字列を渡してきたところに context を渡すようになる模様。
今まで通り、文字列を渡す物もある。

return completion.file(filter)

これが、

completion.file(context);

こうなる。

まだできたばっかなので

やっぱりやめ!とかあったら無駄になるかもね!
便利になるだけなので、それは無いと思うけど。

Caps Lockは何に変更すべきか

みんなどうしているんだろうなぁ。

HHK使えば良いと思うよ!!
Caps Lock みたいな変態キーとか一切無いよ!!
すっきりさわやか!!
反省とかはしません!!

ちなみに、 そのものと の両方を使う。

謎のキー盛りだくさんの変態キーボードを使う人が多いのはなんだろうね。不思議だね。