IntelliJ IDEA 特性集合

在這篇文章中,我想向您展現 IntelliJ IDEA 中最棒的 20 個代碼自動完成的特性,可以讓 Java 編碼變得更加高效。對任何集成開發環境來講,代碼的自動完成都是最最重要的一項功能,它根據你輸入的內容進行預判並幫你自動完成你想輸入的代碼,有時候甚至都不知道本身想要輸入什麼,例如一些類名、成員、方法或者是其餘方面的內容。 java

IntelliJ IDEA 中的代碼自動完成的功能之因此能讓我如此印象深入,緣由是 IDEA 真的理解你的代碼以及你當前所在的上下文。接下來咱們將這些最重要的特性進行簡單的說明,這些特性讓 IDEA 顯示出比其餘 IDE 更棒的表現。 express

即刻完成 Instant completion intellij-idea

第一個也是最吸引個人就是「即刻完成」特性,不一樣於其餘 IDE,IDEA 可在任意地方提供這個功能,而不僅是當你要訪問某個類的成員時。只須要輸入單詞的首字母,IntelliJ IDEA 就會當即給出最相關的、最適合此處代碼編輯須要的選項共你選擇。 編輯器

想要了解「即刻完成」是多麼的有效,你能夠瀏覽這個 演示視頻
ide

類型感知的自動完成 Type-aware completion 函數

另外一個特性一樣打破了常規的代碼自動完成的方法,稱爲:智能自動完成。你可能已經知道,IDEA 中包含不止一種自動完成的功能,包括 基本自動完成 ⌘Space 和 智能自動完成 ⌘⇧Space. 工具

當你呼出 智能自動完成 時,它會將建議列表中的不適用的條目過濾掉,只顯示可用的類、變量、屬性或者方法,這個提高了性能並且能夠避免沒必要要的錯誤,若是你試用下這個功能,你確定會時刻想到它。 性能


靜態屬性和方法 Static fields and methods ui

就如同剛纔我說的,IDEA 一直走在你的想法以前。若是你不記得一些靜態成員的類名,你只須要開始輸入靜態成員的名稱,而後調用兩次「自動完成」,IDEA 會給你提供正確的可供選擇的列表,甚至是經過靜態 import 進來的方法,若是你調用 Intention action ⌥⏎ 的話. 編碼

再一次說明,若是你使用 智能自動完成, 它將只提供可正確使用的選項。

鏈式自動完成 Chain completion

接下來的一個可以讓你更多的提高編碼效率的自動完成特性,名爲 鏈式自動完成(Chain completion). 若是你須要輸入這樣的調用方法 getModule().getProject(),只須要使用兩次 Smart completion 便可。這種狀況下 IDEA 將掃描變量、屬性和方法,以及在當前上下文中的可見性,併爲你提供可用的選擇。

你可能知道 Eclipse Juno 有一個名爲 Code Recommenders 的插件,這是一個至關有意思的插件提供了這裏說到的功能,但它的工做方式徹底不一樣,只提供 Eclipse SDK API 類中的建議,而 IDEA 爲你提供你代碼中全部類的自動完成建議。

數據流分析 Data flow analysis

IntelliJ IDEA 被稱爲是最智能的 Java IDE 的緣由是,IDEA 提供的各類功能都是基於對你代碼分析的結果,數據流分析就是其中一項。IDEA 分析數據流以便猜想運行環境中的變量類型,並提供基於這個類型的自動完成以及自動增長類的強制類型轉換。


常量自動完成 Constants completion

不少 API 使用 Java 的原始類型而不是枚舉類型來定義常量,IDEA 能分析出項目中的這些常量,並在自動完成的建議列表中提供選擇,快速輸入。


父類自動完成 Super completion

你可能已經注意到了,要調用一個有不少參數的父類構造函數挺煩人,而 IDEA 能理解你想要的並提供建議列表供選擇。


語句自動完成 Statements completion

IntelliJ IDEA 另一個智能的特性就是 自動完成語句 Complete statement ⌘⇧⏎, 能夠幫你完成正在輸入的語句的剩餘部分,自動增長漏掉的大括號小括號和必要的格式化處理。

你可能認爲這是一個很小的特性,但你會很驚奇的發現當你習慣後,它節省你不少時間。

想試試這個特性可在代碼中嘗試輸入 if 而後按 ⌘⇧⏎. 你也能夠在從建議列表中選擇的時候使用。

參數信息 Parameter info

我相信大多數的 IDE 在你調用某個方法或者構造函數時都提供了參數的建議,而後如何提供的也是很是重要。

IntelliJ IDEA 會顯示每一個重載方法或者構造函數的參數信息,並高亮其中最佳匹配的參數類型。這幫你根據輸入和指望的內容來選擇合適的方法。

你也能夠經過 ⌘P 來顯示參數信息。

快速定義 Quick definition

另一個你可能不知道的特性就是 快速定義 Quick definition ⌘⇧I. 它會彈窗顯示建議列表中的方法定義的內容,更多的時候,方法的定義比文檔更有用,特別是你不肯定要使用哪一個方法時。


從自動完成中排除 Exclude from completion

我確定每一個人都至少會碰到一次這種情形,你歷來不用的某個反覆老是反覆的出如今自動建議列表中。例如 com.sun 或者是 java.awt 包。

IntelliJ IDEA 可幫你排除掉這些選項,只須要在要排除的選項中調用 Intention ⌥⏎ 並確認,你也能夠在 Settings 中從新找回這些信息。


其餘語言注入 Injected languages

接下來的這個就不論是代碼自動完成那麼簡單,這個功能徹底能夠開一篇新的文章詳細介紹,但這裏只介紹它跟代碼自動完成有關的部分。

其餘語言注入 Language injection 是 IntelliJ IDEA 帶來的高級代碼助手,可對 Java 代碼中字符串的表達式進行自動完成。這些表達式能夠是 SQL, JPQL, XPath expression, HTML, CSS, JavaScript 片斷等任何語言。

在 IntelliJ IDEA 提供這些表達式的自動完成功能前,你必須指定對應的語言,你可在字符串上調用Intention action ⌥⏎ 來設置,而後方可以使用。

例如你在 IDEA 中定義了一個數據源,你將可以使用基於表名的 SQL 表達式的自動完成,該 IDE 會分析項目中全部的文件並提供所支持語言的高級自動完成功能。

使用 Tab 鍵的自動完成 Completion with Tab

另一個特性就是 Сompletion with Tab,也就是使用 Tab 鍵來實現自動完成,當你選擇建議列表中的某個條目後點擊 ⇥, 選中的內容將會覆蓋光標標識符,而不是插入。這在編輯如文件名這樣的標識符片斷時是頗有用的。

否認布爾值結果 Negating boolean results

並非全部人都知道,當你從建議列表中使用 ! 來選擇一個布爾值的選項時,IntelliJ IDEA 會自動添加所選項的的非值(例如原本是true的變成false)。

中間匹配 Middle matching

另一個高效的方法就是 中間匹配 Middle matching. 意思是當你在剛開始要輸入某個標識符時,IntelliJ IDEA 就會爲你提供可供選擇的建議列表,這個特性能顯著提高編碼效率,特別是當你只記住某個名稱的一部分時。


大小寫敏感設置 Case sensitivity settings

正如你可能已經知道的,代碼完成經常使用的方法就是使用駝峯法則來根據您的輸入去匹配相應的類名。雖然你須要輸入至少一個大小字母來給 IDE 一些線索提示。而 IntelliJ IDEA 改進了這個法則,它不要求必定是大小字母,也能夠是小寫的,也就是說你不必在每次使用這個功能時按 ⇧

默認 IntelliJ IDEA 對大小寫是敏感的,你能夠在 Settings 修改此項設置。

資源屬性(properties)、文件名和資源的自動完成

IDEA 還可判斷當前正在使用一些加載資源的方法,並給出可供選擇的資源列表。


一些在非 Java 文件中的類名自動完成 Class name completion in non-Java files

IntelliJ IDEA 一樣還提供一些非 Java 文件,如 XML 配置文件中的類名自動完成。


其餘地方的自動完成 Completion in other places

另一個你在別的 IDE 中很難見過的自動完成功能是,它不僅是在代碼編輯器中,還可用在調試器、表達式模擬、監視、文件選擇器、搜索輸入等等諸多地方使用。

表達式評估和監視工具中的自動完成這個功能是很是有價值的。

總結

我但願這篇文章能幫你更好的理解 IntelliJ IDEA 的代碼自動完成特性,並從中受益。

你能夠經過 Help → Productivity Guide 來了解更多的自動完成的類型以及 IDEA 已經幫你節省了多少時間(這個有點意思)

相關文章
相關標籤/搜索