在IntelliJ中重新排列Java类方法的简单方法?

在IntelliJ中重新排列Java类方法的简单方法?,java,refactoring,methods,intellij-idea,Java,Refactoring,Methods,Intellij Idea,在IntelliJ中,有没有比手动剪切和粘贴代码更简单的方法来重新排序类源文件中的方法?现在,在重构遗留代码时,我经常需要这样做,例如,在源代码中使相关方法彼此靠近 在EclipseAfaik中有一个类似于IntelliJ的结构视图的视图,我可以在其中拖放方法。然而,这在IntelliJ中不起作用,我也无法从它的帮助中找到任何提示 具体来说,我使用的是IntelliJ 9.0.2。选择一块文本(点击Ctrl-W几次),然后使用Ctrl-Shift-Up和Ctrl-Shift-Down来移动它。您

在IntelliJ中,有没有比手动剪切和粘贴代码更简单的方法来重新排序类源文件中的方法?现在,在重构遗留代码时,我经常需要这样做,例如,在源代码中使相关方法彼此靠近

在EclipseAfaik中有一个类似于IntelliJ的结构视图的视图,我可以在其中拖放方法。然而,这在IntelliJ中不起作用,我也无法从它的帮助中找到任何提示


具体来说,我使用的是IntelliJ 9.0.2。

选择一块文本(点击Ctrl-W几次),然后使用Ctrl-Shift-Up和Ctrl-Shift-Down来移动它。

您可以选择一个方法名称,然后点击:Ctrl+Shift+Up或Ctrl+Shift+Down来上下移动它

在OSX上:Cmd+Shift+Up或Cmd+Shift+Down


除此之外,还可以快速移动方法,甚至可以根据您的编码约定定义标准顺序。

将光标放在方法定义行上(无需按ctrl+shift+up或ctrl+shift+down分别向上或向下移动)


您还可以使用ctrl+shift+numberpad-快速折叠所有内容,以便集中精力四处走动(简单-在我的笔记本电脑上也可以,不知道为什么),并使用ctrl+shift+numberpad+返回查看所有内容(ctrl-shift等于在我的笔记本电脑上也可以)。

由于IntelliJ中的一个bug,这不是一个完美的答案

虽然IntelliJ隐式提供了此功能,但它需要启用和修复。OP建议的方法是从技术上按深度优先顺序排列方法。但是,如果使用广度优先顺序(这可以正常工作),它应该通过将所有调用者和被调用者方法安排在一起,将移动函数的手动工作减少很多

问题链接:。请对其决议投赞成票

此操作的适当操作是重新排列代码。此代码没有分配键,但您可以使用“首选项”->“键映射”定义自己的键


IntelliJ有一个内置系统,允许您指定如何对方法排序。您需要转到设置(Ctrl+Alt+S)->编辑器->代码样式->Java->排列(选项卡)然后向下滚动,直到找到带有
方法的图标。在那里,您可以操作选项,按可见性或字母顺序对其进行排序,或将相关的图标分组在一起。
这是我的设置的屏幕截图,它将按可见性(公共、受保护、私有)和字母顺序(a-z)自动排序方法。
蓝色高亮显示当前选定的规则


有一种自动方式,您可以在以后进行调整

代码->显示重新格式化文件对话框


并勾选“重新排列代码”box

例如,有什么东西可以按字母顺序重新排序吗?链接已经死了,这似乎是正确的:@stian-我编辑了这篇文章,指向JetBrains网站上的插件页面,因为你发布的链接似乎没有任何Mac OS X的下载:Cmd+Shift+Up/Cmd+Shift+downse IDEA 16它是可用的hr通过菜单:
code>Move Statement Up/Down
我认为最好的解决方案是一个格式化工具,可以自动对方法进行排序。散文:方法应该是按调用方式排序的。就像你在报纸上读一篇文章一样。我如何将顺序选择一次应用到一个或多个规则?这根本不起作用全部。使用此配置并执行重新排列没有任何作用。此解决方案使用默认顺序。谢谢!按“代码->重新排列代码”可以立即将配置应用于当前文件!