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

docs: rewrote instructions on how to author a rule #482

Merged
merged 2 commits into from
Jan 25, 2025

Conversation

elijah-potter
Copy link
Collaborator

In #478, it became clear that a lot of information was missing from the instructions for contributing a new rule to Harper.

This PR is a complete rewrite of that documentation.

@hippietrail, does this make more sense?

@elijah-potter elijah-potter added the documentation Improvements or additions to documentation label Jan 23, 2025
@elijah-potter elijah-potter self-assigned this Jan 23, 2025

Before we start describing to Harper what grammatical errors to look for, we need to register your rule within the system.

First, add your rule's module to the tree by adding it to [the top of the mod file](https://github.com/Automattic/harper/blob/master/harper-core/src/linting/mod.rs).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might I suggest something like this:

You need to add it in two places. First add a "module declaration":

mod an_a;
mod avoid_curses;
mod boring_words;
// [svp! df:+]mod my_rule;

Then a little further down add a "public use declaration":

pub use an_a::AnA;
pub use avoid_curses::AvoidCurses;
pub use boring_words::BoringWords;
// [svp! df:+]pub use my_rule::MyRule;

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel that the single code block with both edits is simpler. The correct placement of the lines will be handled by rustfmt before we merge the PR.

@hippietrail
Copy link
Contributor

hippietrail commented Jan 24, 2025

In #478, it became clear that a lot of information was missing from the instructions for contributing a new rule to Harper.

This PR is a complete rewrite of that documentation.

@hippietrail, does this make more sense?

Yes it's better and better. I made one suggestion. I also think it would be more helpful for non-rust-coders to include an example where I think it's now just unimplemented().

But also my attempt at a new rule still doesn't work now that I've set up just and using just lint instead of cargo run. It builds and runs and checks the file but only finds the old lints.

@elijah-potter
Copy link
Collaborator Author

But also my attempt at a new still doesn't work now that I've set up just and using just lint instead of cargo run. It builds and runs and checks the file but only finds the old lints.

That's odd. Would you mind opening a draft PR so I can get a look at what's going on?

@hippietrail
Copy link
Contributor

But also my attempt at a new still doesn't work now that I've set up just and using just lint instead of cargo run. It builds and runs and checks the file but only finds the old lints.

That's odd. Would you mind opening a draft PR so I can get a look at what's going on?

Gave it a shot: #494 By the way I don't think the new docs mentioned changing package.json but I changed it anyway.

@elijah-potter elijah-potter merged commit c9ea51f into master Jan 25, 2025
17 checks passed
@elijah-potter elijah-potter deleted the author-rule-doc-improvements branch January 25, 2025 18:40
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jan 28, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [Automattic/harper/harper-ls](https://github.com/Automattic/harper) | minor | `v0.16.0` -> `v0.18.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>Automattic/harper (Automattic/harper/harper-ls)</summary>

### [`v0.18.0`](https://github.com/Automattic/harper/releases/tag/v0.18.0)

[Compare Source](Automattic/harper@v0.17.0...v0.18.0)

#### What's Changed

-   fix two grammatical errors by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#481
-   Reword description of "that which" to avoid ironic redundancy by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#479
-   feat([#&#8203;422](Automattic/harper#422)): add `same than` -> `same as` matcher trigger by [@&#8203;grantlemons](https://github.com/grantlemons) in Automattic/harper#453
-   missing definite article, comma placement by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#480
-   Improvements to `PluralConjugate` by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#474
-   correct Valentine's Day by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#491
-   typo in zed integration doc by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#490
-   feat(core): created linter for [#&#8203;426](Automattic/harper#426) by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#452
-   I missed a lets/let's mistake in a comment by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#492
-   docs: rewrote instructions on how to author a rule by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#482
-   missing indefinite article in comments by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#488
-   Apply rule from issue [#&#8203;465](Automattic/harper#465) to core document.rs by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#510
-   feat(core): allow trailing commas in the `lint_group` macro by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#483
-   fix agreement error in docs by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#417

**Full Changelog**: Automattic/harper@v0.17.0...v0.18.0

### [`v0.17.0`](https://github.com/Automattic/harper/releases/tag/v0.17.0)

[Compare Source](Automattic/harper@v0.16.0...v0.17.0)

#### What's Changed

-   feat([#&#8203;393](Automattic/harper#393)): add clap version & about attributes by [@&#8203;grantlemons](https://github.com/grantlemons) in Automattic/harper#394
-   docs: added Homebrew as an installation method by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#395
-   typos/spelling/grammar fixes in comments, docs, and strings by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#398
-   fix(core): harden title case module by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#396
-   fix(core): indexing problems by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#409
-   fix typo: remove extraneous 'to' by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#418
-   chore: update description of Oxford rule by [@&#8203;ccoVeille](https://github.com/ccoVeille) in Automattic/harper#419
-   build(deps): bump itertools from 0.13.0 to 0.14.0 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#431
-   build(deps): bump serde_json from 1.0.135 to 1.0.137 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#429
-   Typst Test Fixes by [@&#8203;grantlemons](https://github.com/grantlemons) in Automattic/harper#391
-   build(deps): bump clap from 4.5.23 to 4.5.27 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#444
-   feat: Update VSCode Config by [@&#8203;mcecode](https://github.com/mcecode) in Automattic/harper#400
-   fix(core): infinite lint loops by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#390
-   Clean Up `harper-ls` logs by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#447
-   build(deps): bump undici from 6.19.8 to 6.21.1 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#450
-   typo by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#462
-   fix(core): the Oxford comma applies to `nor` as well by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#445
-   feat(harper.js): added ability to explicitly set config to the default by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#449
-   build(deps-dev): bump vite from 6.0.5 to 6.0.9 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#448
-   feat(core): created a  new rule that resolves [#&#8203;414](Automattic/harper#414) by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#455
-   build(deps-dev): bump vite from 5.4.11 to 5.4.12 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#475
-   docs: added page to explain tooling for reviewers by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#471
-   fix instance of [#&#8203;384](Automattic/harper#384) in docs by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#477

#### New Contributors

-   [@&#8203;hippietrail](https://github.com/hippietrail) made their first contribution in Automattic/harper#398
-   [@&#8203;ccoVeille](https://github.com/ccoVeille) made their first contribution in Automattic/harper#419

**Full Changelog**: Automattic/harper@v0.16.0...v0.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjYuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEzNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants