* feat: `harper-cli audit-dictionary`
* feat: `just auditdictionary` and `just auditdict` alias
* fix: end file with linefeed
* feat: add dictionary audit to `check-rust` recipe
Also:
- improve audit counts and warnings
- Add the `♂`, `♀`, and `ª` flags to `annotations.json` with comments that they're not implemented yet
* chore: various improvements to phrasal verb linter
- a compound noun at the start of a chunk followed by a preposition will no longer be flagged
- a compound noun followed by "that" or "which" will no longer be flagged
- exceptions added for "markup" and "plugin" as parts of compounds
- `annotations.json` now marks `-ing` forms of verbs as mass nouns and adjectives
- several dictionary entries needed to be tweaked
A couple of quite subtle false positives are now flagged in the snapshots
* chore: fix "king" and "whispering" dictionary entries
* feat: annotations for verb form properties
* feat: annotations for verb form properties
* feat: verb form ("tense") properties fully propagated
It turns out that the expectatiion that all past participles and present participles can function as adjectives is not true after all: "cared" for instance. This has affected a couple of current tests.
The best fix is unclear. Perhaps separate annotations flags for verbs where the assumptions is true versus false. Perhaps defaulting to true and needing to create the individual form entries separately so they don't get the adjective annotation. It seems this strongly correlates with whether verbs are transitive or intransitive, which we don't yet track. So maybe we should handle both together.
- just "past" for regular verbs
- separate "preterite"/"simple past" and "past participle" for irregular verbs
Also:
- POS tag snapshots now annotate all verb forms
- adjective positive degree marked
- improved error messages for JSON file parse failures
- simplified everyday.rs to use these changes
- new rust lifetime lint annotations
* fix: address the concerns in the code review
* feat: detect "more faster", "most best"
work in progress
* fix: `just format`
* refactor: complete basic featureset
Superlative annotation flag changed from `T` to `^` to match the comparative `>`. Mnemonic comment fields added..
* chore: mark comparatives and superlatives in dictionary
These are the ones whose last letter is doubled since the affix logic doesn't handle that.
Add comments to `affixes.json` linking the annotation flags for the base form comparative and superlative with the deirved term ones.
Add `get_degree` to `WordMetadata` and as a bonus also `get_person` for pronouns.
* Positive degree is not yet queryable as I suspect there could be false positives.
* fix: warning
* feat: `just printaffixes` prints letters free for new flags
I've also renamed it to `just annotations` but kept the old name as an alias.
Annotations that have comment fields will also be in the printout now.
* fix: remove comment
* feat: `suggestannotation`
Pass in a term you want to make a new annotation for and it will check if any of the letters are not already used, or are OK to reuse.
* chore: rename `affixes.json` to `annotations.json`
The name was getting further and further from the function of the file. And the file is very important so a more representative name makes it less abstract when learning how Harper works.
* fix: mention old name `affixes.json`
I also noticed two fields in the sample entry had outdated names.
---------
Co-authored-by: Elijah Potter <me@elijahpotter.dev>