如何弃用 IDE 中的 CSS 选择器

how to deprecate a CSS selectors in IDE

我正在寻找解决方案,通过它我可以将我的 scss 文件中的选择器标记为已弃用。然后,如果我在处理 html 文件并且同时想使用这个“弃用选择器”,我的 IDE 应该标记选择器并且应该向我显示弃用消息。我想要类似的东西:

/**
 * @deprecated Please use '.ui-fresh__selector' instead!
 */
.ui-old__selector {...}

...就像我们使用 JSDoc 一样。使用 .editorconfig 或一些 linting 工具也可以实现这一点。例如,如果我可以在配置文件中设置一个数组,其中包含所有那些已弃用的选择器……或者类似的东西,那就太好了?在 IDE 中显示这些弃用消息也很重要,而不仅仅是在 build/compiling 阶段的后期。看起来很难找到合适的解决方案。

欢迎提出任何建议!谢谢大家!

那些东西属于 linters 的范畴。我对 html linters 的功能一无所知。但是您仍然会遇到另一个问题:在许多情况下,类名仅在 SASS 编译为 CSS.

时形成
/**
 * @deprecated Please use '.ui-fresh__selector' instead!
 */
.ui-old {
    &__selector {}
}

.ui-fresh {
    &__selector {}
}

但是您可以创建一个弃用警告,它会在所有使用旧样式的元素周围显示(呈现时)。您可以将您的 webpack(或您使用的任何捆绑器)配置为仅在开发构建时包含 弃用警告,但绝不会包含在 PROD 构建中。

@import "deprecation";

/**
 * @deprecated Please use '.ui-fresh__selector' instead!
 */
.ui-old {
    @include deprecated;
    &__selector {}
}

.ui-fresh {
    &__selector {}
}

// _deprecation.scss
@mixin deprecated {
    @if $env == development {
        border: 4px solid red !important;
    }
}

可以通过 sass-loader 选项在您的 webpack 配置中设置 $env 变量 additionalData

{
    loader: 'sass-loader',
    options: {
        additionalData: '$env: ' + process.env.NODE_ENV + ';'
    },
},

经过一些对话,我们找到了解决方案 - IDE 中的 sassdoc 支持!
好吧……差不多了! Jetbrains 团队已经有一个功能请求!我们只需推动数百个投票 - 然后他们将在 Jetbrains IDEs.
中构建 加油吧伙计们!
https://youtrack.jetbrains.com/issue/WEB-12829
让我们的前端工作流程再次变得伟大!我们一起可以做到! ;)