スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

Doxygen コメントのテンプレートを作成するスクリプト

メッセージ

DoxygenToolkit?.vim

http://www.vim.org/scripts/script.php?script_id=987

int
  foo(char mychar,
      int myint,
      double* myarray,
      int mask = DEFAULT)
{ //...
} 

となっているとき、1行目か2行目にカーソルを置いて:Doxすると

/**
* @brief
*
* @param mychar
* @param myint
* @param myarray" *
* @return
**/ 

を挿入する.

Ruby 版

Ruby 版:filerubydox.vim ほとんど Ruby だけど、カスタマイズしやすいかと。

Vim7 版

Ruby 版を Vim7 で書き換え+αしました。
使い方は同じです。
バグ等報告していただければ対応します。

function! FunctionDescription()
  let out = []
  call add(out, '/**')
  call add(out, '    @brief ')
  " 1行上が空行になっているところまで移動
  exe "normal! ?^\\s*$\<CR>"
  " { までをヤンク
  exe "normal! j\"zy/{\<CR>"
  let line = substitute(@z, '\n', '', 'g')
  let b = stridx(line, '(')
  let e = stridx(line, ')')
  " () の中身を取得
  let innerParen = strpart(line, b+1, e-b-1)
  let fields = split(innerParen, ',')
  let params = []
  for f in fields
    " ポインタの * を型名にくっつける
    let f = substitute(f, '\*\s*', '* ', 'g')
    let f = substitute(f, '\s*\*', '*', 'g')
    " 配列の [] を消去
    let f = substitute(f, '\[.*\]', '', 'g')
    " 空白で区切った最後が仮引数
    call add(params, split(f)[-1])
  endfor
  let width = max(map(copy(params), 'strlen(v:val)'))
  for p in params
    " 可変長引数の ... と void は @param に書かない
    if p != '...' && p != 'void'
      call add(out,  '    @param ' . p . repeat(' ', width-strlen(p)+1))
    end
  endfor
  let voidpos = match(line, '\<void\>')
  if voidpos >= 0 && voidpos < b
    call add(out, "    @return なし")
  elseif line =~ '\<\(\w\+\)::\~\?\1\>'
    " コンストラクタ・デストラクタなら @return は書かない
  else
    call add(out, "    @return ")
  endif
  call add(out, '*/')
  call append(line(".")-1, out)
  exe "normal! ?brief \<CR>"
  startinsert!
endfunction




添付ファイル: filerubydox.vim 1847件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1350d)