dotfiles/.config/nvim/lua/plugins/extras/lang/python-extended.lua
2024-04-04 16:15:33 +02:00

102 lines
2.9 KiB
Lua

-- LSP Server to use for Python.
-- Set to "basedpyright" to use basedpyright instead of pyright.
vim.g.lazyvim_python_lsp = "basedpyright"
return {
{ import = "lazyvim.plugins.extras.lang.python" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
---@type lspconfig.options.basedpyright
basedpyright = {
settings = {
basedpyright = {
analysis = {
diagnosticSeverityOverrides = {
reportUnusedCallResult = "information",
reportUnusedExpression = "information",
reportUnknownMemberType = "none",
reportUnknownLambdaType = "none",
reportUnknownParameterType = "none",
reportMissingParameterType = "none",
reportUnknownVariableType = "none",
reportUnknownArgumentType = "none",
reportAny = "none",
},
},
},
},
},
---@type lspconfig.options.pyright
pyright = {
settings = {
verboseOutput = true,
autoImportCompletion = true,
python = {
analysis = {
typeCheckingMode = "strict",
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = "openFilesOnly",
indexing = true,
},
},
},
},
ruff_lsp = {
handlers = {
["textDocument/publishDiagnostics"] = function() end,
},
},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "requirements" })
end
end,
},
{
"MeanderingProgrammer/py-requirements.nvim",
event = {
"BufRead requirements.txt",
},
dependencies = {
{ "nvim-lua/plenary.nvim" },
{
"hrsh7th/nvim-cmp",
dependencies = {},
opts = function(_, opts)
table.insert(opts.sources, { name = "py-requirements" })
end,
},
},
opts = {},
-- stylua: ignore
keys = {
{ "<leader>ppu", function() require("py-requirements").upgrade() end, desc = "Update Package" },
{ "<leader>ppi", function() require("py-requirements").show_description() end, desc = "Package Info" },
{ "<leader>ppa", function() require("py-requirements").upgrade_all() end, desc = "Update All Packages" },
},
},
{
"folke/which-key.nvim",
opts = {
defaults = {
["<leader>p"] = { name = " packages/dependencies" },
["<leader>pp"] = { name = "python" },
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
ensure_installed = {
"python-3.11",
},
},
}