问题标签 [tmlanguage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-code - Visual Studio 代码 tmlanguage 扩展现有语言
我想为 VS 代码创建我的语法,扩展 TypeScript 之一。
这是我tmlanguage.json
用yo code
助手创建的:
这个,没有"include": "source.ts"
很好的工作,我添加了这个包含来显示 TypeScript 语法。添加后,它只识别 TypeScript 代码,而不是我的。
为什么?有人做过类似的事情吗?
visual-studio-code - 可以扩展 Visual Studio Code 中的语言吗?
设想
我有描述要执行的一系列任务的 JSON 文件,其中每个任务都可以引用 JSON 文件中的其他任务和对象。
我希望 JSON 模式验证和自定义语言文本效果(如关键字着色,甚至在 JSON 中的字符串中支持“转到定义”)。
我可以做什么
我可以创建一个扩展名,为文件扩展名“*.foo.json”指定一个 JSON 模式。如果 vscode 将文件识别为 JSON 文件,这将在编辑器中提供模式验证和代码完成。
我还可以在“*.foo.json”文件的扩展中创建一种新的“foo”语言,该文件在 JSON 字符串中具有自定义关键字颜色。为此,我创建了一个从 JSON.tmLanguage.json 复制的 TextMate (*.tmLanguage.json) 文件,然后修改“stringcontent”定义。
问题
问题是模式验证和提示仅在我在状态栏中选择“JSON”作为文件类型时才有效,而自定义文本着色仅在我在状态栏中选择“foo”作为文件类型时才有效。
有没有办法同时拥有两者?我可以在 vscode 中以某种方式扩展 JSON 语言处理吗?
visual-studio-code - 如何通过编辑 tmLanguage.json 文件合并或包含两种不同的代码语法?
我使用Sublime Text 3和Visual Studio Code编写代码,所以无论您知道如何编辑哪个编辑器,请一步一步教我(我是编辑器设置的新手),谢谢。
我想在 pug 中包含php语法,但我不知道如何。
我确实找到了解决方案,但它不起作用,我可能错过了哪一部分?
visual-studio-code - Visual Studio 代码语法高亮 tmLanguage.json
我正在开发我的第一个编译器作为一个培训项目。我还想创建一个小的语法高亮项目。
查看默认的 tmLanguage 文件,我不清楚是什么触发了颜色。例如,我string
在调试时看到该类型实际上触发了字符串着色,但这是什么原因造成的?回购的“字符串”名称?这与着色主题有何联系?我在哪里可以看到默认主题的名称列表等?
看看这些例子,他们似乎跳过了很多信息,所以我不确定从哪里开始。
visual-studio-code - 如何使用扩展向现有的 VSCode 语言扩展添加语法和配置?
我正在尝试通过添加区域来扩展 Microsoft 的 AL 语言。我可以通过转到 vscode 扩展文件夹 .vscode\extensions\Microsoft.al-0.14.17461 并更改文件 al.configuration.json 和 alsyntax.tmlanguage 来手动执行此操作。
但我想通过创建自己的 VSCode 扩展来做到这一点。所以我创建了自己的扩展并将那些特定的文件复制到它+添加我的特定代码。幸运的是它奏效了!
但是,它仅在我使用整个语法文件而不仅仅是我的特定代码时才有效。
下面是 al.configuration.json 的代码,它是我要添加的 ** 之间的折叠部分。
regex - 多行字符串文字的语法高亮显示
我有一种自定义语言,我想在 Visual Studio Code 中为其提供语法高亮显示。
在这种语言中,字符串文字以双引号或单引号开始和结束。以双引号开头的字符串文字可能包含单引号,反之亦然。不会发生任何其他对引号的转义。但无论起始引号类型如何,文字都可能跨越多行。
在我的tmLanguage.json
文件中,我尝试了这些正则表达式:
不幸的是,这只适用于单行文字。然后我尝试了
但是使用(?s)
修饰符,语法突出显示根本不起作用。
有没有办法匹配多行字符串?
regex - 匹配不被大括号括起来的单个字符
我正在制作一个属性列表语法定义文件 ( tmLanguage
) 以供练习。它采用 Sublime Text 的 YAML 格式,但我将在 VS Code 中使用它。
我需要匹配所有未被 . 括起来的字符(包括未终止的{
和) 。}
{}
我尝试使用否定的前瞻和后瞻断言,但它不匹配括号中的第一个或最后一个字符。
添加一个贪心量词来消耗所有字符正好匹配整行。
添加一个惰性量词只会匹配除 . 之后的第一个字符之外的所有内容{
。它也完全匹配{}
。
示例文本文件:https ://raw.githubusercontent.com/spikespaz/windows-tiledwm/master/hotkeys.conf
完整的语法高亮:
visual-studio-code - 在 vscode tmLanguage 中扩展 markdown
我正在尝试为 VS 代码降价添加一些新的颜色。
包.json
markdown.tmLanguage.json
它的想法是为@john之类的东西着色。但是在如何使它工作上有点迷失。
visual-studio-code - VS Code 自定义扩展输出正则表达式错误
我正在尝试为一种新语言创建一个自定义扩展,并发现我认为正则表达式风格/选项没有得到很好的记录。我在其他 SO 问题上找到了与 github 问题相同的链接,但所有讨论提供的是 VS Code 使用 Rust 引擎进行“查找/替换”,而不是扩展语言正则表达式模式/规则。
编译新扩展时,有什么方法可以在调试视图中输出正则表达式匹配/错误?在任何情况下,模棱两可的“无效组”错误消息对任何人都没有帮助。我还发现查找/替换功能也不是一个好的选择,因为 tmLanguage 正则表达式模式允许查找/替换功能不允许的某些事情,而且它是一个用于长正则表达式的小盒子。
如果可能的话,我只想查看特定错误,甚至更乐观地定位/分组特定错误