diff --git a/autoload/doge/preprocessors/javascript.vim b/autoload/doge/preprocessors/javascript.vim new file mode 100644 index 00000000..8212aa0d --- /dev/null +++ b/autoload/doge/preprocessors/javascript.vim @@ -0,0 +1,17 @@ +let s:save_cpo = &cpoptions +set cpoptions&vim + +" A callback function being called after the tokens have been extracted. This +" function will adjust the input if needed. +function! doge#preprocessors#javascript#tokens(tokens) abort + if has_key(a:tokens, 'returnType') + if a:tokens['returnType'] ==# 'void' + let a:tokens['returnType'] = '' + elseif a:tokens['returnType'] ==# '' + let a:tokens['returnType'] = '!type' + endif + endif +endfunction + +let &cpoptions = s:save_cpo +unlet s:save_cpo diff --git a/autoload/doge/preprocessors/typescript.vim b/autoload/doge/preprocessors/typescript.vim new file mode 100644 index 00000000..df8fad82 --- /dev/null +++ b/autoload/doge/preprocessors/typescript.vim @@ -0,0 +1,15 @@ +let s:save_cpo = &cpoptions +set cpoptions&vim + +function! doge#preprocessors#typescript#tokens(tokens) abort + if has_key(a:tokens, 'returnType') + if a:tokens['returnType'] ==# 'void' + let a:tokens['returnType'] = '' + elseif a:tokens['returnType'] ==# '' + let a:tokens['returnType'] = '!type' + endif + endif +endfunction + +let &cpoptions = s:save_cpo +unlet s:save_cpo diff --git a/ftplugin/javascript.vim b/ftplugin/javascript.vim index e7538941..c4265906 100644 --- a/ftplugin/javascript.vim +++ b/ftplugin/javascript.vim @@ -124,7 +124,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @{async})%', \ ' * @function {funcName|}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -145,7 +145,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(static| * @static)%', \ '%(async| * @async)%', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -157,7 +157,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @async)%', \ ' * @function {className}#{funcName}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -170,7 +170,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @async)%', \ ' * @function {funcName|}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), diff --git a/ftplugin/typescript.vim b/ftplugin/typescript.vim index e6bf843f..c8cedf1f 100644 --- a/ftplugin/typescript.vim +++ b/ftplugin/typescript.vim @@ -127,7 +127,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @{async})%', \ ' * @function {funcName|}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -148,7 +148,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(static| * @static)%', \ '%(async| * @async)%', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -160,7 +160,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @async)%', \ ' * @function {className}#{funcName}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), @@ -173,7 +173,7 @@ call doge#buffer#register_doc_standard('jsdoc', [ \ '%(async| * @async)%', \ ' * @function {funcName|}', \ '%(parameters| * {parameters})%', -\ ' * @return {{returnType|!type}} !description', +\ '%(returnType| * @return {{returnType|!type}} !description)%', \ ' */', \ ], \ }), diff --git a/playground/test.js b/playground/test.js index 9a030ef1..901a2c21 100644 --- a/playground/test.js +++ b/playground/test.js @@ -562,7 +562,6 @@ class Child extends Parent { * * @param {number} arg0 - [TODO:description] * @param {string} arg1 - [TODO:description] - * @return {void} [TODO:description] */ public funcA(arg0: number, arg1?: string): void { diff --git a/test/filetypes/javascript/functions.vader b/test/filetypes/javascript/functions.vader index 80f1d232..860db25d 100644 --- a/test/filetypes/javascript/functions.vader +++ b/test/filetypes/javascript/functions.vader @@ -244,7 +244,6 @@ Expect javascript (generated comment with a description, @param and @return tags * [TODO:description] * * @param {string} something - [TODO:description] - * @return {void} [TODO:description] */ public printSomething(something?: string): void {}