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

发布于 2024-12-13 00:48:39 字数 291 浏览 1 评论 0原文

vim 有没有一个插件,有点像 Jsbeautify,可以在脚本文件中自动生成 JavaDoc 之类的注释。

例如它将接受

function(a , b , c){
}

并返回

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

Is there a plugin for vim, somewhat like Jsbeautify, which automatically generates JavaDoc like comments in the script files.

For example it will take this

function(a , b , c){
}

and return

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哭了丶谁疼 2024-12-20 00:48:39

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

" 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

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

Here's a little something to get you started - tweak as required!-)

" 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

Assuming the parameter list is on one line, it tries to match out the parameters, builds up a comment string, and appends that comment string to the line before the function header.

不必在意 2024-12-20 00:48:39

使用 snipmate 你可以制作一个片段或使用实际的 js 片段

with snipmate you can make a snippet or use a mix of actual js snippets

缱倦旧时光 2024-12-20 00:48:39

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

包含片段的解决方案可能是一种可行的解决方案。

I was thinking on a plugin mixed with macros, but how many arguments may a function take? Most of the time, it will be 4 at the max.

The solution with snippets can be a viable one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文