vscode 中 scss 的错误自动注释

wrong auto comments for scss in vscode

我的 .scss 文件中的自动注释有问题。通过自动注释,我的意思是 'CTRL + /' 注释掉选定的代码。当我在我的 scss 文件中执行此操作时,它会添加 JS 注释“//”。所以输出看起来像这样:

body {
  font-size: 1rem;
  line-height: 1.4;
  // overflow-x: hidden;
}

什么时候应该是:

body {
  font-size: 1rem;
  line-height: 1.4;
  /* overflow-x: hidden; */
}

如果我将 .scss 文件重命名为 .css,那么自动注释工作正常。我猜这与 VSCode 内的设置有关,是用户设置还是工作区设置?

我相信这是按预期工作的,因为 SCSS supports both ways 评论,我认为 Visual Studio 代码中没有任何设置可以更改以更改评论样式的工作方式。

Ctrl + /是“切换行注释”,也就是//的方式。如果您想使用多行评论格式进行评论,您可以突出显示您要评论的内容,然后执行 Shift + Alt + A.

但是,还有另一种方法可以更改行注释的工作方式:

  • 找到 Visual Studio 代码在您的系统上的安装位置,然后转到资源 → 应用 → 扩展 → scss
  • 在 scss 文件夹中应该是一个 "language-configurations.json" 文件。打开它。
  • lineComment 属性 更改为空白字符串,或者直接将其删除。
"lineComment": ""
  • 保存文件,然后重新启动Visual Studio代码。现在,当您执行 Ctrl + / 时,它应该使用您喜欢的样式进行评论。

请查看对@Timothy 回答的评论。我之前编写了一个扩展来处理这些问题,Custom Language Properties,它允许您轻松更改许多语言的行或块注释等内容。

但是将 lineComment 设置为 OP 所需的 ["/*","*/"] 无效。在查看 scss 语言配置文件时,行注释值不允许使用值数组。但它可以删除 lineComment 键或将其设置为空字符串 "".

然而,尽管可能很少见,但只要 vscode 更新,任何语言配置文件都可能被覆盖,您将不得不返回并再次更改文件。因此扩展。

使用此设置:

"custom-language-properties": {
  "scss.comments.lineComment": ""
}

这完成与编辑底层语言配置文件相同的事情。幸运的是,至少在这种情况下,当 lineComment 值缺失或不合适时,显然 vscode 将应用 blockComment 值。幸运的是,blockCcomment 风格正是 OP 想要的。

这是 SCSS 的有效注释语法,它可能是正确的默认值。

Single-line 注释(以 // 开头)总是从编译输出中删除,这通常是您想要的。

Multi-line 评论 (/* comment */) 仅在 compressed 模式下被删除。

来源:Sass: Comments