lsp-edit-symbol
О программе
Этот навык Claude позволяет редактировать символы кода (функции, типы, переменные) только по их имени, без необходимости указывать пути к файлам или точные позиции. Он автоматически находит определение символа, извлекает его полный диапазон и применяет ваши изменения. Используйте его, когда вам нужно изменить тело или сигнатуру символа, но известно только его имя.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add blackwell-systems/agent-lsp -a claude-code/plugin add https://github.com/blackwell-systems/agent-lspgit clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-edit-symbolСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
lsp-edit-symbol
Edit a named symbol (function, type, variable) without needing its exact file path
or line/column. Primary path uses replace_symbol_body for direct symbol replacement.
Falls back to find_symbol + list_symbols + apply_edit when
the server does not support document symbols well.
Workflow
Step 1 — Locate the file
{ "tool": "find_symbol", "query": "MyFunc" }
Returns a list of matching symbols with file URI and position. Pick the definition (not a test file, not a stub). If multiple matches, use the container name or file path to disambiguate.
Step 2 — Replace the symbol body (primary path)
Use replace_symbol_body to replace the entire function/method/type body by name:
{
"tool": "replace_symbol_body",
"file_path": "/path/to/file.go",
"symbol_path": "MyFunc",
"new_body": "func MyFunc() error {\n\treturn nil\n}"
}
For methods, use dot notation: "MyStruct.Method".
This resolves the symbol by name within the file, finds its full range, and replaces it atomically. No position math required.
If replace_symbol_body fails (e.g., the server cannot resolve document symbols
for this file), fall back to the manual path below.
Fallback — Manual resolution via document symbols
Step 2b — Get the full range:
{
"tool": "list_symbols",
"file_path": "/path/to/file.go",
"language_id": "go"
}
Find MyFunc in the returned tree. The range field covers the entire symbol
including its body; selectionRange covers only the name.
Step 3b — Apply the edit:
Option A (text-match, recommended when you have the old text):
{
"tool": "apply_edit",
"file_path": "/path/to/file.go",
"old_text": "func MyFunc() {",
"new_text": "func MyFunc() error {"
}
Option B (positional, when you have the exact range):
{
"tool": "apply_edit",
"workspace_edit": {
"changes": {
"file:///path/to/file.go": [{
"range": { "start": {"line": 12, "character": 0}, "end": {"line": 18, "character": 1} },
"newText": "func MyFunc() error {\n\treturn nil\n}"
}]
}
}
}
Decision guide
| Situation | Approach |
|---|---|
| Replacing full body | replace_symbol_body (primary path) |
| Changing signature only | Step 1 + apply_edit with one-line old_text |
| Symbol name ambiguous | Use find_symbol query + container name filter |
| Server lacks document symbols | Fallback path (Step 2b + 3b) |
| After edit | Run get_diagnostics to verify no errors introduced |
Notes
replace_symbol_bodyis the preferred path for full-body replacements. It handles symbol resolution and range calculation internally.find_symbolreturns declaration sites, not all references. The first non-test result is usually the definition.- Positions in
list_symbolsare 1-based (shifted from LSP convention).apply_editworkspace_editexpects 0-based; subtract 1 when using positional mode (Option B). Text-match mode (Option A) requires no position math. - For renames (not edits), use
/lsp-renameinstead; it updates all call sites.
GitHub репозиторий
Похожие навыки
llamaguard
ДругоеLlamaGuard — это модель от Meta с 7–8 миллиардами параметров для модерации входных и выходных данных больших языковых моделей по шести категориям безопасности, таким как насилие и разжигание ненависти. Она обеспечивает точность 94–95% и может быть развернута с помощью vLLM, Hugging Face или Amazon SageMaker. Используйте этот навык, чтобы легко интегрировать фильтрацию контента и защитные механизмы в ваши ИИ-приложения.
cost-optimization
ДругоеЭтот навык Claude помогает разработчикам оптимизировать облачные расходы за счет правильного подбора ресурсов, стратегий тегирования и анализа затрат. Он предоставляет framework для сокращения облачных расходов и внедрения управления затратами в AWS, Azure и GCP. Используйте его, когда вам нужно проанализировать расходы на инфраструктуру, оптимизировать ресурсы или уложиться в бюджетные ограничения.
quantizing-models-bitsandbytes
ДругоеЭтот навык выполняет квантизацию LLM до 8-битной или 4-битной точности с использованием библиотеки bitsandbytes, обеспечивая сокращение использования памяти на 50-75% при минимальной потере точности. Он идеально подходит для запуска больших моделей при ограниченной памяти GPU или для ускорения вывода, поддерживая форматы INT8, NF4 и FP4. Навык интегрируется с HuggingFace Transformers и позволяет использовать обучение QLoRA и 8-битные оптимизаторы.
dispatching-parallel-agents
ДругоеЭтот навык Claude распределяет нескольких агентов для исследования и устранения трёх и более независимых проблем параллельно. Он предназначен для сценариев с несвязанными сбоями, которые можно устранить без общего состояния или зависимостей. Ключевая возможность — параллельное решение проблем, где за каждую независимую предметную область назначается отдельный агент для максимальной эффективности.
