From 04692a185c482c8ac1afe06bfec5a5a5b3441c08 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 2 Apr 2026 09:30:20 +0000 Subject: [PATCH] fix(grammar): handle hard-c endings in regular conjugation Co-Authored-By: Virgil --- grammar.go | 6 ++++++ grammar_test.go | 2 ++ 2 files changed, 8 insertions(+) diff --git a/grammar.go b/grammar.go index 184bf2d..218cf74 100644 --- a/grammar.go +++ b/grammar.go @@ -380,6 +380,9 @@ func applyRegularPastTense(verb string) string { return verb[:len(verb)-1] + "ied" } } + if core.HasSuffix(verb, "c") { + return verb + "ked" + } if len(verb) >= 2 && shouldDoubleConsonant(verb) { return verb + string(verb[len(verb)-1]) + "ed" } @@ -437,6 +440,9 @@ func applyRegularGerund(verb string) string { return verb[:len(verb)-1] + "ing" } } + if core.HasSuffix(verb, "c") { + return verb + "king" + } if shouldDoubleConsonant(verb) { return verb + string(verb[len(verb)-1]) + "ing" } diff --git a/grammar_test.go b/grammar_test.go index f75bb21..3d503f4 100644 --- a/grammar_test.go +++ b/grammar_test.go @@ -104,6 +104,7 @@ func TestPastTense(t *testing.T) { {"push", "pushed"}, {"pull", "pulled"}, {"start", "started"}, + {"panic", "panicked"}, {"copy", "copied"}, {"apply", "applied"}, @@ -170,6 +171,7 @@ func TestGerund(t *testing.T) { {"push", "pushing"}, {"pull", "pulling"}, {"start", "starting"}, + {"panic", "panicking"}, {"die", "dying"}, // Edge cases -- 2.45.3