autocomplete文についてNo.06564
ohtorii さん 11/03/19 00:17
 
マクロのautocomplete文について質問があります。
(autocomplete文の動作を勘違いしていたら申し訳ないです)

autocomplete文で辞書ファイル中の単語を全てリスト表示して、
そのリストから候補を絞り込む動作を行なおうとしています。

--- temp.lst(辞書ファイル) ここから----
append
assign
at
back
basic_string
begin
c_str
capacity
cbegin
  :
  <<長いので省略>>
  :
--- temp.lst ここまで----


下記マクロ(一部抜粋)を実行すると、
autocomplete -1, 0x00000002|0x00000004, 0x00100000, "temp.lst";
message(str(result));

候補は表示されず、常にresult==0となります。
候補が表示されないのは使い方を間違えているからでしょうか?
フラグを変えて試行錯誤をしてみたもののリストが表示されな
くて・・・


何をするマクロかというと、
LLVMのclangを使用してC++のメソッド補完を行なうマクロです。
clangについてはここが詳しいです、(VIMですが・・・)
http://d.hatena.ne.jp/osyo-manga/20110210/1297328933

下記、C++のソースコードから
    >#include<string>
    >int main(){
    >    std::string s;
    >    s.|            <--- この | の位置でマクロを実行すると
    >}

変数の型に応じて適切なメソッド一覧を動的に生成して、候補一覧の
リストから絞り込み検索を行なうマクロです。

menuarrayを使って動くことは動いていますが、表示される候補が多く
使い勝手がいまいちなので、候補の絞り込みをしたいと思っていると
ころです。

[ ]
RE:06564 autocomplete文についてNo.06565
h-tom さん 11/03/19 08:09
 

h-tom です。

>マクロのautocomplete文について質問があります。
>(autocomplete文の動作を勘違いしていたら申し訳ないです)
<省 略>
>下記マクロ(一部抜粋)を実行すると、
>autocomplete -1, 0x00000002|0x00000004, 0x00100000, "temp.lst";
>message(str(result));
>
>候補は表示されず、常にresult==0となります。
>候補が表示されないのは使い方を間違えているからでしょうか?
>フラグを変えて試行錯誤をしてみたもののリストが表示されな
>くて・・・

1)辞書ファイルが正しく読み込まれているか確認しましょう。
 "a"を入力し、マクロを動作させ、候補が表示されるか確認して下さい。
 (正常なら、append、assign、at が表示されるハズです。)
 表示されなければ、辞書ファイルをフルパスで指定して下さい。

2)検索方法に「0x00008000 全ての単語 」を追加してみては?
  秀丸エディタの単語補間は、デフォルトでは、リストから絞り込みを
  行った結果を表示すると思ったので、対象がなければ表示も行わない
  と思いました。

[ ]
RE:06565 autocomplete文についてNo.06566
ohtorii さん 11/03/19 11:22
 
おはようございます。

ご指摘の「0x00008000 全ての単語」を追加したところリスト表示できました。

助かりました、ありがとうございました。

[ ]