簡體   English   中英

我的vscode擴展名中有語法。 我想以編程方式標識TextLine或TextDocument對象中的注釋

[英]I have a grammar in my vscode extension. I want to programmatically identify comments in a TextLine or TextDocument object

我正在為ChucK音樂編程語言開發VSCode擴展。 我發布了一個僅使用.tmLanguage.json文件進行語法高亮顯示的版本。 現在,我正在研究語法檢查器。

ChucK標識的語法錯誤位置有些混亂,如果我將范圍擴展到前一個語句或塊的末尾,這將更清楚,這意味着向后看前一個; }字符。

這很簡單,除了我需要跳過評論的事實。 ChucK具有C ++樣式的注釋,並帶有//行注釋和/* */塊注釋。 這些由我的語法文件正確突出顯示。

我有什么辦法可以獲取語法所產生的語法信息來識別這些注釋? 掃描文檔后,看來我也許能夠抓住諸如文字顏色之類的視覺屬性,但這似乎與主題相關且容易出錯。 我的代碼如何直接了解語法如何識別特定字符或區域?

如果要對自定義語言進行錯誤檢查,則必須為此編寫一個完整的解析器。 許多擴展作者已經做到了這一點(或者使用外部解析器,例如C ++的clang)。 一旦獲得了語法結構,就很容易找到一定范圍的語法元素,並且解析器將為您提供錯誤位置(如果有錯誤)。

我成功地使用了ANTLR4(通過antlr4ts打字稿運行時)來解析和處理自定義語言(以我的情況為ANTLR4語法)。

暫無
暫無

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

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