@@ -122,7 +122,7 @@ public void configure(Map<String, Object> configuration) {
122122 minWordLength = Math .max (minWordLength , DEFAULT_MIN_WORD_LENGTH );
123123 }
124124
125- private Set <String > getWordsToIgnore () {
125+ private List <String > getWordsToIgnore () {
126126 var delimiter = "," ;
127127 String exceptions = SPACES_PATTERN .matcher (info .getResourceString ("diagnosticExceptions" )).replaceAll ("" );
128128 if (!userWordsToIgnore .isEmpty ()) {
@@ -134,7 +134,7 @@ private Set<String> getWordsToIgnore() {
134134 }
135135
136136 return Arrays .stream (exceptions .split (delimiter ))
137- .collect (Collectors .toSet ());
137+ .collect (Collectors .toList ());
138138 }
139139
140140 private static JLanguageTool acquireLanguageTool (String lang ) {
@@ -148,7 +148,7 @@ private static void releaseLanguageTool(String lang, JLanguageTool languageTool)
148148 private Map <String , List <Token >> getTokensMap (
149149 DocumentContext documentContext
150150 ) {
151- Set <String > wordsToIgnore = getWordsToIgnore ();
151+ List <String > wordsToIgnore = getWordsToIgnore ();
152152 Map <String , List <Token >> tokensMap = new HashMap <>();
153153
154154 Trees .findAllRuleNodes (documentContext .getAst (), rulesToFind ).stream ()
@@ -160,18 +160,12 @@ private Map<String, List<Token>> getTokensMap(
160160 String curText = QUOTE_PATTERN .matcher (token .getText ()).replaceAll ("" ).trim ();
161161 String [] camelCaseSplitWords = StringUtils .splitByCharacterTypeCamelCase (curText );
162162
163- var camelCaseSplitWordsStream = Arrays .stream (camelCaseSplitWords );
164-
165- if (caseInsensitive ) {
166- camelCaseSplitWordsStream = camelCaseSplitWordsStream
167- .distinct ()
168- .map (String ::toLowerCase );
169- }
170-
171- camelCaseSplitWordsStream
163+ Arrays .stream (camelCaseSplitWords )
172164 .filter (Predicate .not (String ::isBlank ))
173165 .filter (element -> element .length () >= minWordLength )
174- .filter (Predicate .not (wordsToIgnore ::contains ))
166+ .filter (element -> wordsToIgnore .stream ().noneMatch (word
167+ -> (caseInsensitive && word .equalsIgnoreCase (element ))
168+ || (!caseInsensitive && word .equals (element ))))
175169 .forEach (element -> tokensMap .computeIfAbsent (element , newElement -> new ArrayList <>()).add (token ));
176170 }
177171 );
0 commit comments