lsp-extract-function

Solid

Extract a selected code block into a named function. Primary path uses the language server's extract-function code action; falls back to manual extraction when no code action is available. Validates captured variables, scope shadowing, and compilation after extraction.

AI & Automation 56 stars 2 forks Updated today MIT

Install

View on GitHub

Quality Score: 91/100

Stars 20%
58
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

> Requires the agent-lsp MCP server. # lsp-extract-function: Extract Code Block into a Named Function **This skill RESTRUCTURES existing code** — it takes code that already exists and moves it into a new function. This is distinct from `/lsp-generate`, which creates NEW code that does not yet exist (stubs, mocks, interface implementations). Use this skill when the code is already written; use `/lsp-generate` when you need to generate code from scratch. **Invocation:** User provides `file_path` (absolute path), `start_line` and `end_line` (1-indexed range), and `new_function_name` (desired name for the extracted function). --- ## Prerequisites If LSP is not yet initialized, call `mcp__lsp__start_lsp` with the workspace root first. Auto-inference applies when file paths are provided, but an explicit start is required when switching workspaces. --- ## Step 1 — Get context (document symbols) Call `mcp__lsp__open_document` to open the file, then call `mcp__lsp__list_symbols` to understand the containing function and scope: ``` mcp__lsp__open_document({ "file_path": "<file_path>" }) mcp__lsp__list_symbols({ "file_path": "<file_path>" }) ``` This establishes: - Which function contains the selection - Whether `new_function_name` already exists in the file (name collision check) **Mandatory name collision check:** If `new_function_name` already exists as a symbol in the document symbols list, report the conflict and stop immediately: > Cannot extract: function `new_functi...

Details

Author
blackwell-systems
Repository
blackwell-systems/agent-lsp
Created
2 months ago
Last Updated
today
Language
Go
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category