Hatena::ブログ(Diary)

C++でゲームプログラミング

2012-09-10

[][]VimJSX のコード補完を行う

ちょっと最新版で試してみたので覚書。

以前、neocomplcache-jsx とか作ったんですが、それを使わないやり方です。


[必要なもの]

https://github.com/jsx/jsx.vim

https://github.com/Shougo/neocomplcache

[vimrc]

" neocomplcache の設定を追加
" これを行うことによって jsx.vim の jsx#complete が自動で呼び出されます
" 

if !exists("g:neocomplcache_force_omni_patterns")
    let g:neocomplcache_force_omni_patterns = {}
endif

" . を打った時にオムニ補完が呼び出されるようにする
let g:neocomplcache_force_omni_patterns.jsx = '\.'

jsx.vim だけでも <C-x><C-o> でオムニ補完を使用することが出来るのですが、これだけでは自動補完が行われないので neocomplcache を使用します。

これで . を打つごとにオムニ補完が呼び出されて、自動補完が行われるようになります。

オムニ補完を呼び出されるパターンを調整したい場合は g:neocomplcache_force_omni_patterns.jsx

に適当な値を設定して下さい。

2012-06-15

[][]neocomplcacheJSX のコード補完を行う neocomplcache-jsx をつくった

jsx 側でコード補完を行う機能が実装されたので、それを使用して neocomplcache の source を書きました。

先に行っておくと非同期ではないのでレスポンスが悪いです。

また、コード補完機能が実装されている JSXgit は master の branch ではないので注意。


f:id:osyo-manga:20120615071316g:image


こんな感じ。

たまに補完がうまく行かない時がありますが、だいたい動いているかな。

Windows 環境でしかテストしていないので補完の環境だと動作するか分かりません。


あと、なぜかわたしの環境だと vimproc#system で結果が取得出来なかったので system を直接使っています。

ここら辺は原因がよくわからないので保留。

それと非同期で処理していないので補完を行う際に Vimプロセスが止まります。

これが気になる方は手動補完に変更するなりして下さい。


とりあえず、勢いだけで書いたので今後どうするかは未定です。

どんどん fork するなり pull request するなりしていって下さい。

ひとまず、気力の続く限りはサポートしたいところ。

あと import 時のディレクトリ補完とかも欲しいですね(チラチラッ

2012-06-12

[][]JSXneocomplcache-snippets-complete を書いた

ちょっとつついて見たのでついでに書いてみました。


:NeoBundle "git://github.com/osyo-manga/neocomplcache-snippets-complete-jsx.git"

JSX 歴5時間の輩が書いたので、気になった部分があれば fork するなり煮るなり焼くなり好きにして下さい。

Tutorial や Example を眺めつつ書いたので言語仕様的な抜けがあるかも知れません。

型推論回りはまだよく分かっていない。

しかし、普段書いているのが C++ なので型を後置に書くっていうのが慣れないですね。


そろそろ Haskell の snippets を書きたいところ。