2010-05-13 107 views
47

是否有一種更簡單的方法重新排序在IntelliJ類源文件中的方法手動切割和粘貼代碼?現在,我經常需要重構遺留代碼,例如在源代碼中將相關方法彼此靠近。在IntelliJ中重新排列Java類方法的簡單方法?

在Eclipse AFAIK中,有一個類似於IntelliJ的Structure視圖的視圖,我可以在其中拖放方法。但是,這在IntelliJ中不起作用,我也無法從它的幫助中找到任何提示。

我使用IntelliJ 9.0.2是特定的。

+0

我認爲最好的解決辦法是一個格式化工具,自動訂購你的方法。散文:這些方法應該是它們被調用的方式。就像你會在報紙上看到一篇文章一樣。 – Chris311 2016-11-28 09:52:41

回答

71

您可以選擇的方法名稱,然後按:按Ctrl ++向上按Ctrl ++它上下移動。

在OS X:Cmd的 + + 向上Cmd的 + + 向下

除此之外的Rearranger Plugin能讓您在快速移動的方法,甚至定義根據您的編碼慣例進行標準排序。

+0

是不是有什麼東西只是按字母順序重新排序? – 2011-06-18 21:30:06

+0

該鏈接已死亡,這似乎是正確的:http://java.net/projects/rearranger – stian 2012-12-06 11:58:04

+0

@stian - 我已經編輯帖子指向JetBrains網站上的插件頁面,因爲你的鏈接發佈似乎沒有任何可用的下載 – adrian 2013-10-29 17:47:52

2

選擇一段文字(按Ctrl-W幾次),然後使用Ctrl-Shift-Up和Ctrl-Shift-向下移動它。

7

隨着光標的方法定義行(你不必並按CTRL + 轉變 + CTRL + 轉變 + 下來,或者分別上下移動。

您還可以到CTRL ++數字小 -迅速崩潰一切,讓您可以專注於中移動(普通-作品在我的筆記本電腦爲好,不知道爲什麼)和CTRL ++數字小+要回看到的一切(CTRL- shift-equals也適用於我的筆記本電腦)。

6

不完美的答案還有,由於IntelliJ中的錯誤。

儘管IntelliJ隱式提供了此功能,但它需要啓用和固定。 OP的建議方法是在技術上按照深度優先的順序排列方法。但是,如果使用廣度優先排序(可以正常工作),則應將所有調用方和被調用方法排列在一起,從而減少大量移動函數的手動工作。

問題鏈接:https://youtrack.jetbrains.com/issue/IDEA-149524。請爲其決議投票。

IntellijRearrangeMethodsInDFO

這樣做的適當行動是重新排列碼。這沒有分配給它的鍵,但是你可以使用Preferences-> Keymap定義你自己的鍵。

RearrangeActionMenuButton

enter image description here

4

的IntelliJ有一個內置的系統,它允許您指定如何訂購你的方法。您需要轉到設置(Ctrl + Alt + S) - >編輯器 - >代碼樣式 - > Java - >排列(選項卡)並向下滾動,直到找到帶有methods的圖標。您可以在這裏操作選項,通過可視性或按字母順序對它們進行分類,或者將相關的分組在一起。 下面是我的設置屏幕截圖,它將通過可見性(公共,受保護,私有)和按字母順序(a-z)自動排序方法。 藍色高光顯示當前選定的規則。

enter image description here