comment-fixer.js 887 B

123456789101112131415161718192021222324252627282930
  1. /* jshint node: true, esnext: true */
  2. module.exports = {
  3. handlers: {
  4. /**
  5. * @see http://usejsdoc.org/about-plugins.html#event-beforeparse
  6. * @param evt
  7. */
  8. beforeParse: function( evt ) {
  9. 'use strict';
  10. let className;
  11. let foundClassName = /export default class ([A-Za-z]+)/.exec( evt.source );
  12. // Fix for {@link https://github.com/jsdoc3/jsdoc/issues/1137}. Export default class is not parsed by jsdoc 3.4.
  13. if ( foundClassName ) {
  14. className = foundClassName[ 1 ];
  15. evt.source =
  16. evt.source.replace( 'export default class', 'class' ) +
  17. '\nexport default ' + className + ';\n';
  18. }
  19. // TODO: jsdoc fail to parse method with expanded argument list
  20. evt.source = evt.source.replace( '...}', '}' );
  21. // Make code in comments indented with one tab so it will not be shifted.
  22. evt.source = evt.source.replace( /\*\t\t/g, '*\t' );
  23. }
  24. }
  25. };