From 901c7bad2cd6ddc0564778da08de5cbbfec4a892 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Tue, 14 Mar 2017 15:37:57 +0300 Subject: [PATCH] allow reasonable amount of capitalized words --- .../capitalization/TitleCapitalizationInspection.java | 5 +++-- .../com/intellij/codeInspection/CapitalizationTest.java | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/capitalization/TitleCapitalizationInspection.java b/plugins/java-i18n/src/com/intellij/codeInspection/capitalization/TitleCapitalizationInspection.java index 6788344f3bcf..8ab66fccf5a1 100644 --- a/plugins/java-i18n/src/com/intellij/codeInspection/capitalization/TitleCapitalizationInspection.java +++ b/plugins/java-i18n/src/com/intellij/codeInspection/capitalization/TitleCapitalizationInspection.java @@ -191,16 +191,17 @@ public class TitleCapitalizationInspection extends BaseJavaLocalInspectionTool { List words = StringUtil.split(value, " "); if (words.size() == 0) return true; if (Character.isLetter(words.get(0).charAt(0)) && !isCapitalizedWord(words.get(0))) return false; + int capitalized = 1; for (int i = 1, size = words.size(); i < size; i++) { String word = words.get(i); if (isCapitalizedWord(word)) { // check for abbreviations like SQL or I18n if (word.length() == 1 || !Character.isLowerCase(word.charAt(1))) continue; - return false; + capitalized++; } } - return true; + return capitalized / words.size() < 0.2; // allow reasonable amount of capitalized words } private static boolean isCapitalizedWord(String word) { diff --git a/plugins/java-i18n/testSrc/com/intellij/codeInspection/CapitalizationTest.java b/plugins/java-i18n/testSrc/com/intellij/codeInspection/CapitalizationTest.java index c3ff40e2e06c..97fae74f7cc9 100644 --- a/plugins/java-i18n/testSrc/com/intellij/codeInspection/CapitalizationTest.java +++ b/plugins/java-i18n/testSrc/com/intellij/codeInspection/CapitalizationTest.java @@ -28,5 +28,7 @@ public class CapitalizationTest extends TestCase { assertTrue(TitleCapitalizationInspection.checkCapitalization("@charset is invalid", Nls.Capitalization.Sentence)); assertTrue(TitleCapitalizationInspection.checkCapitalization("Add 'this' qualifier", Nls.Capitalization.Sentence)); assertTrue(TitleCapitalizationInspection.checkCapitalization("Add 'this' qualifier", Nls.Capitalization.Sentence)); + assertTrue(TitleCapitalizationInspection.checkCapitalization("Please select the configuration file (usually named IntelliLang.xml) to import.", Nls.Capitalization.Sentence)); + assertFalse(TitleCapitalizationInspection.checkCapitalization("Foo Bar", Nls.Capitalization.Sentence)); } }