jsdoc.vim generates JSDoc block comments based on a function signature.
This plugin based on https://gist.github.com/3903772#file-jsdoc-vim written by NAKAMURA, Hisashi
Depending on your configuration, jsdoc.vim will prompt for description, @return type and description. It will also prompt you for types and descriptions for each function @param.
Data type tab completion supported for parameter and return types
- currently:
boolean,null,undefined,number,string,symbol,object,function,array,typedArray,date,promise,proxy,map,set,weakmap,weakset,error,regexp
- Move cursor on
functionkeyword line. - Type
:JsDocto insert JSDoc. - Insert JSDoc above the
functionkeyword line.
| Option | Default | Description |
|---|---|---|
| g:jsdoc_allow_input_prompt | 0 | Allow prompt for interactive input. |
| g:jsdoc_input_description | 0 | Prompt for a function description |
| g:jsdoc_additional_descriptions | 0 | Prompt for a value for @name, add it to the JSDoc block comment along with the @function tag. |
| g:jsdoc_return | 1 | Add the @return tag. |
| g:jsdoc_return_type | 1 | Prompt for and add a type for the aforementioned @return tag. |
| g:jsdoc_return_description | 1 | Prompt for and add a description for the @return tag. |
| g:jsdoc_access_descriptions | 0 | Set value to 1 to turn on access tags like `@access <private |
| g:jsdoc_underscore_private | 0 | Set value to 1 to turn on detecting underscore starting functions as private convention |
| g:jsdoc_allow_shorthand | 0 | Set value to 1 to allow ECMAScript6 shorthand syntax. Since ver 0.5.0 deprecated. Use g:jsdoc_enable_es6 instead. |
| g:jsdoc_param_description_separator | ' ' | Characters used to separate @param name and description. |
| g:jsdoc_custom_args_hook | {} | Override default type and description. See help more detail. |
| g:jsdoc_custom_args_regex_only | 0 | When using custom_args_hook, only match against regexes |
| g:jsdoc_type_hook | {} | Allow to insert default description depending on the type. |
| g:jsdoc_enable_es6 | 0 | Enable to use ECMAScript6's Shorthand function, Arrow function. |
| g:jsdoc_tags | see :h | Allow use of alternate tags (the ones that support synonyms) per JSDoc documentation. Can be changed on a per tag basis, for example: `let g:jsdoc_tags = {} |
| g:jsdoc_user_defined_tags | {} | Allow use of user_defined_tags. |
Since version 0.3, g:jsdoc_default_mapping was removed.
Add following setting to .vimrc if you want same behavior as version 0.2.1.
nmap <silent> <C-l> <Plug>(jsdoc)Alternatively, you could add the following setting to your .vimrc to search for the last function declaration and puts your jsdoc above it:
nmap <silent> <C-l> ?function<cr>:noh<cr><Plug>(jsdoc)Since ver 0.10.0 jsdoc.vim support TypeScript.
function foo(foo: string): string { return 'foo' }:JsDoc would generate following.
/** * foo * * @param {string} foo * @returns {string} */ function foo(foo: string): string { return 'foo' }param and returns set type automatically.
