Generate JSDoc to your JavaScript code.
Switch branches/tags
Clone or download
ryanoasis and heavenshell Update (#76)
- Fixes markdown rendering of pipes in table by escaping them
Latest commit 5ef0867 May 5, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload Fix flow's type does not work right Dec 17, 2017
doc Fix #64 Jan 28, 2017
ftplugin Fix #64 Jan 28, 2017
test Fix #64 Jan 28, 2017
tests Add flow tests Dec 17, 2017
.gitignore Fix ignore swp Dec 17, 2017
.travis.yml Fix travis Dec 17, 2017
LICENSE Add license Jan 17, 2013 Update (#76) May 5, 2018


Build Status

jsdoc.vim generates JSDoc block comments based on a function signature.

Move cursor to function keyword line, then type :JsDoc. If g:jsdoc_allow_input_prompt is enabled, prompt input description, argument type, parameter description. If g:jsdoc_allow_input_prompt is disabled, insert JsDoc automatically.

This plugin based on 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


  1. Move cursor on function keyword line.
  2. Type :JsDoc to insert JSDoc.
  3. Insert JSDoc above the function keyword 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|public>. Set value to 2 to turn on access tags like @<private|public>
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 = {} | let g:jsdoc_tags['param'] = 'arg'
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.