我的第一個 VSCode 插件

代碼庫連結: https://github.com/shader-ls/vscode-shader 2023 年 8 月 23 日。我創建了我的第一個 VSCode 插件 – vscode-shader。 我的意圖很簡單:在 VSCode 中為我幾個月前創建的 shader-language-server 創建一個語言服務器客戶端。🤔 🔰 簡單且良好的用戶體驗 首先,開發一個 VSCode 插件非常簡單。特別是為 VSCode 開發語言服務器的客戶端。 他們的網站上有許多示例和良好的文檔,使開發人員非常容易。我使用 uniteai 和 grammarly-language-server 作為參考。 📦 發布到 VSCode Marketplace 發佈到 VSCode 可能是最具挑戰性的步驟,因為您需要導航到 Azure DevOps, 這似乎與 VSCode Marketplace 完全無關! 🤔 然後獲取 Personal Access Token, 以便將您的包發佈到市場。它仍然很簡單,但在 Azure DevOps 部分卻相當令人困惑。 然後你只需要 npm install -g @vscode/vsce、vsce package 和 vsce publish。 發佈時,系統會要求您輸入 PAT! 您可以訪問 VSCode 的 Publishing Extensions 網站了解更多信息! 🎖️ 成就 創建了語言服務器的客戶端, vscode-shader。 我的第一個發布的 VSCode 插件包,請參閱 https://marketplace.visualstudio.com/items?itemName=shader-ls.vscode-shader.

August 24, 2023 · 1 分鐘 · 76 字 · Jen-Chieh Shen

Shader 语言服务器

代碼庫連結: https://github.com/shader-ls/shader-language-server 2023 年 4 月 30 日。我創建了我的第一個語言服務器,它對某人確實有用。 我不久前嘗試過一個語言服務器,但它只是一個示例服務器,所以它不是很有用, 而且僅用於教育目的。 我選擇編寫的目標語言是 ShaderLab 語言。 ShaderLab 用於 Unity 引擎, 因此您可以編寫自定義著色器來風格化您的遊戲。與常規編程語言不同,ShaderLab 分析起來要簡單得多,因此語言服務器可以響應客戶端。 ❓ 為什麼選擇C#作為實現語言? 由於 Unity Engine 最受歡迎的腳本語言是 C#,因此我認為選擇 C# 是最佳選擇。 💀 C# Language Server Protocal 地獄 在開始用 C# 編寫語言服務器之前,我就已經有一種不好的預感,因為我對作者 Omnisharp 的插件一直沒有好印象。我在 VSCode Marketplace 上嘗試過他們的官方 C# 插件,但說實話, 我不會說我喜歡它。以下是一些原因: 很慢 不斷的突破性變化。下次更新就沒啥作用了! 維護者不是很活躍(但社區很友好) 儘管如此,我還是堅持嘗試一下 csharp-language-server-protocol,因為沒有其他合理的選擇。 經過幾天的挖掘,我面臨以下問題: 官方存儲庫中的示例要么損壞,要么不完整(有點無用) 過時或缺乏文檔 他們並不真正關心其他編輯。 (許多編輯器兼容問題和 PR 尚未解決) 幸運的是,我找到了 @gulbanana 創建的 thousand 語言服務器和 @tgjones 創建的 HlslTools。因此,我能夠通過看到他們的實現來完成這個項目! 😅😇 附註: 我花了很長時間才弄清楚事情!!!💀 ⚙️ 插入 ShaderlabVS 另一個挑戰是語言服務器的引擎。什麼解析文本文檔並向客戶提供合理的響應?然後我找到了一個已 經為我做到這一點的項目—— ShaderlabVS。這是一個理想的解決方案,因為也是用 C# 實現的。 感謝作者 @wudixiaop 這個令人驚嘆的項目! ❤️ ...

August 23, 2023 · 1 分鐘 · 133 字 · Jen-Chieh Shen