Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect error position and destructive autofix when newline-after-description is never #328

Closed
jaydenseric opened this issue Jul 11, 2019 · 5 comments

Comments

@jaydenseric
Copy link
Contributor

When newline-after-description is never, the error position is wrongly placed amongst tags and the autofix (each time) destructively deletes the line/tag at the end of the block, without actually fixing the error:

eslint-plugin-jsdoc-fix-bug-2

@jaydenseric
Copy link
Contributor Author

I also noticed that sometimes when newline-after-description is always, the opposite can happen: Lots of new lines are inserted in the middle of the JSDoc block.

@brettz9
Copy link
Collaborator

brettz9 commented Jul 12, 2019

Thanks for the report. In future issues, please paste the problematic jsdoc blocks.

@brettz9 brettz9 added the bug label Jul 12, 2019
@gajus
Copy link
Owner

gajus commented Jul 12, 2019

🎉 This issue has been resolved in version 15.3.9 🎉

The release is available on:

Your semantic-release bot 📦🚀

@gajus gajus added the released label Jul 12, 2019
@brettz9
Copy link
Collaborator

brettz9 commented Jul 12, 2019

The issue in this case (for "always" or "never") was that we were looking for the last line out of the whole jsdoc block (including the tags) whose description included, rather than being an exact match for, the text, so in your example, the "A." description of @prop a was thought to be the last main description line, and thus the newline was added or removed after that line.

As with other fixer issues, this kind of mistake should be caught be applying a stringifier to fixed JSDoc JSON, rather than reimplementing string parsing for each fixer.

brettz9 added a commit to interfaced/eslint-plugin-jsdoc that referenced this issue Jul 14, 2019
* master: (46 commits)
  feat(require-description-complete-sentence): limit checking to certain default tags likely to have descriptions or by `tags` array for additional choices; fixes gajus#337
  docs(newline-after-description): indicate applies on doc block
  docs(match-description): add alias `desc` to separate column
  docs(match-description): indicate application by default to `description`/`desc` and allowance for `property`/`prop`; clarify
  fix(match-description): ensure `prop` and `property` matching excludes name
  testing(require-param): fix test source (part of gajus#332)
  testing(require-param): fix test expectation (part of gajus#332)
  docs: generate docs
  chore: update devDeps (eslint-config-canonical, gitdown)
  fix(no-undefined-types): ensure working in all contexts; fixes gajus#324
  refactor(iterateJsdoc): reduce retrieval calls
  docs(check-examples): allow for whitespace at end
  feat(check-examples): add `paddedIndent` option
  fix(check-examples): preserve whitespace so as to report issues with whitespace-related rules such as `indent` (fixes gajus#211)
  chore(travis): fix Travis to use older unicorn version that supports Node 6 (and the canonical config that requires the earlier unicorn version)
  docs(require-returns, require-returns-check): indicate that these will report if multiple `returns` tags are present
  refactor: use `String.prototype.repeat` over lodash `repeat`
  refactor: apply (jsdoc-related) eslint rule fixes
  chore: add `lint-fix` script
  fix(newline-after-description): avoid matching duplicate or partial matches within tag descriptions after the block description; fixes gajus#328
  ...
jaydenseric added a commit to jaydenseric/eslint-config-env that referenced this issue Jul 15, 2019
@gajus
Copy link
Owner

gajus commented Sep 1, 2019

🎉 This issue has been resolved in version 15.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants