如何智能更改项目范围内的函数签名?
Posted
技术标签:
【中文标题】如何智能更改项目范围内的函数签名?【英文标题】:How to intelligently change signature of function in the scope of the project? 【发布时间】:2021-06-29 00:30:09 【问题描述】:我想更改Python模块中一个函数的签名,在当前项目中已经多次使用。
如果使用IDEA的重构功能(带Python插件),修改函数名可以在整个项目范围内生效;但更改签名不能,也看不到这个范围选项。
去谷歌搜索相关内容,没有找到更多有用的信息。
IDEA真的没有办法智能改变整个项目范围内的函数签名吗?
如果答案是否定的,还有其他解决方案吗?
注意:当然,也可以使用正则表达式。这个选项是已知的。
【问题讨论】:
好吧,Refactor | Change Signature
操作应该在这里完成工作。 jetbrains.com/help/idea/change-signature.html 例如带有 php 插件的 IDEA:jetbrains.com/help/idea/…。 PyCharm:jetbrains.com/help/pycharm/change-signature.html P.S. 不能谈论 Python/IDEA .. 但它在实际的 PhpStorm 中运行良好。
@LazyOne 这是已知的。右键菜单,重命名后,重点是“整个项目”。从你发的超链接看,好像没有这个选项。默认是整个项目吗?
@Andy 是的,项目中函数的所有用法都应该通过Change Signature重构。
@LazyOne 我确信在 Python 或 PyCharm 的 IDEA 中情况并非如此。也许它没有这个功能。
@Andy 那么它确实为您更改签名的范围是什么?只有模块?或者它甚至不这样做?
【参考方案1】:
不能像重命名那样设置范围,具体范围是什么不太清楚,但绝对不限于当前文件。
如果只在当前文件生效,那么可能没有建立正确的解析关系,那么你应该Find Usages
(默认快捷键是Control+鼠标左键),检查一下,如果发现错误,可以使用File | Invalidate Caches
尝试清除缓存并重启IDE。
感谢 LazyOne。
【讨论】:
以上是关于如何智能更改项目范围内的函数签名?的主要内容,如果未能解决你的问题,请参考以下文章