Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Fix feature does not work #369

Closed
1 task done
Front-line-dev opened this issue Jan 14, 2022 · 7 comments · Fixed by stylelint/stylelint#6543
Closed
1 task done

[Bug]: Fix feature does not work #369

Front-line-dev opened this issue Jan 14, 2022 · 7 comments · Fixed by stylelint/stylelint#6543
Labels
status: needs reproducible example triage needs reproducible demo or repo type: bug a problem with a feature or rule

Comments

@Front-line-dev
Copy link

Front-line-dev commented Jan 14, 2022

How did you encounter this bug?

I try to fix code using vscode stylelint

  1. Use Fix all auto-fixable problems command on vscode
  2. Set "source.fixAll.stylelint": true to settings.json and save

Both method make no change.

Manually command stylelint --fix on terminal works

Installed vscode-stylelint works fine except fix function. It tells where and what is problem using stylelint config file.

Code Snippet

No response

Stylelint Configuration

{
  "extends": ["stylelint-config-standard-scss"],
  "plugins": ["stylelint-order"],
  "defaultSeverity": "warning",
  "ignoreFiles": ["**/editor.scss"],
  "rules": {
    "indentation": 4,
    "at-rule-empty-line-before": null,
    "rule-empty-line-before": ["always", { "disableFix": true }],
    "string-quotes": "single",
    "declaration-empty-line-before": null,
    "comment-empty-line-before": null,
    "selector-list-comma-newline-after": "always",
    "declaration-bang-space-after": "never",
    "function-calc-no-unspaced-operator": true,
    "declaration-colon-newline-after": null,
    "value-no-vendor-prefix": null,
    "property-no-vendor-prefix": null,
    "selector-no-vendor-prefix": null,
    "value-keyword-case": null,
    "color-function-notation": null,
    "color-named": "never",
    "color-hex-case": "lower",
    "color-hex-length": "short",
    "number-leading-zero": "always",
    "alpha-value-notation": "number",
    "declaration-block-no-redundant-longhand-properties": [
      true,
      { "ignoreShorthands": ["transition"] }
    ],
    "selector-class-pattern": null,
    "number-no-trailing-zeros": true,
    "no-descending-specificity": null,
    "function-name-case": null,
    "function-url-quotes": "never",

    "at-rule-disallowed-list": ["debug"],
    "declaration-block-no-duplicate-properties": true,
    "block-no-empty": true,
    "declaration-no-important": true,
    "declaration-block-single-line-max-declarations": 0,
    "selector-no-qualifying-type": [true, { "ignore": ["attribute"] }],

    "max-nesting-depth": 3,

    "scss/at-function-pattern": null,
    "scss/at-mixin-pattern": null,
    "scss/percent-placeholder-pattern": null,
    "scss/dollar-variable-pattern": null,
    "scss/at-import-partial-extension": null,
    "scss/at-extend-no-missing-placeholder": true,
    "scss/operator-no-unspaced": true,
    "scss/comment-no-empty": null,
    "scss/dollar-variable-empty-line-before": null,
    "scss/double-slash-comment-empty-line-before": null,

    "order/order": [
      { "type": "at-rule", "name": "extends" },
      "declarations",
      { "type": "rule", "selector": "&:hover" },
      { "type": "rule", "selector": "&:focus" },
      { "type": "rule", "selector": "&:active" },
      { "type": "rule", "selector": "&:first-child" },
      { "type": "rule", "selector": "&:nth-child" },
      { "type": "rule", "selector": "&:last-child" },
      { "type": "rule", "selector": "&::before" },
      { "type": "rule", "selector": "&::after" }
    ],

    "order/properties-order": [
      [
        {
          "groupName": "Position",
          "properties": [
            "position",
            "z-index",
            "top",
            "right",
            "bottom",
            "left"
          ]
        },
        {
          "groupName": "Layout",
          "properties": ["float", "clear"]
        },
        {
          "groupName": "Display",
          "properties": ["display", "table-layout"]
        },
        {
          "groupName": "Grid",
          "properties": [
            "grid",
            "grid-area",
            "grid-auto-columns",
            "grid-auto-flow",
            "grid-auto-rows",
            "grid-column",
            "grid-column-end",
            "grid-column-gap",
            "grid-column-start",
            "grid-gap",
            "grid-row",
            "grid-row-end",
            "grid-row-gap",
            "grid-row-start",
            "grid-template",
            "grid-template-areas",
            "grid-template-columns",
            "grid-template-rows",
            "gap"
          ]
        },
        {
          "groupName": "Flex box",
          "properties": [
            "flex-flow",
            "flex-direction",
            "flex-wrap",
            "justify-content",
            "align-content",
            "align-items",
            "order",
            "flex",
            "flex-grow",
            "flex-shrink",
            "flex-basis",
            "align-self"
          ]
        },
        {
          "groupName": "Visibility",
          "properties": [
            "visibility",
            "overflow",
            "overflow-x",
            "overflow-y",
            "clip"
          ]
        },
        {
          "groupName": "Box model",
          "properties": [
            "box-sizing",
            "width",
            "min-width",
            "max-width",
            "height",
            "min-height",
            "max-height",
            "margin",
            "margin-top",
            "margin-right",
            "margin-bottom",
            "margin-left",
            "padding",
            "padding-top",
            "padding-right",
            "padding-bottom",
            "padding-left"
          ]
        },
        {
          "groupName": "Background",
          "properties": [
            "background",
            "background-attachment",
            "background-clip",
            "background-color",
            "background-image",
            "background-repeat",
            "background-position",
            "background-position-x",
            "background-position-y",
            "background-size",
            "background-origin",
            "background-attachment",
            "background-blend-mode"
          ]
        },
        {
          "groupName": "Border",
          "properties": [
            "border",
            "border-top",
            "border-right",
            "border-bottom",
            "border-left",
            "border-width",
            "border-top-width",
            "border-right-width",
            "border-bottom-width",
            "border-left-width",
            "border-style",
            "border-top-style",
            "border-right-style",
            "border-bottom-style",
            "border-left-style",
            "border-color",
            "border-top-color",
            "border-right-color",
            "border-bottom-color",
            "border-left-color",
            "border-radius",
            "border-top-left-radius",
            "border-top-right-radius",
            "border-bottom-left-radius",
            "border-bottom-right-radius"
          ]
        },
        {
          "groupName": "Color",
          "properties": ["box-shadow", "color", "opacity"]
        },
        {
          "groupName": "Typographic",
          "properties": [
            "font",
            "font-family",
            "font-size",
            "font-weight",
            "font-style",
            "font-variant",
            "font-size-adjust",
            "font-stretch",
            "font-effect",
            "font-emphasize",
            "font-emphasize-position",
            "font-emphasize-style",
            "font-smooth"
          ]
        },
        {
          "groupName": "Text align",
          "properties": [
            "line-height",
            "letter-spacing",
            "white-space",
            "word-spacing",
            "word-break",
            "word-wrap",
            "text-align",
            "text-decoration",
            "text-indent",
            "text-overflow",
            "text-rendering",
            "text-shadow",
            "text-transform",
            "text-wrap",
            "list-style",
            "vertical-align"
          ]
        },
        {
          "groupName": "Animation",
          "properties": [
            "transform",
            "transform-box",
            "transform-origin",
            "transform-style",
            "transition",
            "transition-delay",
            "transition-duration",
            "transition-property",
            "transition-timing-function",
            "animation",
            "animation-name",
            "animation-duration",
            "animation-timing-function",
            "animation-delay",
            "animation-iteration-count",
            "animation-direction",
            "animation-fill-mode",
            "animation-play-state"
          ]
        },
        {
          "groupName": "Others",
          "properties": [
            "border-collapse",
            "border-spacing",
            "caption-side",
            "content",
            "cursor",
            "empty-cells",
            "quotes",
            "speak",
            "outline",
            "outline-color",
            "outline-offset",
            "outline-style",
            "outline-width"
          ]
        }
      ],
      { "unspecified": "bottom" }
    ]
  }
}

Extension Configuration

{
    "eslint.validate": [
        "javascript"
    ],
    "stylelint.enable": true,
    "prettier.enable": false,
    "stylelint.validate": [
        "css",
        "scss"
    ],
    "stylelint.configFile": "/Users/user/Documents/stylelintrc.json",
    "stylelint.configBasedir": "/Users/user/.nvm/versions/node/v14.18.2/lib/node_modules",
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true,
        "source.fixAll.stylelint": true
    },
    "stylelint.stylelintPath": "/Users/user/.nvm/versions/node/v14.18.2/lib/node_modules/stylelint"
}

Actual Behaviour

Fix feature does not work.

It seems running something, but returns no edit (nothing to fix)

Expected Behaviour

The file should be fixed and saved using FormatOnSave or fix-all command

Logs

// start vscode
[Info  - 오후 6:36:25] [language-server] Registering module | module: "auto-fix"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "auto-fix"
[Info  - 오후 6:36:25] [language-server] Registering module | module: "code-action"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "code-action"
[Info  - 오후 6:36:25] [language-server] Registering module | module: "completion"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "completion"
[Info  - 오후 6:36:25] [language-server] Registering module | module: "formatter"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "formatter"
[Info  - 오후 6:36:25] [language-server] Registering module | module: "old-stylelint-warning"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "old-stylelint-warning"
[Info  - 오후 6:36:25] [language-server] Registering module | module: "validator"
[Info  - 오후 6:36:25] [language-server] Module registered | module: "validator"
[Info  - 오후 6:36:25] [language-server] Starting language server
[Info  - 오후 6:36:25] [language-server] Registering handlers
[Debug - 6:36:25 p.m.] [language-server] connection.onInitialize handler registered
[Debug - 6:36:25 p.m.] [language-server] connection.onInitialized handler registered
[Debug - 6:36:25 p.m.] [language-server] Registering ExecuteCommandRequest handler
[Debug - 6:36:25 p.m.] [language-server] ExecuteCommandRequest handler registered
[Debug - 6:36:25 p.m.] [language-server] connection.onDidChangeConfiguration handler registered
[Debug - 6:36:25 p.m.] [language-server] documents.onDidClose handler registered
[Debug - 6:36:25 p.m.] [language-server] Invoking onDidRegisterHandlers
[Debug - 6:36:25 p.m.] [language-server:auto-fix] Registering onExecuteCommand handler
[Debug - 6:36:25 p.m.] [language-server] Registering command | command: "stylelint.applyAutoFix"
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "auto-fix" returnValue: undefined
[Debug - 6:36:25 p.m.] [language-server:code-action] Registering onCodeAction handler
[Debug - 6:36:25 p.m.] [language-server:code-action] onCodeAction handler registered
[Debug - 6:36:25 p.m.] [language-server] Registering command | command: "stylelint.openRuleDoc"
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "code-action" returnValue: undefined
[Debug - 6:36:25 p.m.] [language-server:completion] Registering onCompletion handler
[Debug - 6:36:25 p.m.] [language-server:completion] onCompletion handler registered
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "completion" returnValue: undefined
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering connection.onDocumentFormatting handler
[Debug - 6:36:25 p.m.] [language-server:formatter] connection.onDocumentFormatting handler registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering documents.onDidOpen handler
[Debug - 6:36:25 p.m.] [language-server:formatter] documents.onDidOpen handler registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering documents.onDidChangeContent handler
[Debug - 6:36:25 p.m.] [language-server:formatter] documents.onDidChangeContent handler registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering documents.onDidSave handler
[Debug - 6:36:25 p.m.] [language-server:formatter] documents.onDidSave handler registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering documents.onDidClose handler
[Debug - 6:36:25 p.m.] [language-server:formatter] documents.onDidClose handler registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering DidChangeConfigurationNotification
[Debug - 6:36:25 p.m.] [language-server:formatter] DidChangeConfigurationNotification registered
[Debug - 6:36:25 p.m.] [language-server:formatter] Registering DidChangeWorkspaceFoldersNotification
[Debug - 6:36:25 p.m.] [language-server:formatter] DidChangeWorkspaceFoldersNotification registered
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "formatter" returnValue: undefined
[Debug - 6:36:25 p.m.] [language-server:old-stylelint-warning] Registering onDidOpen handler
[Debug - 6:36:25 p.m.] [language-server:old-stylelint-warning] onDidOpen handler registered
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "old-stylelint-warning" returnValue: undefined
[Debug - 6:36:25 p.m.] [language-server:validator] Registering handlers
[Debug - 6:36:25 p.m.] [language-server:validator] onDidChangeWatchedFiles handler registered
[Debug - 6:36:25 p.m.] [language-server:validator] onDidChangeContent handler registered
[Debug - 6:36:25 p.m.] [language-server:validator] onDidClose handler registered
[Debug - 6:36:25 p.m.] [language-server:validator] Handlers registered
[Debug - 6:36:25 p.m.] [language-server] Invoked onDidRegisterHandlers | module: "validator" returnValue: undefined
[Info  - 오후 6:36:25] [language-server] Handlers registered
[Info  - 오후 6:36:25] [language-server] Language server started


// This is the log when I use fix feature
[Debug - 11:43:26 a.m.] [language-server:code-action] Creating code actions | only: ["source.fixAll.stylelint"]
[Debug - 11:43:26 a.m.] [language-server:code-action] Creating "source-fix-all" code action
[Debug - 11:43:26 a.m.] [language-server] Returning cached options | resource: "file:///******/Comment.scss"
[Debug - 11:43:26 a.m.] [language-server] Running Stylelint | options: {"fix":true,"configFile":"/Users/user/Documents/stylelintrc.json","configBasedir":"/Users/user/.nvm/versions/node/v14.18.2/lib/node_modules","ignoreDisables":false,"reportNeedlessDisables":false,"reportInvalidScopeDisables":false,"ignorePath":"/******/.stylelintignore","code":"...","codeFilename":"******/Comment.scss"}
[Debug - 11:43:26 a.m.] [language-server] Fixes retrieved | uri: "file:///******/Comment.scss" edits: []





// This is the log when I edit code
[Debug - 2:09:39 p.m.] [language-server] Returning cached options | resource: "file:///******/Comment.scss"
[Debug - 2:09:39 p.m.] [language-server] Returning cached options | resource: "file:///******/Comment.scss"
[Debug - 2:09:39 p.m.] [language-server] Linting document | uri: "file:///******/Comment.scss" linterOptions: {}
[Debug - 2:09:39 p.m.] [language-server] Returning cached options | resource: "file:///******/Comment.scss"
[Debug - 2:09:39 p.m.] [language-server] Running Stylelint | options: {"configFile":"/Users/user/Documents/stylelintrc.json","configBasedir":"/Users/user/.nvm/versions/node/v14.18.2/lib/node_modules","ignoreDisables":false,"reportNeedlessDisables":false,"reportInvalidScopeDisables":false,"ignorePath":"******/.stylelintignore","code":"...","codeFilename":"******/Comment.scss"}
[Debug - 2:09:39 p.m.] [language-server] Lint run complete | uri: "file:///******/Comment.scss" results: {"diagnostics":[{"range":{"start":{"line":78,"character":12},"end":{"line":78,"character":13}},"message":"Expected \"margin-top\" to come before \"padding\" in group \"Box model\" (order/properties-order)","severity":2,"code":"order/properties-order","source":"Stylelint"},{"range":{"start":{"line":80,"character":8},"end":{"line":80,"character":9}},"message":"Unexpected empty line before closing brace (block-closing-brace-empty-line-before)","severity":2,"code":"block-closing-brace-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/block-closing-brace-empty-line-before"}},{"range":{"start":{"line":79,"character":3},"end":{"line":79,"character":4}},"message":"Unexpected whitespace at end of line (no-eol-whitespace)","severity":2,"code":"no-eol-whitespace","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/no-eol-whitespace"}},{"range":{"start":{"line":11,"character":0},"end":{"line":11,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":35,"character":0},"end":{"line":35,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":52,"character":0},"end":{"line":52,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":54,"character":8},"end":{"line":54,"character":9}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":61,"character":0},"end":{"line":61,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":85,"character":0},"end":{"line":85,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":102,"character":0},"end":{"line":102,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":104,"character":8},"end":{"line":104,"character":9}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}}]}
[Debug - 2:09:39 p.m.] [language-server:validator] Sending diagnostics | uri: "file:///******/Comment.scss" result: {"diagnostics":[{"range":{"start":{"line":78,"character":12},"end":{"line":78,"character":13}},"message":"Expected \"margin-top\" to come before \"padding\" in group \"Box model\" (order/properties-order)","severity":2,"code":"order/properties-order","source":"Stylelint"},{"range":{"start":{"line":80,"character":8},"end":{"line":80,"character":9}},"message":"Unexpected empty line before closing brace (block-closing-brace-empty-line-before)","severity":2,"code":"block-closing-brace-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/block-closing-brace-empty-line-before"}},{"range":{"start":{"line":79,"character":3},"end":{"line":79,"character":4}},"message":"Unexpected whitespace at end of line (no-eol-whitespace)","severity":2,"code":"no-eol-whitespace","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/no-eol-whitespace"}},{"range":{"start":{"line":11,"character":0},"end":{"line":11,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":35,"character":0},"end":{"line":35,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":52,"character":0},"end":{"line":52,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":54,"character":8},"end":{"line":54,"character":9}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":61,"character":0},"end":{"line":61,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":85,"character":0},"end":{"line":85,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":102,"character":0},"end":{"line":102,"character":1}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}},{"range":{"start":{"line":104,"character":8},"end":{"line":104,"character":9}},"message":"Expected empty line before rule (rule-empty-line-before)","severity":2,"code":"rule-empty-line-before","source":"Stylelint","codeDescription":{"href":"https://stylelint.io/user-guide/rules/rule-empty-line-before"}}]}
[Debug - 2:09:39 p.m.] [language-server:validator] Diagnostics sent | uri: "file:///******/Comment.scss"

Stylelint Version

14.2.0

vscode-stylelint Version

1.2.1

Node.js Version

14.18.2

Operating System

macOS 12.1

Windows Subsystem for Linux

No response

Code of Conduct

  • I agree to follow vscode-stylelint's Code of Conduct
@Front-line-dev Front-line-dev added the type: bug a problem with a feature or rule label Jan 14, 2022
@AbdealiLoKo
Copy link

AbdealiLoKo commented Jan 20, 2022

I seem to have a similar issue (I am trying stylelint for the first time with vscode)

  • stylelint lint errors are appearing on a .css file
  • vscode-stylelint is installed with latest version (1.2.1)
  • stylelint CLI is installed with latest version (14.2.0) - Got using ./node_modules/.bin/stylelint --version
  • vscode is updated with latest version (1.63.2 with Electron 13.5.2, Chromium 91.0.4472.164, Node 14.16.0, V8 9.1.269.39)
  • stylelint appears when I do Format Document with - but no changes happen when I run it
  • The autofix recommendations don't have the fix option

Here is a GIF explaining my behavior
untitled

@AbdealiLoKo
Copy link

AbdealiLoKo commented Jan 20, 2022

An additional note:
When I added the keyboard shortcut:

	{
		"key": "alt+shift+f",
		"command": "stylelint.executeAutofix",
		"when": "editorTextFocus && editorLangId == 'css'"
	},

As described in #25 (comment)
And then ran "Alt+Shift+F" on my .css file - it got fixed correctly.
So, it seems to be some specific integration issue with the "Format Document" provided by vscode.

@Front-line-dev
Copy link
Author

@AbdealiJK Thanks for the key binding method
So I tried this method, but it doesn't work for me

[Debug - 1:38:39 p.m.] [language-server] Running Stylelint | options: {"fix":true,"configFile":"/Users/user/Documents/stylelintrc.json","configBasedir":"/Users/user/.nvm/versions/node/v14.18.2/lib/node_modules","ignoreDisables":false,"reportNeedlessDisables":false,"reportInvalidScopeDisables":false,"ignorePath":"/***/.stylelintignore","code":"...","codeFilename":"/***/Comment.scss"}
[Debug - 1:38:39 p.m.] [language-server] Fixes retrieved | uri: "file:///***/Comment.scss" edits: []
[Debug - 1:38:39 p.m.] [language-server:auto-fix] Applying fixes | uri: "file:///***/Comment.scss" edits: []
[Debug - 1:38:39 p.m.] [language-server] Sending command response | command: "stylelint.applyAutoFix" response: {}

It actually try to fix something! But nothing to edit

And I didn't know there should be autofix method appeared on editor. It shows lint warning or error, but don't provide autofix method

@AbdealiLoKo
Copy link

@Front-line-dev the keybinding above is for css - I see your file is a .scss file.
You may need to change this to scss: editorLangId == 'css'

But either way ... This is just a workaround. A fix for this is really required. Seems like a Major issue

@justindm234
Copy link

justindm234 commented Mar 14, 2022

I hit this problem in my project and narrowed it down to rules with { "disableFix": true }. Configuring any rule with this option breaks stylelint's fix feature. "Fix all auto-fixable problems", fix on save, and fix via shortcut all appear to no-op (nothing seen in log) when a rule has this configuration.

Edit: This was with VSCode extension v1.2.2 and stylelint version 14.5.3

@ota-meshi ota-meshi added the status: needs reproducible example triage needs reproducible demo or repo label Aug 17, 2022
@adrianjost
Copy link

adrianjost commented Dec 23, 2022

I have narrowed it down even further thanks to the hint by @justindm234. It seems to be an issue with the stylelint node api.
The following script logs the fixed code to the console:

import * as stylelint from "stylelint";

const cssContent = `.border-top-default{
  border: 1px solid red;
  margin: 0;
}`

const lintResult = await stylelint.lint({
  code: cssContent,
  fix: true,
});
console.log(lintResult.output);

If my config does not contain any "disableFix": true it works just fine.

.border-top-default {
  margin: 0;
  border-top: : 1px solid red;
}

But if such a disable exists, the output looks unexpected:

[{
  "source": "<input css rPadxH>",
  "deprecations": [],
  "invalidOptionWarnings": [],
  "parseErrors": [],
  "errored": false,
  "warnings": []
}]

It then looks pretty similar to the output without the fix: true option, but with am empty warnings list.

Output without the fix option:

[{
  "source": "<input css qETqql>",
  "deprecations": [],
  "invalidOptionWarnings": [],
  "parseErrors": [],
  "errored": true,
  "warnings": [
    {
      "line": 3,
      "column": 5,
      "endLine": 3,
      "endColumn": 15,
      "rule": "order/properties-order",
      "severity": "error",
      "text": "Expected \"margin\" to come before \"border-top\" (order/properties-order)"
    }
  ]
}]

So I think it is a problem of the stylelint itself.

Example stylelint config:
used packages: stylelint-order, stylelint-scss, stylelint-declaration-strict-value.

module.exports = {
  customSyntax: "postcss-scss",
  plugins: ["stylelint-declaration-strict-value", "stylelint-order"],
  rules: {
    "order/properties-order": [["margin", "border"], { unspecified: "bottom" }],
    "scale-unlimited/declaration-strict-value": [
      "/border/",
      { disableFix: true }, // this one breaks the autofix
    ],
  },
};

adrianjost added a commit to adrianjost/stylelint that referenced this issue Dec 23, 2022
…ue` stylelint#6542

fixes stylelint#6542 and bv that should also fix stylelint/vscode-stylelint#369

Issue: The API did not return the fixed css in `output` if any rule contained `ruleDisableFix`.

I have removed the `ruleDisableFix` code, because it did not affect the code fixing itself and was assumingly wrongly used to change the content format of `output`.
I have adjusted some tests to adapt to the changed behaviour and extended the test conditions to check that the returned code has the correct fixes applied.

Issue was introduced in stylelint#5460
@adrianjost
Copy link

I have found the issue in stylelint itself and opened a pull request.
This fixed the issue for me locally. Hope it get's merged soon. 🚀
stylelint/stylelint#6543

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: needs reproducible example triage needs reproducible demo or repo type: bug a problem with a feature or rule
Projects
None yet
5 participants