【问题标题】:Vim plugin to generate Javascript Documentation comments用于生成 Javascript 文档注释的 Vim 插件
【发布时间】:2011-12-18 01:39:32
【问题描述】:

有没有vim的插件,有点像Jsbeautify,在脚本文件中自动生成类似cmets的JavaDoc。

例如它会采取这个

function(a , b , c){
}

然后返回

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

【问题讨论】:

    标签: javascript vim comments vim-plugin


    【解决方案1】:

    这里有一些东西可以帮助您入门 - 根据需要进行调整!-)

    " 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
    

    假设参数列表在一行,它会尝试匹配参数,构建一个注释字符串,并将该注释字符串附加到函数头之前的行。

    【讨论】:

    • 如果有人感兴趣,可以通过将星号更改为引号来轻松满足 Python 风格的 cmets。但是,如果您有参数的默认值,它们将被视为参数
    • 您能解释一下这是如何工作的吗? (cc.@puk)
    【解决方案2】:

    使用snipmate,您可以制作sn-p 或使用实际js snippets 的组合

    【讨论】:

    • 这是一个开始的地方,但是,这不是我想要的。即使在vim之外也存在这样的事情吗?我很惊讶 JSBeautify 没有提供它作为选项。
    【解决方案3】:

    我在考虑一个与宏混合的插件,但是一个函数可以接受多少个参数?大多数情况下,最多为 4 个。

    使用 sn-ps 的解决方案可能是可行的。

    【讨论】:

    • 是的,但您会认为已经存在一个。我实际上希望 jsBeautify 能解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2022-12-19
    • 2010-11-01
    相关资源
    最近更新 更多