簡體   English   中英

VSCode 語言擴展(GameMaker / GML 文件)的變量名稱自動完成?

[英]Variable name autocomplete for VSCode Language Extension (GameMaker / GML files)?

我正在VSCode 中編輯 GML 文件( GameMaker Studio )。 有一個很棒的插件, GML Support ,它為內置的 GML 函數和實例變量添加了自動完成功能以及其他一些很酷的東西。

但是,VSCode 似乎無法識別 GML 中的局部變量(請參閱下面的屏幕截圖。點符號工作正常)

我查看了VSCode 的 Programmatic Language Extension以進行變量名稱自動完成,但仍然不知道如何使用 VSCode 的語言服務器注冊變量聲明(即var fooBar = 23; )。

理想情況下,我希望語言服務器尊重 GML 文件的變量范圍:

  1. 全局變量 - script文件夾下文件的任何var聲明
  2. 任何局部變量聲明 - 周圍{...}中的所有var聲明

如上所述添加變量名完成的最簡單方法是什么?

提前致謝!


編輯:查看vscode-python以了解如何使用registerCompletionItemProvider (基於VSCode 語言擴展 doco )。 不幸的是,我仍然不清楚,因為 vscode-python 似乎依賴絕地來提供符號?

所以任何積分表示贊賞!

在此處輸入圖片說明

如果您想啟用簡單的自動完成,您可以將以下內容添加到您的settings.json (命令面板➜ 打開設置(JSON)):

  "[gml-gms81]": { "editor.quickSuggestions": true },
  "[gml-gms1]": { "editor.quickSuggestions": true },
  "[gml-gms2]": { "editor.quickSuggestions": true },

這適用於解決方法:

在此處輸入圖片說明


對於適當的解決方案,您需要使用registerCompletionItemProvider並根據需要或隨時索引文件。

官方示例演示使用。

對於處理 GML 語法的復雜性,您可以在我制作的基於 Ace 的外部編輯器中查看代碼 處理變量定義特別要求您以相對置信度(可以通過平衡解析器完成)跳過字符串、注釋和循環值( var name[=value][, name2[=value2]] )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM