111 lines
3.1 KiB
Lua
111 lines
3.1 KiB
Lua
-- LSP Server to use for Python.
|
|
-- Set to "basedpyright" to use basedpyright instead of pyright.
|
|
vim.g.lazyvim_python_lsp = "basedpyright"
|
|
vim.g.lazyvim_python_ruff = "ruff"
|
|
|
|
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 = {
|
|
diagnosticSeverityOverrides = {
|
|
reportWildcardImportFromLibrary = "none",
|
|
reportUnusedImport = "information",
|
|
reportUnusedClass = "information",
|
|
reportUnusedFunction = "information",
|
|
},
|
|
typeCheckingMode = "strict",
|
|
autoSearchPaths = true,
|
|
useLibraryCodeForTypes = true,
|
|
diagnosticMode = "openFilesOnly",
|
|
indexing = true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
[vim.g.lazyvim_python_ruff] = {
|
|
handlers = {
|
|
["textDocument/publishDiagnostics"] = function() end,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = {
|
|
ensure_installed = {
|
|
"requirements",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"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,
|
|
opts = {
|
|
ensure_installed = {
|
|
"python-3.11",
|
|
},
|
|
},
|
|
},
|
|
}
|