What language-server tools tell the agent
| Tool | Useful question | Limit |
|---|---|---|
| Definition | Where is this symbol implemented? | Resolution depends on project and server configuration. |
| References | Which callers could this change affect? | Dynamic usages and other repositories may not appear. |
| Hover | What type or documentation does this symbol have? | This describes the server's current view, not runtime behavior. |
| Diagnostics | What errors or warnings does the server report? | A clean result is not proof that tests pass. |
| Document symbols | What declarations are in this file? | Results reflect the language server's supported syntax. |
| Workspace symbols | Where is a named declaration in this project? | Indexing scope and server readiness affect results. |
Trace a change before editing
For a refactor, start at the public symbol. Find the definition, inspect the relevant references, and read the surrounding implementations. Then make a narrow change and check both language-server diagnostics and the project's own compiler and tests.
Text search is still useful for string keys, configuration files, templates, and code the language server cannot resolve. Semantic tools and repository search answer different questions; combine them instead of assuming either one finds every dependency.
Before changing calculateTotal, find its definition and callers.
Explain which inputs are optional, inspect nearby tests, and
identify the compatibility constraints. After the change,
check diagnostics and run the relevant test command.A working server is a prerequisite
Language-server requests require a server configured and running for the language and workspace. Dependencies, project files, and a completed index can affect the answers. An unsupported language or unavailable server should be reported as a limitation; ordinary search and reading remain available.
Do not interpret an empty references result as proof that a symbol is unused. Check exports, runtime loading, templates, and downstream consumers before deleting a public API. Likewise, re-run the compiler and tests instead of treating editor diagnostics as a substitute.
Target context without claiming a token benchmark
Definitions and focused references can help an agent read the relevant portion of a repository. That is a practical way to narrow an investigation. LoopCode has not published a controlled accuracy or token-savings benchmark on this page, so no percentage improvement is claimed.
To evaluate efficiency, use the same repository snapshot, task, model configuration, and success criteria across runs. Record tool calls, input and output usage, elapsed time, and whether the same tests pass. Publish the method alongside any results.
KEEP GOING
A useful next step.
Put it to work in your project.
Desktop, CLI, and VS Code. One LoopCode account. Free to start.