Neovim/nvim 配置Python LSP - pyright and pyrefly

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

nvim 插件管理

用的是 lazy.nvim,默认安装了nvim-lspconfigMason等依赖。

安装

:Mason安装pyright, pyrefly,在下面这个界面找到对应插件按I来安装。
在这里插入图片描述

简单实用的配置

  • pyright 相对比较成熟,日常工程中实用少给自己找麻烦,建议作为默认的Python代码分析工具
  • pyrefly 对代码规范要求非常苛刻,其结果可供参考,更建议手动执行 :PyreflyCheck,具体用法再翻文档吧

配置文件如下:

-- nvim/lua/config/options.lua

-- 防止与pyright冲突, 手动执行pyrefly. 另可配置异步执行, 参考`plenary.nvim`
-- > pyrefly 在自己的目录里新建了一个venv虚拟环境,看着比较别扭。莫不如直接在项目所用的虚拟环境里`pip`安装?
local pyrefly_exe = vim.fn.stdpath("data") .. "/mason/packages/pyrefly/venv/Scripts/pyrefly.exe"

vim.api.nvim_create_user_command("PyreflyCheck", function()
  local pyrefly_check = string.format('"%s" check ', pyrefly_exe)
  vim.cmd("!" .. pyrefly_check)
end, {
  desc = "Run pyrefly via CLI",
})
-- nvim/lua/config/keymaps.lua

-- Toggle lint
vim.keymap.set("n", "<leader>v", function()
  if vim.diagnostic.is_enabled() then
    vim.diagnostic.enable(false)
  else
    vim.diagnostic.enable(true)
  end
end, { desc = "Toggle lint" })
-- ~/.config/nvim/lua/plugins/lsp.lua

return {
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        pyrefly = false,
        pyright = {
          settings = {
            python = {
              analysis = {
                typeCheckingMode = "basic",  -- off, basic, standard, strict(纯属给自己找不自在😕)
              },
            },
          },
        },
      },
    },
  },
}

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值