使用Rope扩展Python LSP服务器的高级重构功能。
项目描述
pylsp-rope
使用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。
打包状态
致谢
此软件包是用Cookiecutter从python-lsp/cookiecutter-pylsp-plugin项目模板创建的。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪一个,请了解有关安装软件包的更多信息。
源代码分发
构建分发
pylsp-rope-0.1.16.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d680b688c60a40257a8842ec808a6e0de1596a47a5300f22aecfdc69555020a7 |
|
MD5 | d89fd98229ef2ce98bb092170ad10f36 |
|
BLAKE2b-256 | 5e4b2bbf498ebc1fa764f15c9155c0ed28900268ac22ddcb1d8cf219937bf151 |
pylsp_rope-0.1.16-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3d6aff3dd8da8c1ceaab92abfb03b146a710de7742a8a7b80e2d14965c0a285 |
|
MD5 | e6f6c72f7e0c85622f14d2f34cc112fc |
|
BLAKE2b-256 | 07e90afee6ad393ed3a8dc57dbdf77a2615f99878ad6384790dea898b8d8fb21 |