4

スクリプトファイルにJavaDocのようなコメントを自動的に生成する、Jsbeautifyのようなvim用のプラグインはありますか。

たとえば、これがかかります

function(a , b , c){
}

そして戻る

/**
 * Description.
 *
 * @param a  Description.
 * @param b  Description.
 * @param c  Description.
 */
function(a , b , c){
}
4

3 に答える 3

5

ここから始めましょう - 必要に応じて微調整してください!-)

" generate doc comment template
map <LocalLeader>/ :call GenerateDOCComment()<cr>

function! GenerateDOCComment()
  let l    = line('.')
  let i    = indent(l)
  let pre  = repeat(' ',i)
  let text = getline(l)
  let params   = matchstr(text,'([^)]*)')
  let paramPat = '\([$a-zA-Z_0-9]\+\)[, ]*\(.*\)'
  echomsg params
  let vars = []
  let m    = ' '
  let ml = matchlist(params,paramPat)
  while ml!=[]
    let [_,var;rest]= ml
    let vars += [pre.' * @param '.var]
    let ml = matchlist(rest,paramPat,0)
  endwhile
  let comment = [pre.'/**',pre.' * '] + vars + [pre.' */']
  call append(l-1,comment)
  call cursor(l+1,i+3)
endfunction

パラメーター リストが 1 行にあると仮定すると、パラメーターを一致させようとし、コメント文字列を作成して、そのコメント文字列を関数ヘッダーの前の行に追加します。

于 2011-11-06T09:51:53.253 に答える
4

snipmateを使用すると、スニペットを作成したり、実際のjs スニペットを組み合わせて使用​​したりできます

于 2011-10-30T05:49:21.000 に答える
2

マクロと混合したプラグインを考えていましたが、関数はいくつの引数を取ることができますか? ほとんどの場合、最大で 4 になります。

スニペットを使用したソリューションは、実行可能なものになる可能性があります。

于 2011-10-30T15:02:00.677 に答える