跳转到主要内容

使用Rope扩展Python LSP服务器的高级重构功能。

项目描述

pylsp-rope

Tests codecov

使用Rope扩展Python LSP服务器的高级重构功能。

这是一个Python LSP服务器的插件,因此您还需要安装它。

python-lsp-server已经内置了对Rope的基本支持,但目前仅限于重命名和补全。安装此插件将向python-lsp-server添加更多重构功能。

安装

要使用此插件,您需要在与python-lsp-server相同的虚拟环境中安装此插件。

pip install pylsp-rope

然后像往常一样运行pylsp,如果已正确安装到正确环境中,python-lsp-server将自动发现插件。在Vim中,请参考Rope in Vim或Neovim。对于其他编辑器,请参考您的IDE/文本编辑器的文档,了解如何设置语言服务器。

配置

您可以使用pylsp-rope通过工作区配置密钥pylsp.plugins.pylsp_rope.rename启用重命名支持。

请注意,这与用于python-lsp-rope内置rope_rename插件的rope重命名实现的配置密钥pylsp.plugins.rope_rename.enabled不同。为了避免混淆,请避免启用多个python-lsp-server重命名插件。

功能

此插件向python-lsp-server添加以下功能

重命名

  • 重命名所有内容:类、函数、模块、包(默认禁用)

代码操作

  • 提取方法
  • 提取变量
  • 内联方法/变量/参数
  • 使用函数
  • 方法到方法对象
  • 将局部变量转换为字段
  • 整理导入语句
  • 引入参数
  • 从未定义变量生成变量/函数/类

有关这些重构工作如何工作的更多详细信息,请参阅Rope 文档

用法

重命名

当触发重命名时,重命名光标下的符号。如果光标下的符号指向一个模块/包,它将移动该模块/包文件。

提取方法

变体

  • 提取方法
  • 提取全局方法
  • 提取包含类似语句的方法
  • 提取包含类似语句的全局方法

当触发 CodeAction 且光标位于任何代码块上时,将表达式提取到方法中。可选地,也可以提取类似语句。

提取变量

变体

  • 提取变量
  • 提取全局变量
  • 提取包含类似语句的变量
  • 提取包含类似语句的全局变量

当触发 CodeAction 且光标位于表达式上时,将表达式提取到变量中。可选地,也可以提取类似语句。

内联

当触发 CodeAction 且光标位于可解析的 Python 变量上时,用方法体替换对该方法的全部调用。

使用函数

当触发 CodeAction 且光标位于 def 语句的函数名上时,尝试用函数调用替换与所选函数 AST 匹配的代码。

方法到方法对象

当触发 CodeAction 且光标位于 def 语句的函数名上时,创建一个可调用的类来替换该方法。之后,您可能想要内联该方法以消除间接引用。

将局部变量转换为字段

当触发 CodeAction 且光标位于方法内的局部变量上时,将该局部变量转换为属性。

整理导入

在 Python 文件中的任何位置触发 CodeAction 来整理导入语句。

引入参数

当触发 CodeAction 且光标选择 Python 变量或属性时,将该变量/属性作为参数。

生成代码

变体

  • 生成变量
  • 生成函数
  • 生成类
  • 生成模块
  • 生成包

当触发 CodeAction 且光标位于未定义的 Python 变量上时,为该名称生成一个空的变量/函数/类/模块/包。

注意事项

对未保存文档的工作支持目前是实验性的。

此插件处于早期开发阶段,因此可能会出现一些错误。如果您遇到任何与插件相关的问题,请在GitHub 问题跟踪器中报告。

开发

请参阅CONTRIBUTING.md

打包状态

Packaging status

Packaging status

致谢

此软件包是用Cookiecutterpython-lsp/cookiecutter-pylsp-plugin项目模板创建的。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪一个,请了解有关安装软件包的更多信息。

源代码分发

pylsp-rope-0.1.16.tar.gz (21.1 kB 查看哈希值)

上传时间

构建分发

pylsp_rope-0.1.16-py3-none-any.whl (14.1 kB 查看哈希值)

上传时间: Python 3

支持者