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

Aperta
#48 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
28/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
neovim, typescript
Ambito
devtools

Direzione di ricerca

Inizia riproducendo il report con la configurazione fornita di Neovim, tmux, Ubuntu e MATLAB, quindi esamina come viene avviato e arrestato matlab_ls. Verifica se ogni finestra tmux crea un processo MATLAB separato e se la chiusura del terminale lo lascia in esecuzione. Il lavoro è completato quando l’utilizzo della memoria e la pulizia dei processi corrispondono al comportamento previsto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

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 eb1aab2e85dcf461e070b3d34e85aff15fcb9ada
  • 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

Lingua principale
TypeScript
Stelle
125
Fork
21
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mathworks/MATLAB-language-server

Tutte le issue di mathworks/MATLAB-language-server

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.