Skip to content

Closed Compound Matcher Conversions#608

Merged
elijah-potter merged 25 commits intomasterfrom
matcher-conversions
Feb 10, 2025
Merged

Closed Compound Matcher Conversions#608
elijah-potter merged 25 commits intomasterfrom
matcher-conversions

Conversation

@elijah-potter
Copy link
Copy Markdown
Collaborator

This continues work on #472 by defining a macro to be used to create rules that condense valid words into closed compound words. This may close #440.

If there are any additions, let me know. The current list is in harper-core/src/linting/closed_compounds around line 60.

@elijah-potter elijah-potter changed the title Matcher conversions Closed Compound Matcher Conversions Feb 6, 2025
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
@elijah-potter
Copy link
Copy Markdown
Collaborator Author

@hippietrail, I've taken a more data-driven approach for nouns. Let me know what you think.

Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
Comment thread harper-core/src/linting/closed_compounds.rs Outdated
create_closed_compound_linter!(Nonetheless, "none the less", "nonetheless");
create_closed_compound_linter!(Hereafter, "here after", "hereafter");
create_closed_compound_linter!(Otherwise, "other wise", "otherwise");
create_closed_compound_linter!(Therein, "there in", "therein");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The former is both legit and more common than the latter: "It's over there in that box". "I see him there in the window", etc. There in lies the problem.
image

Comment thread harper-core/src/linting/closed_compounds.rs Outdated
create_closed_compound_linter!(Thereupon, "there upon", "thereupon");
create_closed_compound_linter!(Hereby, "here by", "hereby");
create_closed_compound_linter!(Hereunder, "here under", "hereunder");
create_closed_compound_linter!(Forthwith, "forth with", "forthwith");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can occur in coding context: In my day we had to code in Forth with a line editor!

create_closed_compound_linter!(Therein, "there in", "therein");
create_closed_compound_linter!(Thereupon, "there upon", "thereupon");
create_closed_compound_linter!(Hereby, "here by", "hereby");
create_closed_compound_linter!(Hereunder, "here under", "hereunder");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"It's hidden right here under the carpet".

create_closed_compound_linter!(Forthwith, "forth with", "forthwith");
create_closed_compound_linter!(Insofar, "in so far", "insofar");
create_closed_compound_linter!(Whereupon, "where upon", "whereupon");
create_closed_compound_linter!(Thereafter, "there after", "thereafter");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"I got there after him". "Go back there after dinner and finish it." etc. Much more common than the legalese.

create_closed_compound_linter!(Insofar, "in so far", "insofar");
create_closed_compound_linter!(Whereupon, "where upon", "whereupon");
create_closed_compound_linter!(Thereafter, "there after", "thereafter");
create_closed_compound_linter!(Downright, "down right", "downright");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"We've gotta do down right here" etc.

@ccoVeille
Copy link
Copy Markdown
Contributor

ccoVeille commented Feb 7, 2025

All the counter examples that @hippietrail gave are extremely valuable.

They should be added in a non-regression tests that will be a global one and not directly linked to this rule.

Someone in the future may be tempted to open a PR to fix anything listed by @hippietrail as valid/invalid

EDIT: I opened

@elijah-potter
Copy link
Copy Markdown
Collaborator Author

They should be added in a non-regression tests that will be a global one and not directly linked to this rule.

I absolutely agree. I added them to the global tests, which actually revealed some issues. They've since been fixed.

Comment thread harper-core/affixes.json
elijah-potter and others added 2 commits February 10, 2025 13:35
Co-authored-by: ccoVeille <ccoVeille@users.noreply.github.com>
Comment thread harper-core/affixes.json
@elijah-potter elijah-potter merged commit ca28444 into master Feb 10, 2025
@elijah-potter elijah-potter deleted the matcher-conversions branch February 10, 2025 21:19
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 11, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [Automattic/harper/harper-ls](https://github.com/Automattic/harper) | minor | `v0.19.1` -> `v0.20.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.20.0`](https://github.com/Automattic/harper/releases/tag/v0.20.0)

[Compare Source](Automattic/harper@v0.19.1...v0.20.0)

#### What's Changed

-   chore: Maintenance Changes by [@&#8203;mcecode](https://github.com/mcecode) in Automattic/harper#583
-   build: use `just`-native dependency resolution by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#554
-   build(deps): bump tree-sitter-dart from 0.0.3 to 0.0.4 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#566
-   build(deps): bump serde_json from 1.0.137 to 1.0.138 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#568
-   build(deps-dev): bump [@&#8203;rollup/plugin-typescript](https://github.com/rollup/plugin-typescript) from 11.1.6 to 12.1.2 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#569
-   feat(web): add link to the Discord server by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#585
-   clean up strange character at end-of-line by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#580
-   feat(core): Lint for those who don't like Oxford commas by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#562
-   docs(obsidian): notify people they should use up-to-date Electron by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#586
-   build(deps-dev): bump vitest from 2.1.8 to 2.1.9 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#588
-   build(deps-dev): bump [@&#8203;vitest/browser](https://github.com/vitest/browser) from 2.1.8 to 2.1.9 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#591
-   fix(core): add `on` to the list of special cases by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#592
-   feat(core): start support for hex numbers by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#553
-   feat: change `just addnoun` to have different affixes as per [#&#8203;595](Automattic/harper#595) by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#601
-   Phrase fixes by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#589
-   dict: add inclusivity by [@&#8203;lukasmwerner](https://github.com/lukasmwerner) in Automattic/harper#590
-   docs(vscode): revised introductional material by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#602
-   docs: missing word in web/author-a-rule by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#614
-   feat: adds a brief helpful comment to each entry describing its function by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#593
-   fix(ls): release config lock to avoid deadlocks by [@&#8203;nyonson](https://github.com/nyonson) in Automattic/harper#612
-   feat(core): create rule for the possessive version of "you" by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#619
-   bench(harper.js): add benchmarks for configuration methods by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#618
-   grammar agreement in obsidion plugin comment by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#622
-   feat: clarify message for uncapitalized "I" by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#625
-   build(deps-dev): bump [@&#8203;types/node](https://github.com/types/node) from 22.13.0 to 22.13.1 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#632
-   build(deps-dev): bump esbuild from 0.24.2 to 0.25.0 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#633
-   build(deps-dev): bump typescript from 5.6.3 to 5.7.3 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#631
-   build(deps-dev): bump [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit) from 2.16.1 to 2.17.1 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#629
-   chore: correct some affix annotations by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#617
-   feat: split triggers in `matcher.rs` into categories with explanations by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#636
-   Cut-and-paste error in "report error" template by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#623
-   bug: reverse correcting "supposed to" to "suppose to" by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#621
-   feat: if spellcheck only has one suggestion mention it directly by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#626
-   fix(obsidian): correctly handle Unicode conversions by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#627
-   feat: add `harper-cli forms` and `just getforms` by [@&#8203;hippietrail](https://github.com/hippietrail) in Automattic/harper#615
-   Closed Compound Matcher Conversions by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#608
-   build(deps): bump clap from 4.5.27 to 4.5.28 by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#635
-   build(deps): bump esbuild from 0.23.1 to 0.25.0 in /packages by [@&#8203;dependabot](https://github.com/dependabot) in Automattic/harper#639
-   fix(core): make narrow linter specifically for `long and behold` by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#641
-   fix(core): currency placement with certain decimal positions by [@&#8203;elijah-potter](https://github.com/elijah-potter) in Automattic/harper#604

#### New Contributors

-   [@&#8203;nyonson](https://github.com/nyonson) made their first contribution in Automattic/harper#612

**Full Changelog**: Automattic/harper@v0.19.1...v0.20.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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Flag words wrongly split where the parts each happen to also be words

3 participants