{"record":{"id":"be474ff0f16b1cc0","repo":"JetBrains/intellij-community","slug":"not-a-valid-java-identifier-part-in-prefix-0","errorCode":null,"errorMessage":"Not a valid java identifier part in prefix '{0}'","messagePattern":"Not a valid java identifier part in prefix '(.+?)'","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"warning","filePath":"java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java","lineNumber":569,"sourceCode":"    javaSettings.REPLACE_SUM = myReplaceSumCb.isSelected();\n\n\n    myCommenterForm.apply(settings);\n    javaSettings.setRepeatAnnotations(myRepeatAnnotationsModel.getItems());\n\n    for (Project project : ProjectManager.getInstance().getOpenProjects()) {\n      DaemonCodeAnalyzer.getInstance(project).settingsChanged();\n    }\n  }\n\n  private static String setPrefixSuffix(String text, boolean prefix) throws ConfigurationException {\n    text = text.trim();\n    if (text.isEmpty()) return text;\n    if (!StringUtil.isJavaIdentifier(text)) {\n      final @Nls String message = JavaBundle.message(prefix\n                                                     ? \"code.style.generation.settings.error.not.valid.identifier.part.in.prefix\"\n                                                     : \"code.style.generation.settings.error.not.valid.identifier.part.in.suffix\", text);\n      throw new ConfigurationException(message);\n    }\n    return text;\n  }\n\n  @Override\n  public void apply() throws ConfigurationException {\n    apply(mySettings);\n  }\n\n  public boolean isModified(CodeStyleSettings settings) {\n    JavaCodeStyleSettings javaSettings = settings.getCustomSettings(JavaCodeStyleSettings.class);\n    boolean isModified = isCheckboxModified(myCbPreferLongerNames, javaSettings.PREFER_LONGER_NAMES);\n\n    isModified |= isFieldModified(myFieldPrefixField, javaSettings.FIELD_NAME_PREFIX);\n    isModified |= isFieldModified(myStaticFieldPrefixField, javaSettings.STATIC_FIELD_NAME_PREFIX);\n    isModified |= isFieldModified(myParameterPrefixField, javaSettings.PARAMETER_NAME_PREFIX);\n    isModified |= isFieldModified(myLocalVariablePrefixField, javaSettings.LOCAL_VARIABLE_NAME_PREFIX);\n    isModified |= isFieldModified(mySubclassPrefix, javaSettings.SUBCLASS_NAME_PREFIX);","sourceCodeStart":551,"sourceCodeEnd":587,"githubUrl":"https://github.com/JetBrains/intellij-community/blob/be881553f2a76ac8b4ea53950d93f0de78295c19/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java#L551-L587","documentation":"setPrefixSuffix in the Java code-style generation settings validates the 'Name prefix'/'Name suffix' fields: after trimming, a non-empty value must be a full Java identifier (StringUtil.isJavaIdentifier). If it is not, a ConfigurationException is thrown with this message, so the Settings dialog reports the field in error and refuses to apply. The prefix/suffix is spliced into generated identifiers (e.g. 'my' prefix -> 'myField'), hence the identifier constraint.","triggerScenarios":"Typing a non-identifier value such as 'my.', 'a-b', '1x', or 'get()' into Settings | Editor | Code Style | Java | Code Generation name prefix/suffix fields and pressing Apply/OK.","commonSituations":"Trying to use a dotted or hyphenated prefix; pasting text with trailing punctuation; attempting to simulate a full naming scheme (e.g. 'mFoo') that is not a bare identifier.","solutions":["Enter only characters legal in a Java identifier: letters, digits (not first), '$' and '_' — e.g. 'my' or 'm'.","Clear the field entirely if you do not want a prefix/suffix (empty is accepted after trim).","Remember the value is prepended/appended verbatim to generated member names, so keep it a plain identifier fragment."],"exampleFix":"// before (Settings input, rejected)\nname prefix: \"my.\"\n\n// after\nname prefix: \"my\"","handlingStrategy":"validation","validationCode":"// Before calling apply() programmatically or writing settings:\nString prefix = myPrefixField.getText().trim();\nif (!prefix.isEmpty() && !com.intellij.openapi.util.text.StringUtil.isJavaIdentifier(prefix)) {\n  Messages.showErrorDialog(\"Name prefix must be a valid Java identifier\", \"Invalid Input\");\n  return;\n}","typeGuard":null,"tryCatchPattern":"try { configurable.apply(); } catch (ConfigurationException e) { Messages.showErrorDialog(e.getMessage(), \"Cannot Apply\"); }","preventionTips":["Only letters, digits (not first), '_' and '$' in prefix/suffix fields","Trim input before validating; empty is allowed","Avoid dots/hyphen — they are never legal in generated identifiers"],"tags":["settings","java","identifier","validation","ui"],"backgroundTag":null,"analyzedSha":"be881553f2a76ac8b4ea53950d93f0de78295c19","analyzedAt":"2026-08-14T14:13:06.425Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}