設定頁按鈕與工具選單
設定項本身見設定。
按鈕只適合「做一件事」
Unified Settings 的按鈕(commands)可以掛在分類上,也可以掛在單一設定上。 掛在設定上的按鈕跟著那一項顯示,所以「編輯程式碼片段…」掛在 sqlAssist.suggestions.includeSnippets,不是掛在整個「建議清單」分類上。
曾經有一顆「關閉 SSMS 內建的 T-SQL IntelliSense」掛在「建議清單」分類上 (命令 0x0207,已移除且不回收)。移掉它的理由值得記下來,因為那是一整類按鈕 的通病:它改的是別人分類裡的設定,所以設定頁上沒有任何一格會跟著變—— 按鈕按得下去,卻永遠看不出現在是開還是關,只能靠按完跳一個訊息框補救。 enableOnlyWhen 也救不了:依 languages.sql.intelliSense.enableIntellisense 變灰是跨分類參照,會讓整個「建議清單」頁消失。
改法不是把按鈕做得更好,是換成一個自己的設定: sqlAssist.suggestions.suppressNativeMemberList 是我們自己分類裡的布林值, 殼層直接畫成核取方塊、狀態一目了然、也跟著設定漫遊。真正要對外做的那一下 (寫 LANGPREFERENCES2.fAutoListMembers)由 Ssms22/Settings/NativeMemberList 在套件載入、每次建立 SQL 編輯器與設定變更時各推一次。
由此得到一條通則:設定頁上的按鈕只適合「做一件事」,不適合「切換一個狀態」。 留下來的三顆——「編輯程式碼片段…」「開啟診斷紀錄檔」與「開啟 SQL Memory 用量…」——都是前者。
「立即整理資料庫檔案…」已經移除(命令 0x020D,空號不回收)。它與用量分頁的「壓縮資料庫」 呼叫同一條 CompactAsync,卻借了維護的名字,而且按下去直接開跑;分頁那一條會先說明需要 等量暫存空間並要求確認。同一個操作兩個入口、兩種安全等級,該留的是有確認的那一個。 SQL Memory 分類因此改掛一顆「開啟 SQL Memory 用量…」,把使用者帶到那些動作真正的所在地。
它是唯一一個作用在擴充之外的設定,所以「關於與診斷」同時顯示兩件事:設定要的樣子, 與 SSMS 語言偏好實際的樣子。兩者不一致就是「寫進去了但沒生效」, 那是這個功能唯一會安靜失敗的方式。
工具 → SqlAssist 選單
這個選單只留下編輯途中會想按的東西:
啟用 SqlAssist ☑ Ctrl+Alt+Shift+S
顯示即時建議 ☑ 只關清單,Hover 與關鍵字大寫照常
─────────────
移至定義 F12 另開查詢視窗顯示可執行的定義
顯示游標處物件的結構 Ctrl+F12 預覽關成 off 時的唯一入口
重新整理建議 Ctrl+Shift+D 改完資料表結構後用
以片段包住選取範圍 Ctrl+Alt+S 也在查詢視窗右鍵選單
程式碼片段… 編輯內建與自訂片段
─────────────
設定… 開啟 Unified Settings 並定位到 sqlAssist
聚焦通知 鍵盤進到右下角的通知島;Tab 切換按鈕,Esc 收起
檢查更新… 問 GitHub 有沒有新版;也在「關於與診斷」的「專案與支援」上
關於與診斷… 看版本、重要設定、健康檢查;可複製匿名診斷摘要選單本身是純文字,理由見殼層命令。「檢查更新…」只比對版本,有新版時跳出 提醒,「前往下載」才把使用者送到那一版的 Release 頁;不下載也不安裝——安裝前要關掉所有 SSMS。 啟動時的自動檢查每天最多連網一次、只有新版而且不是略過的那一版才提醒,由「一般」頁的「啟動時 檢查有沒有新版本」控制;手動檢查不理會略過的版本。
「聚焦通知」沒有預設快捷鍵:通知島的浮層不接受啟用,這是鍵盤進去的唯一入口,需要時在鍵盤設定 綁 SqlAssist.FocusNotifications。沒有通知時在狀態列說一聲。
這些鍵是命令表的預設繫結,不是 Unified Settings 的偏好,本擴充也不自備鍵盤設定 頁:工具 → 選項 → 環境 → 鍵盤 是唯一權威,自製一份只會不同步。命令表給每顆 按鈕都取了 SqlAssist. 開頭的正式名稱,在該頁搜尋 SqlAssist 就列得出全部命令; 少了那組名稱,殼層只照選單路徑推名字,名稱裡沒有 SqlAssist 就搜不到。
關於與診斷
這個對話框分成概覽/設定摘要/診斷/工作階段統計/通知失敗五頁。「通知失敗」上方是一排測試通知的按鈕,下方列出 本次工作階段最近 30 項失敗的 ID、種類、等級與耗時,可與診斷紀錄對照;降級不進這一頁,見 可見度。「工作階段統計」列出每一件事的呼叫次數、 總耗時、平均、最大、失敗與降級數,可依次數或總耗時排序,超出上限的「其他」固定在最後; 切換排序時一併重讀,這一頁沒有自己的計時器。種類欄沿用設定頁的種類標題, SQL Memory 的工作與事件列在「SQL Memory」。統計不受通知可見度影響,見 通知提示。複製出的摘要適合直接貼到公開 Issue, 不包含 SQL 文字、伺服器名稱、資料庫名稱或 Windows 使用者名稱;完整診斷紀錄仍可能包含 資料庫物件名稱,附檔前應先檢查內容。