diff --git a/plugins/grazie/src/test/kotlin/com/intellij/grazie/spellchecker/dictionary/ProjectDictionaryTest.java b/plugins/grazie/src/test/kotlin/com/intellij/grazie/spellchecker/dictionary/ProjectDictionaryTest.java index abaffa607cf6..688753134f4d 100644 --- a/plugins/grazie/src/test/kotlin/com/intellij/grazie/spellchecker/dictionary/ProjectDictionaryTest.java +++ b/plugins/grazie/src/test/kotlin/com/intellij/grazie/spellchecker/dictionary/ProjectDictionaryTest.java @@ -69,6 +69,13 @@ public class ProjectDictionaryTest extends SpellcheckerInspectionTestCase { assertEquals(Alien, projectDictionary.lookup(eeee)); } + public void testNoTyposInUpperCaseWords() { + var dictionary = createProjectDictionary(Set.of("pghost")); + assertEquals(Present, dictionary.lookup("PGHOST")); + assertEquals(Present, dictionary.lookup("Pghost")); + assertEquals(Alien, dictionary.lookup("pgHoSt")); + } + public void testClear() { ProjectDictionary projectDictionary = createProjectDictionary(PROJECT_WORDS); projectDictionary.clear(); diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java index 9d9fce59734e..26681b5ab7af 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Set; +import static com.intellij.openapi.util.text.StringUtil.*; import static com.intellij.util.containers.CollectionFactory.createSmallMemoryFootprintSet; public final class UserDictionary implements EditableDictionary { @@ -37,7 +38,9 @@ public final class UserDictionary implements EditableDictionary { @Override public @Nullable Boolean contains(@NotNull String word) { - return words.contains(word) ? true : null; + if (words.contains(word)) return true; + if (isUpperCase(word) || isCapitalized(word)) return words.contains(toLowerCase(word)) ? true : null; + return null; } @Override