11const config = require ( './config' ) ;
22const render = require ( './lib/core/renderer' ) ;
33const extractVueScript = require ( './lib/core/vueScriptExtractor' ) ;
4+ const seekExportDefaultLine = require ( './lib/core/seekExportDefaultLine' ) ;
45const vueDataTag = require ( './lib/tags/vue-data' ) ;
56const vuePropTag = require ( './lib/tags/vue-prop' ) ;
67const vueComputedTag = require ( './lib/tags/vue-computed' ) ;
78
9+ // Used to compute good line number for Vue methods
10+ const exportDefaultLines = { } ;
11+ const mainDocletLines = { } ;
12+
813exports . handlers = {
914 beforeParse ( e ) {
1015 if ( / \. v u e $ / . test ( e . filename ) ) {
16+ exportDefaultLines [ e . filename ] = seekExportDefaultLine ( e . source ) ;
1117 e . source = extractVueScript ( e . filename ) ;
1218 }
1319 } ,
1420 newDoclet ( e ) {
1521 if ( e . doclet . meta . filename . endsWith ( '.vue' ) ) {
22+ const fullPath = `${ e . doclet . meta . path } /${ e . doclet . meta . filename } ` ;
1623 const componentName = e . doclet . meta . filename . replace ( / \. v u e $ / , '' ) ;
1724
1825 // if (e.doclet.memberof === 'module.exports') {
@@ -23,6 +30,11 @@ exports.handlers = {
2330 // e.doclet.longname = e.doclet.longname.replace('module.exports.', componentName)
2431 // }
2532
33+ // The main doclet before `export default {}`
34+ if ( e . doclet . longname === 'module.exports' ) {
35+ mainDocletLines [ fullPath ] = e . doclet . meta . lineno ;
36+ }
37+
2638 if ( e . doclet . _isVueDoc ) {
2739 const { renderer } = config [ 'jsdoc-vuejs' ] ;
2840 const props = e . doclet . _vueProps || [ ] ;
@@ -43,6 +55,7 @@ exports.handlers = {
4355 if ( e . doclet . memberof . endsWith ( '.methods' ) ) {
4456 e . doclet . scope = 'instance' ;
4557 e . doclet . memberof = e . doclet . memberof . replace ( / \. m e t h o d s $ / , '' ) ; // force method to be displayed
58+ e . doclet . meta . lineno += exportDefaultLines [ fullPath ] - mainDocletLines [ fullPath ] ;
4659 } else {
4760 e . doclet . memberof = null ; // don't include Vue hooks
4861 }
0 commit comments