to some extent

This commit is contained in:
Belal Elsabbagh
2025-05-13 12:32:05 +03:00
parent 002e8573f4
commit a580beaef2
10 changed files with 77 additions and 300 deletions

View File

@@ -0,0 +1,8 @@
return {
cmd = { 'gopls' },
filetypes = { 'go' },
root_markers = {
'go.mod',
'go.sum',
},
}

View File

@@ -1,5 +1,20 @@
local function set_python_path(path)
local clients = vim.lsp.get_clients {
bufnr = vim.api.nvim_get_current_buf(),
name = 'pyright',
}
for _, client in ipairs(clients) do
if client.settings then
client.settings.python = vim.tbl_deep_extend('force', client.settings.python, { pythonPath = path })
else
client.config.settings = vim.tbl_deep_extend('force', client.config.settings, { python = { pythonPath = path } })
end
client.notify('workspace/didChangeConfiguration', { settings = nil })
end
end
return {
cmd = { 'pyright' },
cmd = { 'pyright-langserver', '--stdio' },
filetypes = { 'python' },
root_markers = {
'pyproject.toml',
@@ -14,7 +29,23 @@ return {
analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = 'openFilesOnly',
},
},
},
on_attach = function(client, bufnr)
vim.api.nvim_buf_create_user_command(bufnr, 'LspPyrightOrganizeImports', function()
client:exec_cmd {
command = 'pyright.organizeimports',
arguments = { vim.uri_from_bufnr(bufnr) },
}
end, {
desc = 'Organize Imports',
})
vim.api.nvim_buf_create_user_command(bufnr, 'LspPyrightSetPythonPath', set_python_path, {
desc = 'Reconfigure pyright with the provided python path',
nargs = 1,
complete = 'file',
})
end,
}

33
.config/nvim/lsp/ruff.lua Normal file
View File

@@ -0,0 +1,33 @@
---@brief
---
--- https://github.com/astral-sh/ruff
---
--- A Language Server Protocol implementation for Ruff, an extremely fast Python linter and code formatter, written in Rust. It can be installed via `pip`.
---
--- ```sh
--- pip install ruff
--- ```
---
--- **Available in Ruff `v0.4.5` in beta and stabilized in Ruff `v0.5.3`.**
---
--- This is the new built-in language server written in Rust. It supports the same feature set as `ruff-lsp`, but with superior performance and no installation required. Note that the `ruff-lsp` server will continue to be maintained until further notice.
---
--- Server settings can be provided via:
---
--- ```lua
--- vim.lsp.config('ruff', {
--- init_options = {
--- settings = {
--- -- Server settings should go here
--- }
--- }
--- })
--- ```
---
--- Refer to the [documentation](https://docs.astral.sh/ruff/editors/) for more details.
return {
cmd = { 'ruff', 'server' },
filetypes = { 'python' },
root_markers = { 'pyproject.toml', 'ruff.toml', '.ruff.toml', '.git' },
settings = {},
}

View File

@@ -0,0 +1 @@
return {}

View File

@@ -0,0 +1 @@
return {}

View File

@@ -0,0 +1 @@
return {}