当前位置: 首页 > 知识库问答 >
问题:

VSCode-更改打字稿函数装饰器的颜色

徐智渊
2023-03-14

有没有办法在VSCode中更改装饰器的语法高亮颜色?举个小例子:

     @HostListener('mouseenter')
     onMouseEnter() {}

< code>@HostListener和< code>onMouseEnter都以相同的颜色突出显示。我想改变这一切。到目前为止,我已经尝试使用< code > " editor . tokencolorsumptions ":{ " functions ":" somecolor here " } } ,但是这同时改变了装饰器和函数声明。

共有2个答案

楚乐逸
2023-03-14

有关如何查看语法范围,请参阅检查文本匹配范围和类似内容。因此,类似的事情会改变装饰器符号@的颜色:

 {
    "scope":  [
       "punctuation.decorator.js", 
        // "meta.decorator.js",
     ],

     "settings": {
        "foreground": "#e100ff",
        "fontStyle": "bold"
     }
}

这只影响< code>@符号,我找不到一种方法来着色@符号及其相关的函数名,也没有其他函数名。

如果你真的想要的话,有一个变通方法可以做到这一点。那就是使用一个单词荧光笔,比如待办事项突出显示,并制作一个正则表达式来做你想要的。比如:

"todohighlight.keywordsPattern": "@[\\w-_]*",

"todohighlight.defaultStyle": {
    "color": "red",
    // "letterSpacing": "1px",
    // "backgroundColor": "rgba(170,102,0,1)",
    "backgroundColor": "transparent",
    // "borderRadius": "4px",
    "isWholeLine": false
  }
曾德水
2023-03-14

这是我的配置,使用TODO高亮显示作为标记建议,我排除了< code>require和< code>import以避免干扰js和手写笔

屏幕截图上的快速注释:默认斜体样式来自此处,inline属性来自此处

"todohighlight.isEnable": true,
"todohighlight.isCaseSensitive": true,
"todohighlight.keywordsPattern": "@(?!require|import)[\\w-_.]*",
"todohighlight.defaultStyle": {
    "color": "#1E88E5",
    "backgroundColor": "0",
    "fontWeight": "bold"
},
"todohighlight.include": [
    "**/*.js",
    "**/*.ts",
    "**/*.vue",
],
"todohighlight.exclude": [
    "**/node_modules/**",
    "**/bower_components/**",
    "**/dist/**",
    "**/build/**",
    "**/.vscode/**",
    "**/.github/**",
    "**/_output/**",
    "**/*.min.*",
    "**/*.map",
    "**/.next/**"
],
"todohighlight.maxFilesForSearch": 5120,
 类似资料:
  • TypeScript 1.5现在有了装饰器。 有人能提供一个简单的例子来演示实现装饰器的正确方法,并描述可能有效的装饰器签名中的参数意味着什么吗? 此外,在实现decorator时,是否应该记住任何最佳实践注意事项?

  • 我们知道,在 Python 中,我们可以像使用变量一样使用函数: 函数可以被赋值给其他变量 函数可以被删除 可以在函数里面再定义函数 函数可以作为参数传递给另外一个函数 函数可以作为另一个函数的返回 简而言之,函数就是一个对象。 对一个简单的函数进行装饰 为了更好地理解装饰器,我们先从一个简单的例子开始,假设有下面的函数: def hello(): return 'hello world'

  • 主要内容:带参数的函数装饰器,函数装饰器可以嵌套前面章节中,我们已经讲解了 Python 内置的 3 种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。 那么,函数装饰器的工作原理是怎样的呢?假设用 funA() 函数装饰器去装饰 funB() 函数,如下所示: 实际上,上面

  • 问题内容: 目前,我们的代码存在一种情况,即我们在Java层中使用枚举,该枚举通过以下构造函数存储id和“显示值”: 我们希望打字稿中的某些内容能够与之匹配,以便以有意义的方式显示状态以执行逻辑并在前端向用户显示值。这可能吗?有没有更好的方法来解决这个问题?我们希望避免使用诸如status.id()= 1或status.name()=’Active’这样的逻辑,从而推动枚举。 谢谢 问题答案: T

  • 问题内容: 我想这就是它们的称呼,但我会举一些例子以防万一。 装饰类: 装饰器功能: 使用一个或另一个只是口味的问题吗?有实际区别吗? 问题答案: 如果您可以编写函数来实现装饰器,则应首选它。但是并非所有装饰器都可以轻松地编写为一个函数-例如,当您要存储一些内部状态时。 我见过人们(包括我自己)经过荒唐的努力,只用函数编写装饰器。我仍然不知道为什么,一个班级的开销通常可以忽略不计。

  • 问题内容: 举个例子: 我遇到的问题是,甚至在我调用要装饰的函数之前就调用了。 开始输出: 在这一点上,我什至没有调用过一个装饰过的函数。 我刚刚开始使用装饰器,所以也许我缺少了一些东西。 问题答案: 我相信python装饰器只是语法糖。 和…一样 如您所见,即使没有调用 bar 也将调用 foo 。这就是为什么您看到装饰器函数的输出的原因。对于您将装饰器应用到的每个函数,您的输出应只包含一行。