feat(languages): Add Python
Some checks failed
Perform checks / formatting (push) Failing after 1m3s
Perform checks / nix_flake_check (push) Successful in 1m12s
Perform checks / nix_build (push) Successful in 1m48s

This commit is contained in:
Jiří Štefka 2025-01-15 11:57:09 +01:00
parent a5c4375d05
commit b75e7c94f5
Signed by: jiriks74
GPG key ID: 1D5E30D3DB2264DE
2 changed files with 44 additions and 2 deletions

View file

@ -128,10 +128,16 @@ with final.pkgs.lib; let
asm-lsp # Assembly language server
clang-tools # C/C++ language server
(callPackage ./cpptools.nix {}) # C/C++ debugger from VSCode | https://github.com/microsoft/vscode-cpptools
nil # nix LSP
nodePackages.bash-language-server # Bash language server
lua-language-server
nil # nix LSP
];
] ++ [ (pkgs.python312.withPackages (python-pkgs: [
python-pkgs.python-lsp-server
python-pkgs.python-lsp-ruff
python-pkgs.pylsp-mypy
python-pkgs.pylsp-rope
]))];
in {
# This is the neovim derivation
# returned by the overlay

36
nvim/ftplugin/python.lua Normal file
View file

@ -0,0 +1,36 @@
-- Exit if the language server isn't available
if vim.fn.executable('pylsp') ~= 1 then
return
end
local root_files = {
'pyproject.toml',
'setup.py',
'setup.cfg',
'requirements.txt',
'Pipfile',
'pyrightconfig.json',
'.git',
}
vim.lsp.start({
name = 'python-lsp-server',
cmd = { "pylsp" },
root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]),
capabilities = require('user.lsp').make_client_capabilities(),
filetypes = { 'python' },
on_attach = function(client, bufnr)
require("nvim-navic").attach(client, bufnr)
require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr)
end,
settings = {
pylsp = {
plugins = {
mypy = { enabled = true, },
rope = { enabled = true, },
ruff = { enabled = true, },
},
},
},
single_file_support = true
})