最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Godot 游戲開發(fā),只需要 Sublime Text + LSP[2]

2023-02-08 21:24 作者:緊果唄  | 我要投稿

?? Godot 游戲開發(fā),只需要 Sublime Text + LSP

LSP - Language Server Protocol 編程語言服務(wù)器協(xié)議


  • https://docs.godotengine.org/en/stable/tutorials/editor/command_line_tutorial.html

  • [GDScript support for Sublime Text](https://packagecontrol.io/packages/GDScript%20(Godot%20Engine)

  • [LSP - Language Server Protocol for Sublime Text](https://packagecontrol.io/packages/LSP)

  • [LSP Client - GDScript (Godot Engine)](https://lsp.sublimetext.io/language_servers/#gdscript-godot-engine)

  • [Language Server Protocol Specification](https://microsoft.github.io/language-server-protocol/specification)

  • [TypeScript Wiki - Writing a Language Service Plugin](https://github.com/Microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin)

  • godot\3.5.1-stable\editor\editor_settings.cpp

  • godot\3.5.1-stable\modules\gdscript\language_server\lsp.hpp

  • godot\3.5.1-stable\modules\gdscript\language_server\gdscript_language_server.h

  • godot\master\modules\gdscript\language_server\godot_lsp.h

  • godot\master\modules\gdscript\language_server\gdscript_language_server.h

  • godot\master\modules\gdscript\language_server\gdscript_language_protocol.h

Sublime 安裝 LSP 插件并啟用 Godot LSP 后的編程環(huán)境

LSP - Language Server Protocol 是一種用于給編輯器提供代碼提示功能的協(xié)議,LSP 協(xié)議定義的是代碼編輯器與指定語言語法、關(guān)鍵字和各種對象符號之間的通信文檔格式,編輯在編寫代碼的過程中,會將內(nèi)容發(fā)送到 LSP 服務(wù)器。而各種語言的官方通常會實(shí)現(xiàn)自家的 LSP Client,LSP 服務(wù)器根據(jù)配置文件相詢指定語言對應(yīng)的 LSP Client,并從其獲取符合 LSP 協(xié)議規(guī)范的數(shù)據(jù),并反饋給代碼編輯器,通常代碼編輯器中會通過插件的形式提供 LSP 功能。比如,VSCode 或者 Sublime Text 等軟件都有相應(yīng)的 LSP 插件。


LSP - Language Server Protocol 是一種編程輔助工具,簡單地說 LSP 協(xié)議有兩個(gè)主體:

  1. - Editor 按照 LSP 的消息規(guī)范向 Language Server 方發(fā)送用戶操作、當(dāng)前編輯代碼的相關(guān)信息;

  2. - Server 按照 LSP 協(xié)議提供查詢服務(wù),響應(yīng)編輯器請求,并根據(jù)程序上下文給出建議、語法檢查、自動完成等等。

LSP 的好處就是統(tǒng)一,所以語言通過服務(wù)器提供智能操作,通數(shù)據(jù)通信使用 JSON RPC protocol,用性極高。


URI 格式參考 http://tools.ietf.org/html/rfc3986



除了使用 LSP 本地代碼提示服務(wù),另外還有 Language Server Index Format (LSIF) 語言服務(wù)器索引,這種數(shù)據(jù)格式的目標(biāo)是支持開發(fā)工具或 Web UI 中的豐富代碼導(dǎo)航,而不需要源代碼的本地副本。該格式在本質(zhì)上類似于語言服務(wù)器協(xié)議(LSP),它簡化了將豐富的代碼編輯功能集成到開發(fā)工具中的過程。


LSP 提供了豐富的代碼創(chuàng)作功能,例如自動完成、類型格式化和豐富的代碼導(dǎo)航。為了有效地提供這些功能,語言服務(wù)器要求所有源代碼文件都在本地磁盤上可用。LSP 語言服務(wù)器還可以將部分或全部文件讀入內(nèi)存并計(jì)算抽象語法樹以支持這些功能。LSIF 的目標(biāo)是增強(qiáng) LSP 協(xié)議以支持沒有這些要求的豐富代碼導(dǎo)航功能。LSIF 為語言服務(wù)器或其他編程工具定義了一種標(biāo)準(zhǔn)格式,以發(fā)布他們關(guān)于代碼工作空間的知識。此持久化信息稍后可用于響應(yīng)對同一工作區(qū)的 LSP 請求,而無需運(yùn)行語言服務(wù)器。


當(dāng)前 LSIF 規(guī)范版本還支持:

  • ? ?1. Document symbols

  • ? ?2. document links

  • ? ?3. Go to Definition

  • ? ?4. Go to Declaration

  • ? ?5. Go to Type Definition

  • ? ?6. Find All References

  • ? ?7. Go to Implementation

LSP Specification 3.16 Major new feature are:

  1. ? ?1. Semantic Token support

  2. ? ?2. Call Hierarchy support

  3. ? ?3. Linked Editing support

  4. ? ?4. Moniker support

  5. ? ?5. Events for file operations (create, rename, delete)

  6. ? ?6. Change annotation support for text edits and file operations (create, rename, delete)

LSP 2.x Messages overview 注意箭頭表示消息流向,右側(cè)為 Client ?? Server,帶回鉤表示有回復(fù):

在 VSCode 或 Sublime Text 使用 LSP 插件。安裝插件后,使用 LSP: Troubleshoot Server 來檢測 clangd 等語言服務(wù)是否正常,即安裝了 Clangd 并可以在路徑環(huán)境變量中搜索到它。


Godot 也實(shí)現(xiàn)了 LSP Client 服務(wù),新舊版本默認(rèn)服務(wù)端口分別是 6005 和 6008。這些配置都可以通過EditorSettings 進(jìn)行設(shè)置:

配置 Sublime Text 以運(yùn)行 GDScript 腳本,根據(jù) Godot 路徑修改 PATH 環(huán)境變量:

  • 先創(chuàng)建構(gòu)建配置,執(zhí)行菜單: Tools -> Build System -> New Build System ...

  • 將以下 JSON 配置粘貼到配置文件中,并保存到 Packages\User\Godot.sublime-build 文件

  • 然后打開 GDScript 腳本,按 Ctrl+B 執(zhí)行構(gòu)建命令


推薦安裝以下插件,以提供語法高亮和自動完成功能:

  • GDScript support for Sublime Text

  • LSP - Language Server Protocol for Sublime Text

安裝好插件后,需要配置 LSP,將以下配置寫入 Preferences > Package Settings > LSP > Settings,根據(jù) Godot 可執(zhí)行程序修改路徑,添加 "godot-lsp" 客戶服務(wù)后就可以通過 LSP 提供自動完成,以及上下文提示:

啟動 Godot 編輯器后,默認(rèn)就會啟用 LSP Client,在編輯器設(shè)置中可以修改默認(rèn)配置。Sublime Text 的快捷命令面板中,Ctrl-Shift-P,執(zhí)行 LSP: Troubleshoot Server 可以對語言服務(wù)進(jìn)行檢測。如果配置的端口不一致,就會導(dǎo)致服務(wù)連接不上,如果沒有使用對應(yīng) Godot 版本的端口,那么提供的提示信息就可能不是最準(zhǔn)確的。比如,舊版 ClassDB.instance() 和新版本的 instantiate() 是用于執(zhí)行類型實(shí)例的函數(shù),可能因?yàn)槭褂玫?Godot LSP Client 版本不同而出現(xiàn)不同的提示信息。


Sublime Text 中,啟用 Godot LSP 服務(wù)時(shí),會自動打開配置中 Godot 編輯器以運(yùn)行 LSP Client。如果,已經(jīng)運(yùn)行其它同版本的 Godot 編輯器,那么 LSP Client 就可能已經(jīng)在運(yùn)行了,自動打開的可以關(guān)閉。


Godot 游戲開發(fā),只需要 Sublime Text + LSP[2]的評論 (共 條)

分享到微博請遵守國家法律
南雄市| 美姑县| 宜州市| 罗甸县| 祁连县| 米泉市| 牡丹江市| 吐鲁番市| 德清县| 汉川市| 宁明县| 华宁县| 丰都县| 府谷县| 勐海县| 上虞市| 建水县| 收藏| 江油市| 晋城| 渑池县| 江门市| 西乌珠穆沁旗| 博爱县| 乳源| 聊城市| 小金县| 壶关县| 剑河县| 景洪市| 青阳县| 襄汾县| 兴山县| 达日县| 临泉县| 蛟河市| 会泽县| 雷山县| 龙陵县| 德昌县| 晴隆县|