C# 语法高亮着色

2024-04-28

我可以像在 Visual Studio 中一样单独更改字段/局部变量的颜色吗? 下面是 Visual Studio 中的样子(字段变量赋值,读写为绿色,局部变量赋值,读写为白色):

但在 VSCode 中,本地变量和字段变量的范围都是“variable.other.object.cs”和“variable.other.readwrite.cs”,结果是:

(玩家和动画都是绿色的)

我还想区分静态和动态对象,它们都具有“variable.other.object.cs”范围。

在 Visual Studio 中,它看起来像这样:

但在 VSCode 中看起来像这样:

我能做些什么吗? 谢谢


为了实现你想要的,荧光笔需要“理解”代码语义。 VSCode 中引入了语义突出显示今年年初 https://github.com/microsoft/vscode/wiki/Semantic-Highlighting-Overview,而且它对语言的支持仍然有限。 OmniSharp 是 C# 荧光笔背后的引擎,开始支持基于 Roslyn 的语义作为实验性特征 https://github.com/OmniSharp/omnisharp-vscode/pull/3667.

您首先需要选择启用该功能,然后重新启动 VSCode 才能使其生效。

"csharp.semanticHighlighting.enabled": true,

我假设您知道如何调用范围检查器,但为了其他读者,它位于View > Command Pallette > Developer: Inspect Editor Tokens and Scopes

您现在有两个选项来指定自定义突出显示;要么使用新可用的semantic token,或者老派的textMateRule scopes.

语义标记也会给你一个修饰符(static在这个例子中)

"editor.semanticTokenColorCustomizations": {
    "enabled": true,
    "rules": {
        "field.static": {
            "foreground": "#FF0000",
            "fontStyle": "italic",
        },
    },
},

或者,如果您更喜欢使用textMateRules,我还没弄清楚如何指定修饰符。

"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
            "scope": "entity.name.variable.field.cs",
            "settings": {
                "foreground": "#FF0000",
                "fontStyle": "italic",
            },
        },
    ]
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 语法高亮着色 的相关文章

随机推荐

  • 卡住。如何将这 3 个文本居中并间隔开? [复制]

    这个问题在这里已经有答案了 尝试向左 居中 向右移动 3 段文本 尝试使用 CSS 但我陷入困境 Thanks 您可以使用 flex 并将 justify content 设置为 space Between text container d
  • sails.js 嵌套模型

    在 sails js 0 10 中我尝试执行以下操作 user js module exports attributes uuid type string primaryKey true required true profile firs
  • 如何添加将 WC_Product_Variable 扩展到购物车的自定义 WooCommerce 产品类型

    我创建了一个基于内置变量产品类型的自定义 WooCommerce 产品类型 我希望拥有特定于我的产品类型的产品变体以及自定义特征和字段 这一切都在管理和我的自定义前端产品页面模板中正常工作和显示 这是我定制的产品 供参考 add actio
  • Java 轮询网络连接

    我正在用 Java 编写一个程序 在一个线程上打开 256 个网络连接 每当套接字上有任何数据时 我都应该读取它并处理它 目前 我正在使用以下方法 while true do iterate over all network connect
  • 如何测试 django 模板块的使用?

    我想做以下事情 if appnav hr div ul class tabs block appnav endblock ul div endif 但是 测试继承链中模板当前使用的块似乎不起作用 还有其他条件可以做到这一点吗 模板语言并不能
  • 使用 AppleScript 设置窗口位置

    我正在尝试使用 AppleScript 设置 Messages app 聊天窗口的位置 tell application System Events set position of window 1 of application Messa
  • 登录时出现quickblox错误,android

    我正在使用 Quickblox 在 Android 平台上进行聊天 并使用 facebook 身份验证 我这样做这些步骤 1 QBSettings getInstance fastConfigInit 2 QBAuth createSess
  • 如何使用 Typhoon 为集成测试注入假的、存根的或模拟的依赖项

    我正在尝试使用 KIF 编写集成测试 我的问题是 如何为特定视图控制器注入存根 模拟或虚假依赖项 每个使用数据模型 http 客户端 存储管理器等依赖项的视图控制器都来自 ModelAssembly ApplicationAssembly
  • 在 ElasticSearch 7+ 中,如何搜索所有文本字段?

    我想在 Elasticsearch 7 3 中存储的文档中搜索单词 我希望在以前版本的 Elasticsearch 上运行的一个示例是 query bool must match all oliver must not should fro
  • NodeJs util.promisify 不是一个函数

    我正在尝试 promisify mysql 函数 但是当我运行它时 控制台显示此错误util Promisify is not a function 这是我的代码 var util require util var mysql requir
  • 在 R 中查找 Twitter 关注者

    我想使用 R 查找用户的 Twitter 关注者的个人资料 关注者 gt 100000 尽管 twitteR 是一个很棒的软件包 但它在处理大量关注者时存在问题 因为人们需要实施睡眠例程以避免超过速率限制 我是一个相对新手 想知道如何循环遍
  • Python中如何从另一个函数调用一个函数内的函数? [复制]

    这个问题在这里已经有答案了 我已经在 python 中的另一个函数中定义了一个函数 现在我想调用内部函数 在Python中这可能吗 我怎么打电话func2 from func3 def func1 def func2 print Hello
  • 以正确的顺序添加 XML 元素

    我想添加元素到X文档 https msdn microsoft com de de library system xml linq xdocument 28v vs 110 29 aspx我想要构建的 XML 对象和元素的顺序是在 XSD
  • PHP-访问类的所有函数中的全局变量[重复]

    这个问题在这里已经有答案了 我需要在类的大多数函数中访问外部 php 文件的一些变量 我正在通过以下方式访问 并且工作正常 class test function a global myglobalvar function b global
  • javascript设置间隔作为单独的线程运行?

    我想使用计时器作为后备 以防我最终陷入无限循环 看来设置间隔是执行此操作的正确方法 但是 它对我不起作用 根据我的研究 setInterval 似乎应该在后台的单独线程中运行 但我没有看到它 为什么会发生这种行为 我该如何解决这个问题 va
  • 在 JSON-LD 中创建产品数组

    有人能发现我下面的代码有什么问题吗 它不会在 Google 结构化测试工具中进行验证 我正在尝试创建 JSON LD 代码以添加到具有多种待售产品的页面
  • Java中的逆向正则表达式

    Java中如何反转正则表达式 例如 ab de gt ed ba wow 您需要为正则表达式构建一个解析器并反转所有标记 部分 在这种情况下 ab de 是 a b d e 并反转这是 e d b a 现在想象一下群体 ab de 相反的是
  • 正则表达式没有方法测试[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 ATM机允许4 或 6 位数字PIN 码和 PIN 码不能包含任何内容 但exactly 4 位数字或恰好 6 位数字 如果函数传
  • 如何在当前打开的文件中保存 VSTO 加载项的选项?

    我正在为 Powerpoint 2010 构建 VSTO 外接程序 并且外接程序设置的选项适用于当前打开的文件 而不是每个用户的配置 我可以将这些选项保存在当前文件中 我的意思是 将自定义 XML 添加到 PPTX 文件中 吗 如果是这样
  • C# 语法高亮着色

    我可以像在 Visual Studio 中一样单独更改字段 局部变量的颜色吗 下面是 Visual Studio 中的样子 字段变量赋值 读写为绿色 局部变量赋值 读写为白色 但在 VSCode 中 本地变量和字段变量的范围都是 varia