Async clang code completion.
Vim script C++
Switch branches/tags
Nothing to show
Latest commit adec558 Aug 4, 2017 @osyo-manga Add MarchingDebugTest.
Permalink
Failed to load latest commit information.
after/ftplugin Fix -Xclang. Feb 15, 2014
autoload Add debug test. Aug 4, 2017
doc Add debug command. Aug 1, 2014
plugin Add MarchingDebugTest. Aug 4, 2017
test/autoload Add config. Jun 25, 2016
README.md Add g:marching#default_config. Aug 2, 2017

README.md

#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