Open
Description
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:
- Start tmux
- Open nvim and edit a matlab file
- Open a new window
Ctrl-b + c
, go to that window, repeat 1.+2. - Open
btop
ortop
and filter formatlab
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
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
},
}