idea 重命名工程还是有之前名称_IntelliJ IDEA重命名重构

本文详细介绍了IntelliJ IDEA的重命名重构功能,包括重命名包、类、方法、变量等,以及在Ruby、Rails、Python等环境中的应用。还特别提到了重命名时的注意事项,如遵循命名约定,以及如何处理相关文件和测试的同步变更。
摘要由CSDN通过智能技术生成

IntelliJ IDEA 重命名重构允许您重命名类、接口、枚举和注释,并自动更正代码中的所有引用。

IntelliJ IDEA 中提供了以下重命名重构:

重命名包。以下用法被重新命名:Package 语句、Import 语句、类的合格名称。

重命名类。以下用法被重新命名:Import 语句、类的合格名称、具有选定类类型的变量、类继承者.

只有安装了 Ruby 插件才支持此功能。

Ruby 脚本。在 Ruby 脚本中重命名适用于所有符号,并将更改传播到项目中的所有用法。

Ruby 类。重命名一个 Ruby 类的结果取决于调用的位置和包含的文件名。首先,如果已从模板创建了 Ruby 类,则包含的文件名与指定的类名匹配。因此,从编辑器中重命名 Ruby 类将导致根据 Ruby 命名约定生成新的文件名。如果包含文件的名称与类名称不匹配,则只重命名该类及其用法。其次,如果从 "项目" 工具窗口调用重命名重构,则只更改文件名; 包含的类的名称将保持不变。

Rails 应用程序的组件。Rails 应用程序中的重命名适用于应用程序元素(类、控制器、操作、助手、帮助器、视图)及其用法。建议使用项目工具窗口的 Rails 视图或编辑器来重命名 Rails 应用程序的元素。在 Rails 应用程序中重命名重构有以下几点细节:

在重命名操作或视图模板时,所有关联的实体都被重命名,包括测试。但是,在重命名测试时,它的相关实体不会重命名。

重命名时,请记住新名称应符合 Rail s命名约定;否则名字将不能被正确识别。这意味着,当你重新命名,例如,MyController 到 YourController,你只需要改变 My 到 Your,留下 Controller 后缀不变。

在重命名一个控制器或视图,它在 RSpec 测试中的用法只会在“评论和字符串中搜索”选项已启用时被重命名。

重命名 Rails 模型时,所有的用法也被重新命名:底层的文件、类、测试类和夹具。IntelliJ IDEA 创建一个迁移,并使用指令重命名相应的表。当模型中的某个字段被重命名时,IntelliJ IDEA 将创建一个迁移,其中包含指令重命名表中对应的列及其外键(如果有的话)。

命名范围。这样做,将重命名的作用域作为方法被调用的代码行也被重命名。

Sass 选择器

重命名方法。以下用法被重新命名:该方法的所有调用;所有在子类中重写/实现的方法。

重命名字段。

重命名函数。

重命名变量。

重命名参数。以下用法被重新命名:参数的所有用法;文档注释中相应的参数标记。

重命名 CSS 颜色值。

重命名文件。

重命名目录。

在 Grails 应用程序中重命名视图和视图的引用。

重命名重构示例

示例-重命名一个类

重构前:public class MyClass {

// some code here

}

...

public void myMethod() {

MyClass myClass = new MyClass();

}

重构后:public class YourClass {

// some code here

}

...

public void myMethod() {

YourClass yourClass = new YourClass();

}

示例-重命名一个方法

注意:只有安装了 Python 插件才支持此功能。

重构前:def was_published_today(self):

return self.pub_date.date () == datetime.date.today()

重构后:def published_today(self):

return self.pub_date.date () == datetime.date.today()

示例-重命名模板

注意:只有安装了 Python 插件才支持此功能。

重命名模板:

这样做,下列用法将被重命名:

示例-重命名 Ruby/Rails 符号

注意:只有安装了 Ruby 插件才支持此功能。

用匹配的文件名重命名 Ruby 类:

操作前:MyClass - my_class.rb

操作后:YourClass - your_class.rb

重命名 Rails 方法:

操作前:def bar(a,b,c)

return a * b + c * 123

end

def foo

a = 0

b = 1

c = 2

return bar (a,b,c)

end

操作后:def do_smth (a,b,c)

return a * b + c * 123

end

def foo

a = 0

b = 1

c = 2

return do_smth (a,b,c)

end

重命名 Rails 模型:

操作前:Model Library.

The following symbols should be renamed:

Class Library

Fixture library.yml

Test class library_test.rb

Test class LibraryTest.rb

File library.rb

操作后:Model Books.

As a result of performing the Rename refactoring, IntelliJ IDEA creates a migration. Execute the migration to have the following symbols actually renamed:

Class Books

Fixture books.yml

Test class books_test.rb

Test class BooksTest.rb

File books.rb

重命名范围及其用法:

操作前:Class Word

scope :word_length, lambda {|word_length| where :char_count => word_length}

end

assert_equal 0, Word.word_length(0).size

操作后:Class Word

scope :word_length1, lambda {|word_length| where :char_count => word_length}

end

assert_equal 0, Word.word_length1(0).size

重命名符号

选择要重命名的项目。

要选择一个文件,请在 "项目" 工具窗口中单击所需的文件。

要在编辑器中选择符号,请将插入符号放在要重命名的元件的名称上。

若要在 "项目" 工具窗口中选择一个符号,请确保显示了这些成员,然后单击所需的符号。

若要在 "结构" 视图中选择符号,请在 "结构" 工具窗口中单击所需的符号。

在主菜单或上下文菜单上选择:重构| 重命名,或按 Shift+F6。

随后的行为取决于复选框启用就地模式 (设置/首选参数对话框、编辑器)。

如果选中此复选框,则建议的名称将出现在相关符号的正下方。您可以接受建议,也可以输入新的名称。但是,如果再次按 Shift+F6,IntelliJ IDEA 将显示   "重命名" 对话框,其中有更多选项。

如果这个复选框没有被选中,则会立即打开 "重命名" 对话框。

这组控件及其名称取决于要重命名的符号的类型。

如果您希望 IntelliJ IDEA 查找和重命名与重命名类相关的对象(其名称包含更改的字符串),请选中以下一个或多个选项:

重命名变量以重命名该类类型的变量。

重命名继承器来重命名类继承者。

重命名绑定窗体来重命名绑定到该类的 GUI 窗体。

如果您选择重命名绑定到重命名类的任何对象,IntelliJ IDEA 将搜索相应的项目并按照类型排序的对话框顺序显示它们。在每个对话框中,您可以选择要更改的项目。

预览并应用更改。

重命名文件或目录

在项目工具窗口中选择所需的文件。

在主菜单或上下文菜单上选择:重构| 重命名或按 Shift+F6。

在打开的重命名文件对话框中,指定新的文件名。选择“在 comments 和 strings 中搜索”复选框,让 IntelliJ IDEA 将更改应用到注释和字符串。

按预览以观察工具窗口可能发生的变化。按重构以继续。IntelliJ IDEA 查找文件名的所有出现并分别改变它们。

重命名文件也可以在编辑器选项卡中找到:

这样做,要重命名的文件将被覆盖。

重要笔记

局部变量被重新命名。

只有安装了 Python 插件才支持此功能。

为了能够在重命名局部变量时使用重命名对话框,你应该在编辑器设置中禁用就地重构。

只有安装了 Python 插件才支持此功能。

重命名 Gherkin 步骤时,请注意以下限制:步骤定义不应包含正则表达式.

步骤名称只能包含字母数字字符。

在不同的框架中,步骤定义应该只有一个。

在步骤和步骤定义之间应该有一个 "一对一" 的映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值