2011-10-30 149 views
4

是否有vim的插件,有點像Jsbeautify,它會在腳本文件中自動生成類似註釋的JavaDoc。Vim插件生成Javascript文檔評論

例如,它會採取這種

function(a , b , c){ 
} 

,並返回

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

回答

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 

假設參數表是在同一行,它試圖匹配出的參數,建立了一個註釋字符串,並將該註釋字符串附加到函數標題之前的行。

+0

如果有人感興趣,可以通過將星星更改爲引號來輕鬆地滿足Python風格的評論。但是,如果您有參數的默認值,則它們將被視爲參數 – puk

+0

如何在vim中編輯時調用此腳本? – Freddo411

+0

你能解釋一下這是如何工作的嗎? (cc。@puk) –

4

snipmate你可以做一個片斷或使用的實際js snippets

+0

這是一個開始的地方,但是,這不是我想要的。甚至在vim之外還存在這樣的事情嗎?我很驚訝JSBeautify並沒有提供它作爲一個選項。 – puk

2

混合我想上一個插件與宏混合在一起,但函數可能需要多少個參數?大多數情況下,最多4個。

帶片段的解決方案可能是一個可行的解決方案。

+0

是的,但你會認爲一個已經存在。我真的希望jsBeautify會照顧這個。 – puk