MCP HubMCP Hub
Retour aux compétences

lsp-edit-symbol

blackwell-systems
Mis à jour 6 days ago
53
2
53
Voir sur GitHub
Autregeneral

À propos

Cette Skill Claude permet de modifier les symboles de code (fonctions, types, variables) par leur nom seul, sans nécessiter leurs chemins de fichiers ou leurs positions exactes. Elle résout automatiquement la définition du symbole, récupère son étendue complète et applique votre modification. Utilisez-la lorsque vous souhaitez changer le corps ou la signature d'un symbole mais ne connaissez que son nom.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add blackwell-systems/agent-lsp -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/blackwell-systems/agent-lsp
Git CloneAlternatif
git clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-edit-symbol

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

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

SituationApproach
Replacing full bodyreplace_symbol_body (primary path)
Changing signature onlyStep 1 + apply_edit with one-line old_text
Symbol name ambiguousUse find_symbol query + container name filter
Server lacks document symbolsFallback path (Step 2b + 3b)
After editRun get_diagnostics to verify no errors introduced

Notes

  • replace_symbol_body is the preferred path for full-body replacements. It handles symbol resolution and range calculation internally.
  • find_symbol returns declaration sites, not all references. The first non-test result is usually the definition.
  • Positions in list_symbols are 1-based (shifted from LSP convention). apply_edit workspace_edit expects 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-rename instead; it updates all call sites.

Dépôt GitHub

blackwell-systems/agent-lsp
Chemin: skills/lsp-edit-symbol
0
agentskillsai-agentsai-toolingclaudeclaude-codecode-intelligence

Compétences associées

llamaguard

Autre

LlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.

Voir la compétence

cost-optimization

Autre

Cette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.

Voir la compétence

quantizing-models-bitsandbytes

Autre

Cette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.

Voir la compétence

dispatching-parallel-agents

Autre

Cette compétence Claude déploie plusieurs agents pour enquêter et résoudre simultanément 3 problèmes indépendants ou plus. Elle est conçue pour des scénarios impliquant des défaillances non liées qui peuvent être résolues sans état partagé ni dépendances. La capacité fondamentale est la résolution de problèmes en parallèle, en assignant un agent par domaine problématique indépendant afin de maximiser l'efficacité.

Voir la compétence