vscode SCSS语法高亮部分间歇性地中断

c3frrgcw  于 4个月前  发布在  Vscode
关注(0)|答案(8)|浏览(69)

类型:Bug
在编辑scss文件时,语法高亮会突然中断。
预期的语法高亮效果如下:

问题发生时的语法高亮效果如下:

我找到的两个解决方法是:

  • 关闭并重新打开文件
  • 注解和取消注解受影响的代码

这个问题已经困扰我大约一年了,我以为等更新看看会不会停止出现。
不幸的是,我仍然无法确定问题发生的确切情况:
有时是在滚动文件时发生。其他时候,无论我在做什么类型的编辑(例如添加新的代码块或属性,编辑现有属性,粘贴代码等),都会发生。
有时它会在文件的更远处发生,有时在更近的地方,而且只是偶尔发生(似乎是随机的)。我不记得它发生在我正在工作的代码附近。
VS Code版本:Code 1.87.1 ( 1e790d7 , 2024-03-06T00:22:39.156Z)
操作系统版本:Darwin arm64 23.2.0
模式:
系统信息
| 项目 | 值 |
| ------ | ------ |
| CPUs | Apple M1 Pro (8 x 24) |
| GPU状态 | 2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabled |
| 平均负载 | 6, 5, 5 |
| 内存(系统) | 16.00GB (0.11GB free) |
| 进程参数 | --crash-reporter-id c69f3ecc-4eef-4b9a-a984-f59297cd4b59 |
| 屏幕阅读器 | no |
| VM | 0% |扩展名(32)
| 扩展名 | 作者(省略) | 版本 |
| ------ | ------ | ------ |
| project-manager | ale | 12.7.0 |
| htmltagwrap | bra | 1.0.0 |
| vscode-toggle-quotes | Bri | 0.3.6 |
| npm-intellisense | chr | 1.4.5 |
| path-intellisense | chr | 2.8.5 |
| vscode-eslint | dba | 2.4.4 |
| gitlens | eam | 14.9.0 |
| vscode-html-css | ecm | 2.0.9 |
| EditorConfig | Edi | 0.16.4 |
| prettier-vscode | esb | 10.4.0 |
| auto-close-tag | for | 0.5.15 |
| auto-rename-tag | for | 0.1.10 |
| macros | ged | 1.2.1 |
| copilot | Git | 1.175.0 |
| copilot-chat | Git | 0.13.1 |
| vscode-github-actions

6mw9ycah

6mw9ycah1#

感谢您提出这个问题!看起来您可能正在使用旧版本的VS Code,最新稳定版本是1.87.2。请尝试升级到最新版本并检查此问题是否仍然存在。
快乐编码!

ztigrdn8

ztigrdn82#

所有文件?
还是只发送特定的CSS文档?
[F1] => Inspect TextMate Tokens
您能发送一个文件吗?

rbpvctlc

rbpvctlc3#

仅在SCSS语法文档中注意到它,但很难说是否受到CSS或其他影响,因为我不处理它们。
是的,我可以发送一个文件。我想象如果没有任何外部依赖项(变量、混合等),它会很有帮助?
我只是补充一下,这种情况发生在不同的项目目录中的任何SCSS文件中。
你想让我在问题发生时检查TextMate标记吗?
在预期的高亮显示下,我有这个:
| 属性 | 值 |
| ------------ | ------------ |
| 语言 | scss |
| 标准标记类型 | 其他 |
| TextMate范围 | punctuation.separator.delimiter.scss, meta.property-value.scss, meta.property-list.scss, meta.property-list.scss, source.css.scss |
| 前景 | 没有主题选择器 |

mpgws1up

mpgws1up4#

它在我写那行代码时又开始这样做了。这是没有高亮显示的部分的检查器。我将光标放在一个属性名上。

属性
languagescss
standard token typeOther
textmate scopessupport.type.property-name.css, meta.property-name.scss, meta.property-list.scss, meta.property-list.scss, meta.property-list.scss, source.css.scss
foregroundsupport.type.property-name, { "foreground": "#8FA1B3" }

修复问题后,调试输出完全相同。我还注意到,如果我将代码的这部分滚动出视口,当我将其滚动回来时,我可以在文本变白之前短暂地看到正确的高亮显示。有点像渲染问题。

piok6c0g

piok6c0g5#

其他文件不会影响文档的语法高亮。因此,如果我们能够将其确定为特定内容并进行更改,这将非常有用。
此外,为了确保这不是由其他扩展程序引起的,请在运行时禁用扩展名。

35g0bw71

35g0bw716#

如果这有帮助的话,我刚刚注意到了相同的滚动行为。当我滚动时,一部分代码变成了白色(没有进行编辑)。当我继续向下滚动时,我能短暂地看到正确的语法高亮,然后那部分代码也变成了白色。
如果我快速向下滚动得足够多,它就会停止“扩散”。但一旦我回到高亮消失的地方,它又开始向下“扩散”。
这很奇怪,我不认为我以前见过这种情况(猜想现在我报告了这个问题,它开始出问题了😂)。
稍后我会尝试不使用扩展程序。

whhtz7ly

whhtz7ly7#

你能提供一个样例文件吗?
我猜如果它没有任何外部依赖的话,会很有帮助。
语法高亮仅限于每个文档内部,所以任何外部的都不会起作用。
你能够确认没有扩展造成这个问题吗?

jxct1oxe

jxct1oxe8#

嘿,@alexr00,这个问题可能需要进一步关注。
@udyux,如果你发现问题已经不存在了,你可以帮我们关闭这个问题,或者提供更多的信息。

相关问题