主題的語意強調

Ruby LSP 支援語意強調,可告知編輯器關於程式碼各部分的正確符號類型,以實現豐富且精確的強調顯示。如果您是主題開發者或想增強編輯器中的 Ruby 語法強調顯示,本指南將簡要概述可用的語意符號以及如何使用它們。

Ruby LSP 採取的策略是僅針對 Ruby 中語法不明確的部分(而不是所有現有的符號)返回符號,以優化效能。

Ruby 中語法不明確的一個例子是區域變數和方法呼叫。如果您單獨查看這一行

foo

無法判斷 foo 是區域變數還是方法呼叫。這取決於之前是否已將 foo 指定給某個值。這是語意強調消除主題歧義的一種情況,透過靜態分析程式碼返回正確的符號類型。

若要使用 Ruby LSP 增強主題的 Ruby 語法強調顯示,請查看以下資訊。您可能還想查看 Spinel 主題 作為範例,它使用了 Ruby LSP 的所有語意強調顯示資訊。

符號類型

根據 LSP 規範,語言伺服器可以使用 預設列表 中的符號類型和修飾詞,或者貢獻它們自己的新語意符號。目前,Ruby LSP 沒有貢獻任何新的語意符號,僅使用預設列表中包含的符號。

符號列表

語法 類型.修飾詞 備註
Sorbet 註釋方法,例如 letcast type 並非每個註釋都會被處理
任何語法的方法呼叫 method  
常數參考(包括類別和模組) namespace 我們尚未區分模組和類別參考
方法定義 method.declaration  
self variable.default_library  
方法、區塊和 lambda 參數 parameter  
類別宣告 class.declaration  
模組宣告 class.declaration