LSP No native equivalent

rename_symbol

Cross-file type-safe rename via LSP. Understands scope, shadowing, overloads, interface implementations.

What it does

It is misleading to benchmark rename_symbol against sed as if they were equivalent tools. They are not.

A text replace can rename raw strings. rename_symbol renames a resolved symbol across the codebase with language-server awareness. That means:

  • Scope is respected
  • Unrelated same-name identifiers are not blindly touched
  • Shadowing is handled correctly
  • Cross-file references are updated as one operation

The right framing

This is not “a slightly better text replace.” It is a different class of operation.

The benchmark should be workflow-oriented: how many steps a native agent would need to identify all relevant uses and patch them safely, versus one typed rename operation.

When to use

  • API surface changes
  • Fixing naming inconsistencies
  • Safe refactors on widely-used utilities
  • Any time you’d manually Edit multiple files to rename the same symbol

Never manually Edit multiple files to rename a symbol — use rename_symbol. LSP handles imports, type refs, and re-exports.

Benchmark note

This benchmark compares CodeSift against the closest practical native workflow an agent would use for the same task. For some tools, that baseline is a direct shell equivalent such as rg or find. For AST-aware, graph-aware, and LSP-backed tools, the baseline is a multi-step workflow rather than a strictly identical command. Results should be read as agent-workflow comparisons: token cost, call count, and practical context efficiency.