操作系统
Linux
最近更新
2024-11-16
使用许可
开源
语言
不支持中文
文件大小
7.76 MB

Ruff是一个基于Python的代码检查工具,由astral开发。它可以帮助开发人员在编写Python代码时发现潜在问题并提供修复建议。

Ruff具有多种功能,包括代码检查、自动纠错等。它使用Rust编写的Python AST解析器,实现了自己的AST遍历、visitor抽象和lint规则逻辑。与其他工具相比,Ruff具有更快的速度和更高的性能,可以比Python的Flake8和Black快10-100倍。

此外,Ruff还支持通过pip安装、内置700+规则、兼容Python 3.12等功能,可以很容易地集成到现有的开发工作流程中。它还提供了实时反馈和自动修复建议,帮助开发人员更快地发现和解决问题。

0.4.0 版本更新说明:

全新的手写解析器

Ruff的新解析器运行速度提高了两倍以上,这意味着所有的linting(代码静态检查)和格式化调用都将获得20%-40%的性能提升。关于这一令人激动的变化,有很多细节可以讨论,因此请查阅博客文章以获取更多信息!


Rust编写的新语言服务器

随着此次发布,我们还想重点介绍我们的新语言服务器。ruff server是一个内置于Ruff的、由Rust驱动的语言服务器。它可以与任何支持语言服务器协议(LSP)的编辑器一起使用。它采用了受rust-analyzer启发的多线程、无锁架构,并将为许多令人兴奋的功能敞开大门。它还比我们之前基于Python的语言服务器更快——不过,你可能已经猜到了这一点。


虽然ruff server目前还处于alpha阶段,但它已经具备了许多今天就可以尝试的功能:

  • 自动对Python文件进行lint检查,并在可用时显示快速修复建议
  • 支持范围格式化的Python文件格式化功能
  • 带有用于快速执行操作的命令:ruff.applyAutofix、ruff.applyFormat和ruff.applyOrganizeImports
  • 支持source.fixAll和source.organizeImports源代码操作
  • 当您更改项目配置时,会自动重新加载项目配置


预览功能

[pycodestyle] 在具有虚拟主体的函数/方法之后的defs上不触发E3规则

[pylint] 实现invalid-bytes-returned(E0308)规则

[pylint] 实现invalid-length-returned(E0303)规则

[pylint] 实现self-cls-assignment(W0642)规则

[pylint] 忽略invalid-bool和invalid-str-return-type规则中的存根

[ruff] 新增unused-async(RUF029)规则,用于检测函数上不必要的async关键字


规则变更

[flake8-bandit] 允许urllib.request.urlopen调用具有静态Request参数(S310)

[flake8-bugbear] 将仅包含raise NotImplemented的函数体视为存根函数(B006)

[flake8-slots] 尊重相同文件中的Enum子类(SLOT000)

[pylint] 支持反向比较(PLR1730)


Linter(代码静态检查)

改进linter规则中内置符号的处理

改进--show-settings中规则的显示

改进BuiltinTypeChecker的推断能力

根据脚本名称解析类和函数

提高RuleTable::any_enabled的性能


服务器

本节专门介绍我们新编写的、基于Rust的语言服务器的更新。

启用针对ruff的特定源代码操作

当文件配置发生变化时,刷新打开文件的诊断信息

现在将重要错误显示为弹出窗口

引入用于直接配置linter和格式化的设置

单独为每个文档解析配置

为Neovim编写设置指南


配置

添加RUFF_OUTPUT_FILE环境变量支持


Bug修复

避免对非增强型赋值使用反向、非交换运算符(PLR6104)

将交换非增强型赋值限制为原始数据类型(PLR6104)

尊重RUF100对blanket # noqa的每文件忽略

考虑带项目的括号解析中的if表达式

考虑带项目的括号解析中的二元表达式

为所有类型的括号重置FOR_TARGET上下文

其他版本
最近更新软件·Linux 软件更新列表
小鱼易连 [网络] 小鱼易连 3.10.0.23021 ARM64/麒麟,鲲鹏
刚刚
小鱼易连 [网络] 小鱼易连 3.10.0.23021 ARM64/麒麟,鲲鹏
刚刚
Brave Browser [网络] Brave Browser 1.73.91 ARM64
刚刚
Brave Browser [网络] Brave Browser 1.73.91 64位
刚刚
Slack [应用软件] Slack 4.41.97 64位
刚刚
Cursor [开发] Cursor 0.42.5 64位
昨天 21:26
WPS 365 [应用软件] WPS 365 12.8.2.18605 龙芯
昨天 21:26
WPS 365 [应用软件] WPS 365 12.8.2.18605 ARM64
昨天 21:23
WPS 365 [应用软件] WPS 365 12.8.2.18605 MIPS64EL
昨天 21:23
WPS Office [应用软件] WPS Office 12.1.0.17900 64位
昨天 21:21
新软件·Linux 新软件列表
Cursor [开发] Cursor 0.42.5 64位
昨天 21:26
VMware Workstation [系统工具] VMware Workstation 17.6.1 64位
11-19
微信 [网络] 微信 4.0.0 龙芯
11-11
微信 [网络] 微信 4.0.0 ARM64
11-11
微信 [网络] 微信 4.0.0 64位
11-11
Another Redis Desktop Manager [开发] Another Redis Desktop Manager 1.7.0 ARM64
11-10
115浏览器 [网络] 115浏览器 27.0.6.9 64位
11-09
Python 3.13 [开发] Python 3.13 3.13.0 64位
11-07
Python 3.12 [开发] Python 3.12 3.12.7 64位
11-07
Python 3.11 [开发] Python 3.11 3.11.10 64位
11-07