Ergonomie-Befunde aus dem arknet-Test (Paging, Scope, Signaturen, Zeilennummern, Preview, Import-Order) #86
Labels
No labels
bug
build
enhancement
headless
P1-critical
P2-high
P3-medium
P4-low
refactoring
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-tools/jdt-mcp-server#86
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?
Sammel-Issue aus dem Test gegen arknet (27 Module, 1682 Java-Dateien, Java 25) am 2026-09-07. Keine Blocker, aber jeder Punkt macht ein Tool im Alltag unbrauchbar oder unhandlich. Bei Bedarf in Einzel-Issues aufteilen.
1. Kein Limit/Paging bei großen Antworten
jdt_find_references(CLASS) aufde.hauschel.arknet.kernel.ProjectId: 1900 Treffer, 422k Zeichen.jdt_get_compilation_errorsaufarknet-mcp: 267 Warnungen, 73k Zeichen.Beides sprengt das Tool-Result-Limit des MCP-Clients.
Vorschlag:
limit/offsetmit Default (z.B. 200) plustotalCountundtruncated: true; alternativ Gruppierung je Datei. Fürget_compilation_errorszusätzlichseverity-Filter (Default ERROR-only).2.
jdt_find_typeliefert JDK-Interna und Library-Typen*Repository→ 88 Treffer, darunterjdk.jfr.internal,sun.reflect.generics,com.sun.jmx, rdf4j, Spring. Ursache:NavigationToolsnutztSearchEngine.createWorkspaceScope()(inkl. JRE + Libraries).Vorschlag: Parameter
sourceOnly(Defaulttrue) →createJavaSearchScope(projects, IJavaSearchScope.SOURCES); Treffer mitorigin: SOURCE|LIBRARY|JREkennzeichnen.3. Signaturen in JDT-Binärnotation
jdt_get_method_signature/jdt_parse_java_fileliefern"QAdrRepository;"und"(QProjectId;QAdrCode;)V".CodeAnalysisToolsgibtIMethod.getSignature()roh aus,CodeGenerationToolsnutzt bereitsSignature.toString(...)— inkonsistent.Vorschlag: überall
Signature.toString()/getSimpleName(); Rohform höchstens alsrawSignature.4.
find_references/find_callersohne Zeilennummer, Lambda-Aufrufer anonymTreffer enthalten nur
offset/length. Aufrufer in Lambdas erscheinen alsAdrServiceTest$1#executestatt der umgebenden Testmethode.Vorschlag:
lineviaDocument.getLineOfOffsetbzw.CompilationUnit.getLineNumberergänzen, dazu einsnippet; bei anonymen/Lambda-Typen zum umgebendenIMethodhochlaufen und alsenclosingMethodausgeben.5.
jdt_rename_elementpreview liefert Outline statt Diff; falsches "name already exists"preview=truegibt viaRefactoringSupport.describeChange()die Datei-Outline zurück. Vorschlag:TextEditBasedChange.getPreviewContent()gegengetCurrentContent()diffen, Unified-Diff ausgeben.AdrService#skippedCount→countSkippedwird mit "This name already exists" abgelehnt, obwohlcountSkippednirgends im Repo vorkommt. Die Methode implementiert das In-Port-InterfaceCountSkippedAdrs. Möglicher Zusammenhang mit #29 (Virtual vs Non-Virtual Processor). Fixture nötig: Interface-Methode + Implementierung, Rename an der Implementierung.6.
jdt_organize_importssortiert nach Eclipse-Default, nicht nach SpotlessEclipse-Reihenfolge (
DeprecateAdrvorDescribeAdrDisplayFallback) weicht von der Spotless-Sortierung ab → Diff-Rauschen bei jedem Aufruf.Vorschlag: Import-Order konfigurierbar (
org.eclipse.jdt.ui.importorder, Headless-Fallback fürProjectScopebeachten); optional Spotless-Config aus dempom.xmlübernehmen; mindestens dokumentieren, dass danach ein Formatter-Lauf nötig ist.Funktioniert (zur Einordnung)
Import aller 27 Module mit Java 25,
get_compilation_errors(deckt sich mit ECJ),find_type,find_implementations,get_type_hierarchy,find_callers,list_tests,find_unused_code,find_dead_code,organize_imports(inhaltlich korrekt),maven_build,maven_update_project,refresh_project,rename_elementpreview auf privater Methode.