Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 1.92 KB

README.md

File metadata and controls

66 lines (45 loc) · 1.92 KB

LSP for Hydra config files

Test Workflow PyPi Version

Hydra LSP

Installation

  1. Using pypi: pip install hydra-lsp

  2. Using poetry: poetry install

Features

  1. Ignore certain lines - if you do not want to perform diagnostics on specific line, then add # hydra: skip to the end of that line

How to use

To try it out, use the following code snippet in neovim.

Note: If you are VS Code user - check out the extension.

local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")

local on_attach = function(client, bufnr)
    local nmap = function(keys, func, desc)
        desc = "LSP: " .. desc
        vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc, noremap = true })
    end

    nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
    nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
    nmap("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
    nmap("gI", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
    nmap("K", vim.lsp.buf.hover, "Hover Documentation")
    nmap("<C-k>", vim.lsp.buf.signature_help, "Signature Documentation")

    nmap("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
    nmap("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction")
end

if not configs.hydralsp then
    configs.hydralsp = {
        default_config = {
            cmd = { "hydra-lsp" },
            root_dir = lspconfig.util.root_pattern(".git"),
            filetypes = { "yaml" },
        },
    }
end

lspconfig.hydralsp.setup({
    on_attach = lsp.on_attach,
})

Note: make sure to install hydra-lsp so that nvim can find an executable (poetry install)