在我当前文本编辑器主题的tmTheme文件中有许多选项,包括下面代码中的选项.是否有一个名单的地方,它定义了可以包括在此列表中的所有可能的标签(例如background,inactiveSelection,findHighlight等)?
<dict>
<key>background</key>
<string>#1a1a1a</string>
<key>caret</key>
<string>#B6ECF9AF</string>
<key>foreground</key>
<string>#ecf0f1</string>
<key>invisibles</key>
<string>#F3FFB51A</string>
<key>lineHighlight</key>
<string>#2a2a2a</string>
<key>selection</key>
<string>#e74c3c55</string>
<key>selectionForeground</key>
<string>#ffffff</string>
<key>findHighlight</key>
<string>#e74c3c</string>
<key>inactiveSelection</key>
<string>#e74c3c77</string>
<key>gutter</key>
<string>#2a2a2a</string>
<key>gutterForeground</key>
<string>#ffffff</string>
<key>guide</key>
<string>#222222</string>
<key>activeGuide</key>
<string>#ffffff</string>
</dict>
Run Code Online (Sandbox Code Playgroud)
另一个带有更多标签的例子:其他主题
如果相关,我正在使用VSCode.
themes syntax-highlighting visual-studio-code tmlanguage vscode-extensions
我想补充的话and,or,not(对LUA),以所谓的“Visual Studio的黑暗”的Visual Studio代码的主题,包括在vscode定期下载,并在“选择颜色主题”屏幕被称为“黑暗(Visual Studio中)”
我已经在线搜索并找到以下页面:
Visual Studio Code Themes。通过页面中的图片可以清楚地看到此页面,可以通过在settings.json文件中添加设置来完成此操作。我添加了"editor.tokenColorCustomizations"该页面第二张和第三张图片中所示的设置。
通过两页的链接,我进一步找到了该页面:范围命名,这说明了将操作符“和”添加到我的规则中,我需要具有范围:"keyword.operator.word"。
然后,我使用在线颜色选择器从具有所需代码的语法突出显示图片中获取所需的特定颜色。(我找不到定义此文件的文件,但这是第二个问题。)
这是我想出的:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "keyword.operator.word",
"settings": {
"foreground": "#569BD2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是在保存文件之后,关闭窗口并再次打开它,这就是我看到的内容:
我正在尝试通过添加区域来扩展 Microsoft 的 AL 语言。我可以通过转到 vscode 扩展文件夹 .vscode\extensions\Microsoft.al-0.14.17461 并更改文件 al.configuration.json 和 alsyntax.tmlanguage 来手动执行此操作。
但我想通过创建自己的 VSCode 扩展来做到这一点。所以我创建了自己的扩展并将这些特定文件复制到其中+添加我的特定代码。幸运的是它起作用了!
然而,只有当我使用整个语法文件而不仅仅是我的特定代码时,它才有效。
下面是 al.configuration.json 的代码,它是我要添加的 ** 之间的折叠部分。
{
**"folding": {
"markers": {
"start": "^\\s*//\\s*#region\\b",
"end": "^\\s*//\\s*#endregion\\b"
}**
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"],
["BEGIN", "END;"],
["begin", "end;"],
["Begin", "End;"]
],
"autoClosingPairs": [
{ "open": "BEGIN", "close": "END;", "notIn": ["string", "comment"] },
{ "open": "begin", "close": "end;", "notIn": ["string", "comment"] },
{ "open": "Begin", "close": "End;", "notIn": ["string", "comment"] },
{ "open": "{", …Run Code Online (Sandbox Code Playgroud) 我正在使用Sublime Text 3,在这种情况下编辑LaTeX.为了进一步自定义语法高亮,我想定义一个新的范围,只是扩展了发货 LaTeX.tmLanguage(我没有访问权限,甚至没有阅读).NB我没有兴趣编写我自己的tmLanguage文件,甚至没有下载现有文件,我只是想扩展它,就像在Python中重载类一样.
特别是我想添加meta.footnote.latex一个自定义语法高亮\footnote{...}(我在https://github.com/bradrobertson/sublime-packages/blob/master/LaTeX/LaTeX.tmLanguage中找到的一个定义)
我想将最简单的(mvp)语言语法和语法高亮添加到vscode。
(imo)一团糟的TextMate文档(适用两个不同版本)和随机的互联网建议。我无法制作一个基本示例,也找不到一个。
如何添加仅具有一个规则(例如:将“ foo”视为
mylang.symbol.foo)和影响该符号的单一着色规则的语言语法?
grammar textmate2 visual-studio-code tmlanguage vscode-extensions
我看到了这个存储库。sublimehq/Packages 我使用 sublime text 3,但我不知道 tmLanguage 文件。我也用谷歌搜索了它的定义,但我找不到它。它是什么?
我正在使用 vscode 一个我自己定制的主题,它是基于另一个主题的。目前这样的文本显示为白色:
"""一些Python注释"""
我想更改颜色,但找不到要更改的正确属性。我尝试将其添加到*.tmTheme文件中,但它没有改变任何内容:
<dict>
<key>name</key>
<string>Quotes</string>
<key>scope</key>
<string>markup.quote</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#F77669</string>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
能否请你帮忙?预先非常感谢您!
VSCode 建立在 MonacoEditor 之上,MonacoEditor 不支持 Textmate 语法和主题。但不知何故 VSCode 使它成为可能。我很好奇 VSCode 是如何做到这一点的。
我问是因为我正在制作一个带有 TextMate 语法和主题支持的代码编辑器(基于 Monaco)。但我无法理解如何实现它。
尽管有一些软件包monaco-textmate可以使 TextMate 语法与 Monaco 一起使用,但语法突出显示仍然无法正常工作。
我正在使用 VScode 并创建我自己的语言扩展来突出显示语法,我需要使用正则表达式来查找注释。
基本规则是后面的所有内容!都是注释,但是有一个特殊情况。当!在内部eval()命令时,它意味着 NOT。
例如,我的一些代码如下所示:
if condition=(eval(!DB_EXIST)) ! this is a comment
(eval( !DB_UPDATED && !DB_EXIST)) !---"!" inside eval() means NOT
!this is another comment
<some commands> ! this is also a comment
Run Code Online (Sandbox Code Playgroud)
第!DB_EXIST1 行和第 2 行不应该被解释为注释,并且!后面会跟一个非空格。
注释中的空格无关紧要。
"comments": {
"patterns" [{
"match":"regex1",
"name":"comment"
}]
},
"operator": {
"patterns" [{
"match":"regex2",
"name":"keyword.operator.NOT"
}]
},
Run Code Online (Sandbox Code Playgroud)
我应该使用什么样的正则表达式 1 和 2 来显示不同的评论颜色而不是?
我不擅长这个扩展写作,所以如果有更好的方法来完成这项工作,我将不胜感激。谢谢!
更新
@Gama11 帮助了我,但我没有完全涵盖我的代码示例中的所有情况。“!”之后的任何非空格 也应该是注释,只要“!” 不在 eval() 内。
到目前为止,我在https://github.com/Microsoft/vscode/issues/6056 上查看了一个请求,该请求已根据要着色的主题元素的完整列表关闭?. 这反过来发送到https://code.visualstudio.com/docs/getstarted/themes和https://code.visualstudio.com/docs/getstarted/theme-color-reference但没有关于范围的信息。
我能找到的最接近的灵感来源是https://github.com/Microsoft/vscode/blob/master/extensions/theme-defaults/themes/hc_black.json但它远不是微软发布的官方完整的、系统的列表/树C# 特定范围。
如果重要的话,它开始于需要按范围(即本地与外部范围)或访问修饰符(即私有保护等)对变量进行颜色区分。