From 766ebf84062f8f96e698e7ed47adebe8d60a32e6 Mon Sep 17 00:00:00 2001 From: JINNOUCHI Yasushi Date: Thu, 23 Apr 2026 23:25:23 +0900 Subject: [PATCH] feat: ctags_lsp #4399 --- lsp/ctags_lsp.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lsp/ctags_lsp.lua diff --git a/lsp/ctags_lsp.lua b/lsp/ctags_lsp.lua new file mode 100644 index 00000000..07c65a61 --- /dev/null +++ b/lsp/ctags_lsp.lua @@ -0,0 +1,28 @@ +---@brief +--- +--- https://github.com/netmute/ctags-lsp +--- +--- A simple LSP server wrapping universal-ctags. Provides completion, +--- go-to-definition, and document/workspace symbols. Useful as a generic +--- symbol provider for languages without a dedicated language server, or +--- as a fallback alongside other LSPs. +--- +--- Requires `universal-ctags` to be installed and available in `$PATH`. +--- Pre-built binaries are at https://github.com/netmute/ctags-lsp/releases +--- (Homebrew: `brew install netmute/tap/ctags-lsp`). +--- +--- The server is generic and does not declare default `filetypes`. Configure +--- the languages you want it to attach to: +--- +--- ```lua +--- vim.lsp.config('ctags_lsp', { +--- filetypes = { 'lua', 'ruby', 'go' }, +--- }) +--- vim.lsp.enable('ctags_lsp') +--- ``` + +---@type vim.lsp.Config +return { + cmd = { 'ctags-lsp' }, + root_markers = { 'tags', '.tags', '.git' }, +}