用于生成 Javascript 文档注释的 Vim 插件

Posted

技术标签:

【中文标题】用于生成 Javascript 文档注释的 Vim 插件【英文标题】:Vim plugin to generate Javascript Documentation comments 【发布时间】: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)

【问题讨论】:

【参考方案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 能解决这个问题。

以上是关于用于生成 Javascript 文档注释的 Vim 插件的主要内容,如果未能解决你的问题,请参考以下文章

使用JSDoc自动生成代码文档

Javascript 替换包含文档注释的代码行

Doxygen生成美丽注释文档:初体验

文档注释与多行注释的区别

Java文档注释

Java的注释