Hatena::ブログ(Diary)

日記

2012-10-01

Sublime Text 2 の自動補完プラグインの作成方法

Sublime Text 2 はデフォルトで自動補完する機能を持っていますが、その補完候補に独自の候補を追加する方法を簡単に書きます。

実装する方法は本当に簡単で、 EventListener を継承して on_query_completions で補完候補をリストで返すだけです。以下にサンプルコードを示します。

import sublime, sublime_plugin

class CompleteTest(sublime_plugin.EventListener):
    def on_query_completions(self, view, prefix, locations):
        return [
            ('neocomplecache', 'neocomplecache'),
            ('unite.vim', 'unite.vim'),
            ('vimshell', 'vimshell')
            ]

このコードを (データディレクトリ)/Packages/User/complete_example.py みたいなファイル名で保存し、適当なファイルで neo と入力すると、 "neocomplcache" が補完候補として表示されます。

on_query_completions で返すリストは、リストの中にタプルが入っている入れ子構造で、タプルは「ポップアップに表示する文字列」、「補完結果として挿入される文字列」の2つの要素からなります。次のような構造です。

[(候補1の表示文字列, 候補1の挿入文字列), (候補2の表示文字列, 候補2の挿入文字列), ...]

単純な単語補完では、表示文字列は挿入文字列と同じ文字列で問題ないでしょう。つまり、タプルの要素は2つとも同じ文字列となります。

ポップアップ表示の補完候補に説明を追加したい場合は、表示文字列に説明を追加すればよいです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/chikatoike/20121001/1349046852
リンク元