From 41cd016aa3c75b51d6512a3731a4b5b3933a6e6f Mon Sep 17 00:00:00 2001 From: hippietrail Date: Wed, 27 May 2026 23:10:50 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20(wip)=20capitalize=20off=20(of)?= =?UTF-8?q?=E2=86=92capitalize=20on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../linting/weir_rules/CapitalizeOn/Ise3PersSing.weir | 6 ++++++ .../src/linting/weir_rules/CapitalizeOn/IseLemma.weir | 8 ++++++++ .../src/linting/weir_rules/CapitalizeOn/IsePast.weir | 6 ++++++ .../linting/weir_rules/CapitalizeOn/IseProgressive.weir | 9 +++++++++ .../linting/weir_rules/CapitalizeOn/Ize3PersSing.weir | 8 ++++++++ .../src/linting/weir_rules/CapitalizeOn/IzeLemma.weir | 9 +++++++++ .../src/linting/weir_rules/CapitalizeOn/IzePast.weir | 9 +++++++++ .../linting/weir_rules/CapitalizeOn/IzeProgressive.weir | 9 +++++++++ 8 files changed, 64 insertions(+) create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir create mode 100644 harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir new file mode 100644 index 000000000..4c1f0775b --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir @@ -0,0 +1,6 @@ +expr [main capitalises off, main capitalises off of] + +let message "Did you mean `capitalises on`?" +let description "Corrects `capitalise off` to `capitalise on`." +let kind "Usage" +let becomes "capitalises on" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir new file mode 100644 index 000000000..3e2ce1719 --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir @@ -0,0 +1,8 @@ +expr main [capitalise off, capitalise off of] + +let message "Did you mean `capitalise on`?" +let description "Corrects `capitalise off` to `capitalise on`." +let kind "Usage" +let becomes "capitalise on" + +test "Ads make money but it seems hard to capitalise off of secret collection" "Ads make money but it seems hard to capitalise on secret collection" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir new file mode 100644 index 000000000..91aef64f5 --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir @@ -0,0 +1,6 @@ +expr main [capitalised off, capitalised off of] + +let message "Did you mean `capitalised on`?" +let description "Corrects `capitalise off` to `capitalise on`." +let kind "Usage" +let becomes "capitalised on" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir new file mode 100644 index 000000000..e8c82dc93 --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir @@ -0,0 +1,9 @@ +expr main [capitalising off, capitalising off of] + +let message "Did you mean `capitalising on`?" +let description "Corrects `capitalise off` to `capitalise on`." +let kind "Usage" +let becomes "capitalising on" + +test "curious if anybody is talking about it / capitalising off the new-found fame" "curious if anybody is talking about it / capitalising on the new-found fame" +test "... start capitalising off of it" "... start capitalising on it" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir new file mode 100644 index 000000000..199c0da3b --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir @@ -0,0 +1,8 @@ +expr main [capitalizes off, capitalizes off of] + +let message "Did you mean `capitalizes on`?" +let description "Corrects `capitalize off` to `capitalize on`." +let kind "Usage" +let becomes "capitalizes on" + +test "The browser capitalizes off of publishers/content providers" "The browser capitalizes on publishers/content providers" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir new file mode 100644 index 000000000..deecd0952 --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir @@ -0,0 +1,9 @@ +expr [main capitalize off, main capitalize off of] + +let message "Did you mean `capitalize on`?" +let description "Corrects `capitalize off` to `capitalize on`." +let kind "Usage" +let becomes "capitalize on" + +test "A script to buy a certain cryptocurrency as fast as possible to capitalize off of Pump-and-Dump's." "A script to buy a certain cryptocurrency as fast as possible to capitalize on of Pump-and-Dump's." +test "marketing companies wanted to capitalize off those events" "marketing companies wanted to capitalize on those events" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir new file mode 100644 index 000000000..f7b321e1b --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir @@ -0,0 +1,9 @@ +expr main [capitalized off, capitalized off of] + +let message "Did you mean `capitalized on`?" +let description "Corrects `capitalize off` to `capitalize on`." +let kind "Usage" +let becomes "capitalized on" + +test "Notion has capitalized off of this, as well as every popular Chinese app ..." "Notion has capitalized on this, as well as every popular Chinese app ..." +test "Capitalized off the name recognition of the original project despite having no affiliation ..." "Capitalized on the name recognition of the original project despite having no affiliation ..." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir new file mode 100644 index 000000000..281fb45e3 --- /dev/null +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir @@ -0,0 +1,9 @@ +expr main [capitalizing off, capitalizing off of] + +let message "Did you mean `capitalizing on`?" +let description "Corrects `capitalize off` to `capitalize on`." +let kind "Usage" +let becomes "capitalizing on" + +test "splits it apart into distinct monolgoes, capitalizing off of the semi-structures format" "splits it apart into distinct monolgoes, capitalizing on the semi-structures format" +test "By capitalizing off the intermediary points -- each step of the way" "By capitalizing on the intermediary points -- each step of the way" From 38f67d0621b58f4b562abc52d04b0ebb5a34b07e Mon Sep 17 00:00:00 2001 From: hippietrail Date: Wed, 27 May 2026 23:11:56 +0800 Subject: [PATCH 2/4] fix: missed one file --- harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir index deecd0952..0c7b235be 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir @@ -1,4 +1,4 @@ -expr [main capitalize off, main capitalize off of] +expr main [capitalize off, capitalize off of] let message "Did you mean `capitalize on`?" let description "Corrects `capitalize off` to `capitalize on`." From d0822a5ba59cfe7aaeb6ac6dcfa83693dddee828 Mon Sep 17 00:00:00 2001 From: hippietrail Date: Wed, 27 May 2026 23:41:49 +0800 Subject: [PATCH 3/4] fix: syntax was wrong, long variant must be first --- .../src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir | 2 +- harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir | 2 +- harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir | 2 +- .../src/linting/weir_rules/CapitalizeOn/IseProgressive.weir | 2 +- .../src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir | 2 +- harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir | 4 ++-- harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir | 2 +- .../src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir index 4c1f0775b..d7e2b9ebc 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/Ise3PersSing.weir @@ -1,4 +1,4 @@ -expr [main capitalises off, main capitalises off of] +expr main [(capitalises off of), (capitalises off)] let message "Did you mean `capitalises on`?" let description "Corrects `capitalise off` to `capitalise on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir index 3e2ce1719..9c52ec5b2 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IseLemma.weir @@ -1,4 +1,4 @@ -expr main [capitalise off, capitalise off of] +expr main [(capitalise off of), (capitalise off)] let message "Did you mean `capitalise on`?" let description "Corrects `capitalise off` to `capitalise on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir index 91aef64f5..886649fb3 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IsePast.weir @@ -1,4 +1,4 @@ -expr main [capitalised off, capitalised off of] +expr main [(capitalised off of), (capitalised off)] let message "Did you mean `capitalised on`?" let description "Corrects `capitalise off` to `capitalise on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir index e8c82dc93..7da3f164c 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IseProgressive.weir @@ -1,4 +1,4 @@ -expr main [capitalising off, capitalising off of] +expr main [(capitalising off of), (capitalising off)] let message "Did you mean `capitalising on`?" let description "Corrects `capitalise off` to `capitalise on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir index 199c0da3b..b9f5c87ec 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/Ize3PersSing.weir @@ -1,4 +1,4 @@ -expr main [capitalizes off, capitalizes off of] +expr main [(capitalizes off of), (capitalizes off)] let message "Did you mean `capitalizes on`?" let description "Corrects `capitalize off` to `capitalize on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir index 0c7b235be..8393af728 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeLemma.weir @@ -1,9 +1,9 @@ -expr main [capitalize off, capitalize off of] +expr main [(capitalize off of), (capitalize off)] let message "Did you mean `capitalize on`?" let description "Corrects `capitalize off` to `capitalize on`." let kind "Usage" let becomes "capitalize on" -test "A script to buy a certain cryptocurrency as fast as possible to capitalize off of Pump-and-Dump's." "A script to buy a certain cryptocurrency as fast as possible to capitalize on of Pump-and-Dump's." +test "A script to buy a certain cryptocurrency as fast as possible to capitalize off of Pump-and-Dump's." "A script to buy a certain cryptocurrency as fast as possible to capitalize on Pump-and-Dump's." test "marketing companies wanted to capitalize off those events" "marketing companies wanted to capitalize on those events" diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir index f7b321e1b..46cc2983a 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzePast.weir @@ -1,4 +1,4 @@ -expr main [capitalized off, capitalized off of] +expr main [(capitalized off of), (capitalized off)] let message "Did you mean `capitalized on`?" let description "Corrects `capitalize off` to `capitalize on`." diff --git a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir index 281fb45e3..7bc373187 100644 --- a/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir +++ b/harper-core/src/linting/weir_rules/CapitalizeOn/IzeProgressive.weir @@ -1,4 +1,4 @@ -expr main [capitalizing off, capitalizing off of] +expr main [(capitalizing off of), (capitalizing off)] let message "Did you mean `capitalizing on`?" let description "Corrects `capitalize off` to `capitalize on`." From 2d2921b4497faaac7067eddc0196ef32a5dda539 Mon Sep 17 00:00:00 2001 From: hippietrail Date: Thu, 28 May 2026 00:20:55 +0800 Subject: [PATCH 4/4] fix: I thought I included the conf entry but I did not --- harper-core/default_config.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/harper-core/default_config.json b/harper-core/default_config.json index bb405b4d8..fc16d396f 100644 --- a/harper-core/default_config.json +++ b/harper-core/default_config.json @@ -3713,6 +3713,13 @@ "state": true, "label": "A Some Time" } + }, + { + "Bool": { + "name": "CapitalizeOn", + "state": true, + "label": "Capitalize On" + } } ] }