String-Manipulation statt ASTRewrite in CodeGenerationTools #52
Labels
No labels
bug
build
enhancement
headless
P1-critical
P2-high
P3-medium
P4-low
refactoring
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-tools/jdt-mcp-server#52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
CodeGenerationToolsmanipuliert Java-Sourcecode direkt als String statt ASTRewrite zu verwenden. Das verletzt AST-001 (keine direkte String-Manipulation).Betroffene Methoden
addMethod()(Zeile ~200) —source.lastIndexOf('}')trifft falsche Stelle bei inneren KlassenaddField()(~364) — gleiche ProblematikaddImplementsClause()(~658) — 75-Zeilen-Parser für Java-Syntax, fragil bei@Annotations,sealed,permitsgenerateMissingMethods()(~737) —Signature.toString()liefert JDT-interne SignaturstringsZusätzlich
addMethod/addFieldnutzencu.getBuffer().setContents()ohne Working Copy (verletzt AST-004).ConvertToLambdaRefactoringundImportOrganizermachen es richtig mitbecomeWorkingCopy/commitWorkingCopy.Lösung
ASTRewrite mit
ListRewrite.insertLast()und Working-Copy-Pattern verwenden.Gefunden von
Vogel (kritischster Befund)