Skip to content

osyo-manga/vim-marching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

marching.vim

Clang を使用して非同期で C++ のコード補完を行うためのプラグインです。

Document in English is here.

Requirement

Screencapture

test

marching1

marching2

Setting

" clang コマンドの設定
let g:marching_clang_command = "C:/clang.exe"

" オプションを追加する
" filetype=cpp に対して設定する場合
let g:marching#clang_command#options = {
\	"cpp" : "-std=gnu++1y"
\}

" インクルードディレクトリのパスを設定
let g:marching_include_paths = [
\	"C:/MinGW/lib/gcc/mingw32/4.6.2/include/c++"
\	"C:/cpp/boost"
\]

" neocomplete.vim と併用して使用する場合
let g:marching_enable_neocomplete = 1

if !exists('g:neocomplete#force_omni_input_patterns')
  let g:neocomplete#force_omni_input_patterns = {}
endif

let g:neocomplete#force_omni_input_patterns.cpp =
	\ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*'

" 処理のタイミングを制御する
" 短いほうがより早く補完ウィンドウが表示される
" ただし、marching.vim 以外の処理にも影響するので注意する
set updatetime=200

" オムニ補完時に補完ワードを挿入したくない場合
imap <buffer> <C-x><C-o> <Plug>(marching_start_omni_complete)

" キャッシュを削除してからオムに補完を行う
imap <buffer> <C-x><C-x><C-o> <Plug>(marching_force_start_omni_complete)


" _数値 から始まる候補を無視する
let g:marching#default_config = {
\	"ignore_pat" : '^_\D'
\}

" 非同期ではなくて、同期処理でコード補完を行う場合
" この設定の場合は vimproc.vim に依存しない
" let g:marching_backend = "sync_clang_command"

Future

  • C++ 以外の対応
  • Objective-C
  • スニペットの対応
  • neocomplete.vim との連携

License

NYSL

NYSL English

About

Async clang code completion.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published