行間建議預測(NES - Next Edit Suggestion),可以基於當前完整代碼的上下文,結合代碼修改和游標所在位置,動態預測代碼變更,讓開發人員只需 Tab 一下,即可高效完成代碼變更。
行間建議預測(NES)目前僅支援在 JetBrains IDEs 和 Lingma IDE 中使用,可在 JetBrains IDEs 將靈碼 升級到 v2.5.4 或更新版本,或下載 Lingma IDE後體驗。
開啟行間建議預測
JetBrains IDE
在 IDE 中選擇,在 NES Settings 中啟用 Enable NES(Next Edit Suggestion)。該功能預設處於關閉狀態;啟用後,推薦方式預設為 Auto,Code Shifting 配置項預設為 No。

設定推薦方式時,提供三種選擇: Inline 、 Side by Side 和 Auto 。當選擇Inline 或 Auto 時,將出現 Code Shifting 配置項,而選擇 Side by Side 時則不會出現,Code Shifting 用於控制是否會通過行動程式碼在行間騰出空間,以便顯示代碼建議。請根據以下方式說明選擇您所需的方式:
Lingma IDE
在Lingma IDE的右上方,單擊使用者表徵圖
或使用快速鍵(⌘ ⇧ ,(macOS)或Ctrl shift ,(Windows)),選擇個人設定,開啟行間建議預測(NES)。
Lingma IDE僅支援Auto模式,在該模式下IDE會根據情境自行選擇Inline或Side by Side方式。
Auto(預設):Auto 方式會根據情境自行選擇 Inline 、 Side by Side 方式,當存在變更代碼的像素寬度和 NES 提示的像素寬度大於編輯器可視地區寬度,展示為 Inline,否則展示為 Side by Side。
Inline:當 NES 開關開啟,且方式選擇為 Inline,根據使用者配置是否使用下浮效果(即通過行動程式碼在行間騰出空間)。以下是具體行為使用效果:
行為
操作
使用效果
純刪除行為
行內單處/多處刪除(單詞、單詞內字母刪除、連續單詞刪除算作是一處)。

行內刪除單/多行。

修改行為
行內單處(單詞、單詞內字母變更、連續單詞都算作一處),以單詞/片語為單位顯示變更。

單行內修改(單詞、單詞內字母變更、連續單詞都算作一處),行內上下 diff view 並做到 character-level。
占空間效果(空行插入)

不佔空間效果(下浮效果)

行內連續多行變更,行內上下 diff view 並做到 character-level。
占空間效果(空行插入)

不佔空間效果(下浮效果)

純新增行為
新增單行
占空間效果(空行插入)

不佔空間效果(下浮效果)

連續新增多行
占空間效果(空行插入)

不佔空間效果(下浮效果)

Side by Side:當 NES 開關開啟,且方式為 Side by Side,根據使用者配置是否使用下浮效果(即通過行動程式碼在行間騰出空間)。以下是具體行為使用效果:
行為
操作
使用效果
純刪除行為
行內單處\多處刪除(單詞、單詞內字母刪除、連續單詞刪除算作是一處)。

行內刪除單/多行。

修改行為
行內單處(單詞、單詞內字母變更、連續單詞都算作一處),以單詞/片語為單位顯示變更。

單行/多行變更。

純新增行為
新增單行/多行(修改建議提示出現在需要插入行號位置,箭頭對齊上一行號和待修改行號中間)。

情境樣本
當前變更位互動:在產生行內建議預測後,您可以將游標懸停在 Accept 按鈕上,彈出 Lingma NES 功能表列。在功能表列中,單擊 Accept/Reject 操作按鈕或按下鍵盤上的
Tab/Esc按鍵,以接受或拒絕相關建議預測,並關閉提示菜單,您也可以單擊 Settings 進入後台修改相關配置。同檔案內超視區:當預測到下一修改位置超出當前視區內,介面中出現
按鈕,您可單擊此按鈕或按下鍵盤上的Tab按鍵跳轉到待修改位置。跨檔案內超視區:當預測到下一修改位置超出視區且不在本檔案內時,介面中會出現
按鈕,您可單擊此按鈕或按下鍵盤上的Tab按鍵跳轉到待修改位置。
以下是幾個在JetBrains IDE中使用行間建議預測的情境:
重新命名
在修改上下文參數名稱時,將自動產生建議預測,以提示將相關參數名稱進行修改:

重構
行間建議預測支援已有函數中,將針對現有代碼產生最佳化重構建議:
新增變數、欄位、參數或注釋
增加變數
在代碼塊內添加變數時,將自動產生建議預測,以替換後文中變數的擷取方式:

增加欄位
為欄位添加相應註解後,將自動產生建議預測,並為後續欄位添加相應註解:

增加參數
對於某個函數增加相關參數,在後續使用該函數的位置會產生增加相關參數的建議預測:

增加註釋
在需要添加註釋的位置輸入/即可出現相關建議預測,輸入Crtl + ↓則接受當前行的行內建議預測:
