mirror of
https://github.com/lukaszraczylo/filepuff-mcp.git
synced 2026-10-14 05:30:19 +00:00
perf(lsp): emit workspace-relative paths in definition/references
lsp_query printed absolute paths from URIToFile (e.g. the full /Users/.../internal/... prefix repeated per result) while file_search and the AST summary already relativize. On a find_references across many files that ~60-char root prefix repeats per file group — wasted tokens for the LLM consumer. Extract a Server.relPath helper (dedups the AST summary's inline block) and apply it to definition and references display paths; the absolute path is kept where the file is actually re-read for previews. Adds a relPath unit test (in-workspace relativized, out-of-workspace unchanged).
This commit is contained in:
@@ -213,6 +213,20 @@ func TestASTQuerySkipsDependencyDirs(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestRelPath verifies workspace-relative display paths (token saving) with a
|
||||
// safe fallback to the original path for anything outside the root.
|
||||
func TestRelPath(t *testing.T) {
|
||||
srv, tmpDir := newFeaturesServer(t)
|
||||
if got := srv.relPath(filepath.Join(tmpDir, "pkg", "a.go")); got != filepath.Join("pkg", "a.go") {
|
||||
t.Errorf("in-workspace path should be relativized, got %q", got)
|
||||
}
|
||||
// Outside the workspace root → returned unchanged (never a ../ escape string).
|
||||
outside := "/definitely/outside/x.go"
|
||||
if got := srv.relPath(outside); got != outside {
|
||||
t.Errorf("out-of-workspace path should be returned as-is, got %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Feature 3 (ast_query): pagination cursor ----
|
||||
|
||||
// TestASTQueryFirstPageCursor is a strict regression guard: page 1 must emit a
|
||||
|
||||
Reference in New Issue
Block a user