From 77c054a6541a67fd429df4d5d07f685e5ae4ff25 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 29 Oct 2015 04:45:44 +0300 Subject: [PATCH] pluralize: matrix, index, medium --- .../com/intellij/openapi/util/text/StringUtil.java | 12 +++++++++++- .../com/intellij/util/text/StringUtilTest.java | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index d9530fc124a8..120b26e8deba 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -795,11 +795,21 @@ public class StringUtil extends StringUtilRt { return suggestion; } + int len = suggestion.length(); + if (endsWithIgnoreCase(suggestion, "ex") || endsWithIgnoreCase(suggestion, "ix")) { + return suggestion.substring(0, len - 2) + "ices"; + } + if (endsWithIgnoreCase(suggestion, "um")) { + return suggestion.substring(0, len - 2) + "a"; + } + if (endsWithIgnoreCase(suggestion, "an")) { + return suggestion.substring(0, len - 2) + "en"; + } + if (endsWithIgnoreCase(suggestion, "s") || endsWithIgnoreCase(suggestion, "x") || endsWithIgnoreCase(suggestion, "ch")) { return suggestion + "es"; } - int len = suggestion.length(); if (endsWithIgnoreCase(suggestion, "y") && len > 1 && !isVowel(toLowerCase(suggestion.charAt(len - 2)))) { return suggestion.substring(0, len - 1) + "ies"; } diff --git a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java index 1bd1353604f2..b9b3f6fa08a6 100644 --- a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java +++ b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java @@ -87,6 +87,10 @@ public class StringUtilTest { public void testPluralize() { assertEquals("values", StringUtil.pluralize("value")); assertEquals("values", StringUtil.pluralize("values")); + assertEquals("indices", StringUtil.pluralize("index")); + assertEquals("matrices", StringUtil.pluralize("matrix")); + assertEquals("men", StringUtil.pluralize("man")); + assertEquals("media", StringUtil.pluralize("medium")); } @Test