fix: support Unicode identifiers in Java class name validation (#789)#993
Merged
wenytang-ms merged 5 commits intomainfrom Apr 23, 2026
Merged
fix: support Unicode identifiers in Java class name validation (#789)#993wenytang-ms merged 5 commits intomainfrom
wenytang-ms merged 5 commits intomainfrom
Conversation
Change isJavaIdentifier() regex from ASCII-only /^([a-zA-Z_$][a-zA-Z\d_$]*)$/ to Unicode-aware regex using ES2018 property escapes per JLS §3.8. This allows non-ASCII identifiers (e.g., Japanese ほげ, Chinese 中文类名, accented Ñoño) to be accepted in the New Java File and Rename wizards. Fixes #789 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
The .project file defined name '1.helloworld' but JDT LS may override it with the folder name 'simple'. Align .project name with folder name to eliminate the inconsistency. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JDT LS may return additional source roots (e.g. target/generated-sources) that shift node indices. Replace hardcoded array indices with find()-by-name lookups to make tests resilient to JDT LS version differences. - Maven: find containers by name instead of [2]/[3] - Maven: check specific nodes hidden instead of exact count - Gradle: find nodes by name, increase timeout to 120s - Multi-module: add assertion guard before getChildren() Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Upgrade actions/checkout@v2 -> @v4, actions/setup-java@v1 -> @v4, actions/setup-node@v2 -> @v4 across all 3 CI workflows - setup-java@v4 with distribution: temurin fixes macOS ARM64 JAVA_HOME - Multi-module test: add languageServerApiManager.ready() to suiteSetup so Maven module names are fully resolved before assertions - Accept folder name or .project name variants for level1 submodule Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chagong
approved these changes
Apr 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Change isJavaIdentifier() regex from ASCII-only /^([a-zA-Z_$][a-zA-Z\d_$]*)$/ to Unicode-aware regex using ES2018 property escapes per JLS §3.8.
This allows non-ASCII identifiers (e.g., Japanese ほげ, Chinese 中文类名, accented Ñoño) to be accepted in the New Java File and Rename wizards.
Fixes #789