Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

High memory usage in Nvim with mason, mason-lspconfig, nvim-lspconfig #48

Copy link
Copy link
@sh-cau

Description

@sh-cau
Issue body actions

Describe the bug
When I open any buffer that is a Matlab file, the LSP server starts and has ~2GB of memory on each tmux window. Since I use many windows for different repos simultaneously in one tmux session, my RAM tends to overflow if I am not careful.
Also the language server process does not end when I just close the terminal containing the tmux session. If I close the windows individually, the corresponding processes also stop.

To Reproduce
Steps to reproduce the behavior:

  1. Start tmux
  2. Open nvim and edit a matlab file
  3. Open a new window Ctrl-b + c, go to that window, repeat 1.+2.
  4. Open btop or top and filter for matlab process.

Expected behavior
I would expect the LSP to be more lightweight and not use up so much RAM?! According to the screenshot, an entire MATLAB instance is started to run the language server?!

Screenshots

btop screenshot

Useful Information

  • OS Version: Ubuntu 20.04 with nvim v0.10.1
  • Language Server Client: matlab_ls in combination with mason, mason-lspconfig and nvim-lspconfig
  • Client Version: commit hash eb1aab2
  • Node version: v18.0.0
  • (relevant) Lazy Nvim LSP config:
return {
    {
        'williamboman/mason.nvim',
        config = function()
            require('mason').setup({})
        end
    },
    {
        'williamboman/mason-lspconfig.nvim', -- bridges Mason with nvim-lspconfig
        config = function()
            require('mason-lspconfig').setup({
                ensure_installed = {
                    'matlab_ls',
                    'bashls',
                    'lua_ls',
                    'clangd',
                    'ltex',
                    'marksman',
                    'gitlab_ci_ls',
                    'yamlls',
                },
            })
        end
    },
    {
        'neovim/nvim-lspconfig',
        dependencies = { 'hrsh7th/cmp-nvim-lsp'},
        config = function()
            local lspconfig = require('lspconfig')
            local capabilities = require('cmp_nvim_lsp').default_capabilities()
            lspconfig.matlab_ls.setup({
                capabilities = capabilities,
                filetypes = { "matlab" },
                settings = {
                    matlab = {
                        installPath = "/home/sh/programs/MATLAB/R2023a/", -- also tried not setting this
                        telemetry = false, 
                    },
                },
                single_file_support = true, -- also tried false 
            })
            lspconfig.bashls.setup({
                capabilities = capabilities,
                filetypes = { "sh", "zsh", "bash" },
                settings = {
                    bashls = {
                        lint = {
                            enable = true,
                            diagnostics = true,
                            use = { "shellcheck" },
                        },
                    },
                },
            })
            lspconfig.lua_ls.setup({
                capabilities = capabilities,
                settings = {
                    Lua = {
                        diagnostics = {
                            globals = { 'vim' } -- avoids warnings that vim is not found
                        }
                    }
                }
            })
            local function quickfix() vim.lsp.buf.code_action({ apply = true }) end
            local map = require('utils').map
            vim.api.nvim_create_autocmd('LspAttach', {
                callback = function(args)
                    -- mappings
                end
            })
        end
    },
}

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.