Neovim LSP API Reference

This document contains function definitions from Neovim's LSP help docs.

4,466 stars

Best use case

Neovim LSP API Reference is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This document contains function definitions from Neovim's LSP help docs.

Teams using Neovim LSP API Reference should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vim.lsp/SKILL.md --create-dirs "https://raw.githubusercontent.com/ThePrimeagen/99/main/.agents/skills/vim.lsp/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vim.lsp/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Neovim LSP API Reference Compares

Feature / AgentNeovim LSP API ReferenceStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This document contains function definitions from Neovim's LSP help docs.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Neovim LSP API Reference

This document contains function definitions from Neovim's LSP help docs.
Use this as a reference when working with LSP in Neovim Lua.

---

## lsp

Functions extracted from `lsp.txt`.

```lua
vim.lsp.buf_attach_client({bufnr}, {client_id})
vim.lsp.buf_detach_client({bufnr}, {client_id})
vim.lsp.buf_is_attached({bufnr}, {client_id})
vim.lsp.buf_notify({bufnr}, {method}, {params})
vim.lsp.buf_request_all({bufnr}, {method}, {params}, {handler})
vim.lsp.buf_request_sync({bufnr}, {method}, {params}, {timeout_ms})
vim.lsp.client_is_stopped({client_id})
vim.lsp.config({name}, {cfg})
vim.lsp.enable({name}, {enable})
vim.lsp.foldclose({kind}, {winid})
vim.lsp.foldexpr({lnum})
vim.lsp.foldtext()
vim.lsp.formatexpr({opts})
vim.lsp.get_buffers_by_client_id({client_id})
vim.lsp.get_client_by_id({client_id})
vim.lsp.get_clients({filter})
vim.lsp.get_log_path()
vim.lsp.is_enabled({name})
vim.lsp.omnifunc({findstart}, {base})
vim.lsp.set_log_level({level})
vim.lsp.start({config}, {opts})
vim.lsp.status()
vim.lsp.stop_client({client_id}, {force})
vim.lsp.tagfunc({pattern}, {flags})
vim.lsp.buf.add_workspace_folder({workspace_folder})
vim.lsp.buf.clear_references()
vim.lsp.buf.code_action({opts})
vim.lsp.buf.declaration({opts})
vim.lsp.buf.definition({opts})
vim.lsp.buf.document_highlight()
vim.lsp.buf.document_symbol({opts})
vim.lsp.buf.format({opts})
vim.lsp.buf.hover({config})
vim.lsp.buf.implementation({opts})
vim.lsp.buf.incoming_calls()
vim.lsp.buf.list_workspace_folders()
vim.lsp.buf.outgoing_calls()
vim.lsp.buf.references({context}, {opts})
vim.lsp.buf.remove_workspace_folder({workspace_folder})
vim.lsp.buf.rename({new_name}, {opts})
vim.lsp.buf.signature_help({config})
vim.lsp.buf.type_definition({opts})
vim.lsp.buf.typehierarchy({kind})
vim.lsp.buf.workspace_symbol({query}, {opts})
vim.lsp.diagnostic.from({diagnostics})
vim.lsp.diagnostic.get_namespace({client_id}, {is_pull})
vim.lsp.diagnostic.on_diagnostic({error}, {result}, {ctx})
vim.lsp.diagnostic.on_publish_diagnostics({_}, {params}, {ctx})
vim.lsp.codelens.clear({client_id}, {bufnr})
vim.lsp.codelens.display({lenses}, {bufnr}, {client_id})
vim.lsp.codelens.get({bufnr})
vim.lsp.codelens.on_codelens({err}, {result}, {ctx})
vim.lsp.codelens.refresh({opts})
vim.lsp.codelens.run()
vim.lsp.codelens.save({lenses}, {bufnr}, {client_id})
vim.lsp.completion.enable({enable}, {client_id}, {bufnr}, {opts})
vim.lsp.completion.get({opts})
vim.lsp.inlay_hint.enable({enable}, {filter})
vim.lsp.inlay_hint.get({filter})
vim.lsp.inlay_hint.is_enabled({filter})
vim.lsp.semantic_tokens.force_refresh({bufnr})
vim.lsp.semantic_tokens.get_at_pos({bufnr}, {row}, {col})
vim.lsp.semantic_tokens.highlight_token({token}, {bufnr}, {client_id}, {hl_group}, {opts})
vim.lsp.semantic_tokens.start({bufnr}, {client_id}, {opts})
vim.lsp.semantic_tokens.stop({bufnr}, {client_id})
vim.lsp.util.apply_text_document_edit({text_document_edit}, {index}, {position_encoding})
vim.lsp.util.apply_text_edits({text_edits}, {bufnr}, {position_encoding})
vim.lsp.util.apply_workspace_edit({workspace_edit}, {position_encoding})
vim.lsp.util.buf_clear_references({bufnr})
vim.lsp.util.buf_highlight_references({bufnr}, {references}, {position_encoding})
vim.lsp.util.character_offset({buf}, {row}, {col}, {offset_encoding})
vim.lsp.util.convert_input_to_markdown_lines({input}, {contents})
vim.lsp.util.convert_signature_help_to_markdown_lines({signature_help}, {ft}, {triggers})
vim.lsp.util.get_effective_tabstop({bufnr})
vim.lsp.util.locations_to_items({locations}, {position_encoding})
vim.lsp.util.make_floating_popup_options({width}, {height}, {opts})
vim.lsp.util.make_formatting_params({options})
vim.lsp.util.make_given_range_params({start_pos}, {end_pos}, {bufnr}, {position_encoding})
vim.lsp.util.make_position_params({window}, {position_encoding})
vim.lsp.util.make_range_params({window}, {position_encoding})
vim.lsp.util.make_text_document_params({bufnr})
vim.lsp.util.make_workspace_params({added}, {removed})
vim.lsp.util.open_floating_preview({contents}, {syntax}, {opts})
vim.lsp.util.preview_location({location}, {opts})
vim.lsp.util.rename({old_fname}, {new_fname}, {opts})
vim.lsp.util.show_document({location}, {position_encoding}, {opts})
vim.lsp.util.stylize_markdown({bufnr}, {contents}, {opts})
vim.lsp.util.symbols_to_items({symbols}, {bufnr}, {position_encoding})
vim.lsp.log.get_filename()
vim.lsp.log.get_level()
vim.lsp.log.set_format_func({handle})
vim.lsp.log.set_level({level})
vim.lsp.log.should_log({level})
vim.lsp.rpc.connect({host_or_path}, {port})
vim.lsp.rpc.format_rpc_error({err})
vim.lsp.rpc.notify({method}, {params})
vim.lsp.rpc.request({method}, {params}, {callback}, {notify_reply_callback})
vim.lsp.rpc.rpc_response_error({code}, {message}, {data})
vim.lsp.rpc.start({cmd}, {dispatchers}, {extra_spawn_params})
vim.lsp.protocol.make_client_capabilities()
vim.lsp.protocol.resolve_capabilities({server_capabilities})
```

Related Skills

Neovim Treesitter API Reference

4466
from ThePrimeagen/99

This document contains type stubs and API references for Neovim's treesitter Lua API.

Neovim Diagnostics API Reference

4466
from ThePrimeagen/99

This document contains function definitions for Neovim's diagnostics Lua API.

foo

4466
from ThePrimeagen/99

No description provided.

makepad-reference

31392
from sickn33/antigravity-awesome-skills

This category provides reference materials for debugging, code quality, and advanced layout patterns.

Programming HelperClaude

reference-builder

31392
from sickn33/antigravity-awesome-skills

Creates exhaustive technical references and API documentation. Generates comprehensive parameter listings, configuration guides, and searchable reference materials.

microsoft-code-reference

28865
from github/awesome-copilot

Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs.

Top 100 Web Vulnerabilities Reference

24269
from davila7/claude-code-templates

This skill should be used when the user asks to "identify web application vulnerabilities", "explain common security flaws", "understand vulnerability categories", "learn about injection attacks", "review access control weaknesses", "analyze API security issues", "assess security misconfigurations", "understand client-side vulnerabilities", "examine mobile and IoT security flaws", or "reference the OWASP-aligned vulnerability taxonomy". Use this skill to provide comprehensive vulnerability definitions, root causes, impacts, and mitigation strategies across all major web security categories.

omc-reference

22262
from Yeachan-Heo/oh-my-claudecode

OMC agent catalog, available tools, team pipeline routing, commit protocol, and skills registry. Auto-loads when delegating to agents, using OMC tools, orchestrating teams, making commits, or invoking skills.

paper-reference-checker

3891
from openclaw/skills

This skill should be used when the user asks to "check paper citations", "verify references", "detect fake citations", "validate bibliography", "check if papers exist", "查文献真伪", "检查论文引用", "验证参考文献", "识别虚假引用", or uploads a PDF/Overleaf document and wants to verify whether the cited papers genuinely exist. Provides systematic verification of academic references against Google Scholar, CNKI, arXiv, and other academic databases to detect AI-hallucinated or fabricated citations.

reference-style-sync

3891
from openclaw/skills

One-click synchronization and standardization of reference formats in literature management tools, intelligently fixing metadata errors.

VB.NET CODING AGENT SKILL REFERENCE

3891
from openclaw/skills

**Target**: Claude-Code, Codex, AI coding agents

figure-reference-checker

3891
from openclaw/skills

Check figure references in manuscripts