最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

neovim - lua_ls not working when opening .lua file from startup - Stack Overflow

programmeradmin0浏览0评论

The lua-language-server not started while opening a .lua file from startup using nvim a.lua. :LspInfo showing 0 client(s) attached to this buffer.

But it works when switching to another .lua file: :e b.lua.

Only lua_ls with this problem. Other lsp servers (gopls, jsonls, bashls, pylsp) works well.

I use lazy.nvim and mason. Here's my lsp config. I can't figure it out. Anyone have any idea?

lua/plugins/lsp.lua:

return {
    {
        'neovim/nvim-lspconfig',
        dependencies = {
            "williamboman/mason.nvim",
            "williamboman/mason-lspconfig.nvim",
            'hrsh7th/cmp-nvim-lsp',
        },
        priority = 900,
        config = function()
            require("mason").setup()
            require("mason-lspconfig").setup({
                ensure_installed = {
                    "gopls",
                    "lua_ls",
                    "html",
                    "jsonls",
                    "yamlls",
                    "pylsp",
                    "bashls",
                    "clangd",
                    "ts_ls",
                    "volar",
                }
            })

            -- Set up lspconfig.
            -- Enable each lsp servers.
            local capabilities = require('cmp_nvim_lsp').default_capabilities()
            -- go
            require('lspconfig')['gopls'].setup({
                capabilities = capabilities
            })
            -- lua
            require('lspconfig')['lua_ls'].setup({
                capabilities = capabilities
            })
            -- html
            require('lspconfig')['html'].setup({
                capabilities = capabilities
            })
            -- json
            require('lspconfig')['jsonls'].setup({
                capabilities = capabilities
            })
            -- yaml
            require('lspconfig')['yamlls'].setup({
                capabilities = capabilities
            })
            -- python
            require('lspconfig')['pylsp'].setup({
                capabilities = capabilities,
                settings = {
                    pylsp = {
                        plugins = {
                            pycodestyle = {
                                ignore = { 'E501' },
                            }
                        }
                    }
                }
            })
            -- bash
            require('lspconfig')['bashls'].setup({
                capabilities = capabilities
            })
            -- clang
            require('lspconfig')['clangd'].setup({
                capabilities = capabilities,
                filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' },
            })
            -- typescript
            require('lspconfig')['ts_ls'].setup({
                capabilities = capabilities,
                init_options = {
                    plugins = {
                        {
                            name = "@vue/typescript-plugin",
                            location = "/opt/homebrew/lib/node_modules/@vue/typescript-plugin",
                            languages = { "javascript", "typescript", "vue" },
                        },
                    },
                },
                filetypes = {
                    "javascript",
                    "typescript",
                    "vue",
                },
            })
            -- volar (for vue)
            require('lspconfig')['volar'].setup({
                capabilities = capabilities
            })

            -- Keymap for lsp
            local vim = vim
            local keyset = vim.keymap.set
            keyset("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", { silent = true })
            keyset("n", "<leader>f", "<cmd>lua vim.lsp.buf.format()<CR>", { silent = true })

            -- Auto format for golang.
            vim.api.nvim_create_autocmd('BufWritePre', {
                pattern = '*.go',
                callback = function()
                    vim.api.nvim_command('lua vim.lsp.buf.format()')
                end,
                desc = 'format on save for Go files',
            })
        end
    }
}

:LspInfo output:

lspconfig: require("lspconfig.health").check()

LSP configs active in this session (globally) ~
- Configured servers: clangd, bashls, volar, yamlls, jsonls, lua_ls, gopls, pylsp, html, ts_ls
- OK Deprecated servers: (none)

LSP configs active in this buffer (bufnr: 1) ~
- Language client log: ~/.local/state/nvim/lsp.log
- Detected filetype: `lua`
- 0 client(s) attached to this buffer
- Other clients that match the "lua" filetype:
- Config: lua_ls
  filetypes:         lua
  cmd:               ~/.local/share/nvim/mason/bin/lua-language-server
  version:           `3.13.6`
  executable:        true
  autostart:         true
  root directory:    ~/.config/nvim/
发布评论

评论列表(0)

  1. 暂无评论