void (CompletionResultSet result, final CompletionParameters parameters, Set<String> excludes, boolean allowEmptyPrefix) { final Set<String> realExcludes = new HashSet<>(excludes); for (String exclude : excludes) { String[] words = exclude.split("[ .-]"); if (words.length > 0 && StringUtil.isNotEmpty(words[0])) { realExcludes.add(words[0]); } } int startOffset = parameters.getOffset(); final PsiElement position = parameters.getPosition(); final CompletionResultSet javaResultSet = result.withPrefixMatcher(CompletionUtil.findJavaIdentifierPrefix(parameters)); final CompletionResultSet plainResultSet = result.withPrefixMatcher(CompletionUtil.findAlphanumericPrefix(parameters)); consumeAllWords(position, startOffset, word -> { if (!realExcludes.contains(word)) { final LookupElement item = createWordSuggestion(word); javaResultSet.addElement(item); plainResultSet.addElement(item); } }, allowEmptyPrefix); addValuesFromOtherStringLiterals(result, parameters, realExcludes, position); }