Typescript 我的vscode扩展中有一个语法。我希望以编程方式标识TextLine或TextDocument对象中的注释

Typescript 我的vscode扩展中有一个语法。我希望以编程方式标识TextLine或TextDocument对象中的注释,typescript,visual-studio-code,vscode-extensions,Typescript,Visual Studio Code,Vscode Extensions,我正在为ChucK music编程语言开发VSCode扩展。我发布了一个版本,它只使用.tmLanguage.json文件突出显示语法。现在我正在做一个语法检查器 ChucK标识的语法错误位置有点混乱,如果我将范围扩展到刚好超过上一个语句或块的末尾,这将意味着回顾上一个或}字符 这将是简单的,除了我需要跳过评论的事实。恰克·巴斯有C++风格的注释,其中既有代码> > />代码>行注释,也有 /**/< /COD>块注释。我的语法文件正确地突出显示了这些内容 我有没有办法得到语法已经产生的语法信息

我正在为ChucK music编程语言开发VSCode扩展。我发布了一个版本,它只使用
.tmLanguage.json
文件突出显示语法。现在我正在做一个语法检查器

ChucK标识的语法错误位置有点混乱,如果我将范围扩展到刚好超过上一个语句或块的末尾,这将意味着回顾上一个
}
字符

这将是简单的,除了我需要跳过评论的事实。恰克·巴斯有C++风格的注释,其中既有代码> > />代码>行注释,也有<代码> /**/< /COD>块注释。我的语法文件正确地突出显示了这些内容


我有没有办法得到语法已经产生的语法信息来识别这些注释?扫描文档时,我似乎可以获取文本颜色等视觉属性,但这似乎与主题相关,而且容易出错。我的代码如何直接了解语法是如何识别特定字符或区域的?

如果要对自定义语言进行错误检查,必须为此编写完整的解析器。许多扩展作者已经这样做了(或者使用了外部解析器,比如C++的clang)。一旦得到语法结构,就很容易找到特定范围的语法元素,解析器会给出错误位置(如果有错误)


我成功地使用了ANTLR4(通过antlr4ts类型脚本运行时)来解析和处理自定义语言(在我的例子中是ANTLR4语法)。

如果要对自定义语言执行错误检查,您必须为此编写完整的解析器。许多扩展作者已经这样做了(或者使用了外部解析器,比如C++的clang)。一旦得到语法结构,就很容易找到特定范围的语法元素,解析器会给出错误位置(如果有错误)


我成功地使用了ANTLR4(通过antlr4ts类型脚本运行时)来解析和处理自定义语言(在我的例子中是ANTLR4语法)。

如果不自己重新标记文件,这是不可能的,请参阅和。如果有一个API来获取某些特定文本范围的颜色,这对我来说甚至是新闻。如果不自己重新标记文件,这是不可能的,请参阅和。如果有一个API来获取某些特定文本范围的颜色,这对我来说甚至是新闻。