public static @NotNull List<String> getSuggestionsByName(@NotNull String name,
                                                           @NotNull String prefix,
                                                           @NotNull String suffix,
                                                           boolean upperCaseStyle,
                                                           boolean preferLongerNames,
                                                           boolean isArray) {
    ArrayList<String> answer = new ArrayList<>();
    String[] words = NameUtilCore.nameToWords(name);

    for (int step = 0; step < words.length; step++) {
      int wordCount = preferLongerNames ? words.length - step : step + 1;

      String startWord = words[words.length - wordCount];
      char c = startWord.charAt(0);
      if( c == '_' || !Character.isJavaIdentifierStart( c ) )
      {
        continue;
      }

      answer.add(compoundSuggestion(prefix, upperCaseStyle, words, wordCount, startWord, c, isArray, true) + suffix);
      answer.add(compoundSuggestion(prefix, upperCaseStyle, words, wordCount, startWord, c, isArray, false) + suffix);
    }
    return answer;
  }
public static @NotNull List<String> getSuggestionsByName(@NotNull String name,
                                                           @NotNull String prefix,
                                                           @NotNull String suffix,
                                                           boolean upperCaseStyle,
                                                           boolean preferLongerNames,
                                                           boolean isArray)