-
Notifications
You must be signed in to change notification settings - Fork 64
Coding Rule
thinca edited this page Jan 3, 2014
·
22 revisions
ここの内容は今のところ叩き台レベルであり、今後変更される可能性がある。(TODO 早めに議論して fix できる部分から fix させていく)
スペース2文字でインデントを行う。 このために以下の modeline を全てのスクリプトファイルに追加する。
" vim: tabstop=2 shiftwidth=2 expandtab
vital.vim はライブラリであるため、エラーの通知は例外を投げることで行う。直接 :echo
などをしてはいけない。
例外を投げる場合は、vital: {module-name}:
と言う prefix を付ける。
以下の機能は、複数の vital がインストールされていた場合に衝突する可能性があるため、基本的に使用してはいけない。
- ユーザー定義コマンドの定義
- キーマッピングの定義
- augroup/autocmd の定義
- グローバル変数の定義/参照
ただし、これらの定義を補助する機能を提供する目的のライブラリなどに関しては例外となる。
折り畳みコメント(" {{{
のようなもの) は基本的に付けない。
コマンド名・オプション名は省略してはいけない。
- 悪い例:
fun ...
,&tw
- 良い例:
function ...
,&textwidth
関数名、変数名はcamelCaseではなくunderscoreにする
- 悪い例:
thisIsAPen()
- 良い例:
this_is_a_pen()
- 関数定義の間に一行の空行を入れる。
" NG
function! s:hoge()
endfunction
function! s:foo()
endfunction
" OK
function! s:hoge()
endfunction
" 空行を入れる
function! s:foo()
endfunction
-
function
の直後、endfunction
の直前に空行を入れない。
" NG
function! s:hoge()
let value = 10
endfunction
" OK
function! s:hoge()
let value = 10
endfunction
つけない。ただし以下の場合のみつける。
-
count
という名前のローカル変数を利用するとき - buffer localなoptionの値を参照するとき (例:
&l:include
)
必然性があるときのみ提供し、そうでないときはベタな関数を提供する (どうせ名前空間があるので)。