Not work with mixin of less · Issue #592 · csscomb/csscomb.js · GitHub
Skip to content

Not work with mixin of less #592

Open

Description

@BunnyMelody

Environment

  • VSCode Version: 1.26.1
  • OS Version: windows 7

Actual behavior

It expects that the code shoulde indent as it should be, while it didn't indent right, as you can see below

    .sale-pro-info {
        overflow: hidden;
        padding: 16px;
        text-align: left;

        .db();

.v();

.fx(1);
    }

Expected behavior

    .sale-pro-info {
        overflow: hidden;
        padding: 16px;
        text-align: left;

        .db();
        .v();
        .fx(1);
    }

Steps to reproduce

First, install plugin of csscomb on vs code editor, then create a less file in VS Code editor, then run csscomb, and then you can see the code didn't indent right, when I delete the configation of sort-order, then it can indent right but not sort. I have contacted the author of vscode-csscomb, and it's looks like a bug of CSSComb, I'd like to ask for some help to resolve this .

Config

"csscomb.formatOnSave": true,
 "csscomb.preset": {
        "always-semicolon": true,
        "color-case": "lower",
        "block-indent": "    ",
        "color-shorthand": true,
        "element-case": "lower",
        "leading-zero": false,
        "quotes": "single",
        "space-before-colon": "",
        "space-after-colon": " ",
        "space-before-combinator": " ",
        "space-after-combinator": " ",
        "space-between-declarations": "\n",
        "space-before-opening-brace": " ",
        "space-after-opening-brace": "\n",
        "space-after-selector-delimiter": "\n",
        "space-before-selector-delimiter": "",
        "space-before-closing-brace": "\n",
        "tab-size": true,
        "unitless-zero": true,
        "vendor-prefix-align": true,
        "sort-order": [ [
            "position",
            "top",
            "right",
            "bottom",
            "left",
            "z-index",
            "display",
            "visibility",
            "-webkit-flex-direction",
            "-moz-flex-direction",
            "-ms-flex-direction",
            "-o-flex-direction",
            "flex-direction",
            "-webkit-flex-order",
            "-moz-flex-order",
            "-ms-flex-order",
            "-o-flex-order",
            "flex-order",
            "-webkit-flex-pack",
            "-moz-flex-pack",
            "-ms-flex-pack",
            "-o-flex-pack",
            "flex-pack",
            "float",
            "clear",
            "-webkit-flex-align",
            "-moz-flex-align",
            "-ms-flex-align",
            "-o-flex-align",
            "flex-align",
            "-webkit-flex",
            "-moz-flex",
            "-ms-flex",
            "-o-flex",
            "flex",
            "overflow",
            "-ms-overflow-x",
            "-ms-overflow-y",
            "overflow-x",
            "overflow-y",
            "-webkit-overflow-scrolling",
            "clip",
            "-webkit-box-sizing",
            "-moz-box-sizing",
            "box-sizing",
            "margin",
            "margin-top",
            "margin-right",
            "margin-bottom",
            "margin-left",
            "padding",
            "padding-top",
            "padding-right",
            "padding-bottom",
            "padding-left",
            "min-width",
            "min-height",
            "max-width",
            "max-height",
            "width",
            "height",
            "outline",
            "outline-width",
            "outline-style",
            "outline-color",
            "outline-offset",
            "border",
            "border-spacing",
            "border-collapse",
            "border-width",
            "border-style",
            "border-color",
            "border-top",
            "border-top-width",
            "border-top-style",
            "border-top-color",
            "border-right",
            "border-right-width",
            "border-right-style",
            "border-right-color",
            "border-bottom",
            "border-bottom-width",
            "border-bottom-style",
            "border-bottom-color",
            "border-left",
            "border-left-width",
            "border-left-style",
            "border-left-color",
            "-webkit-border-radius",
            "-moz-border-radius",
            "border-radius",
            "-webkit-border-top-left-radius",
            "-moz-border-radius-topleft",
            "border-top-left-radius",
            "-webkit-border-top-right-radius",
            "-moz-border-radius-topright",
            "border-top-right-radius",
            "-webkit-border-bottom-right-radius",
            "-moz-border-radius-bottomright",
            "border-bottom-right-radius",
            "-webkit-border-bottom-left-radius",
            "-moz-border-radius-bottomleft",
            "border-bottom-left-radius",
            "-webkit-border-image",
            "-moz-border-image",
            "-o-border-image",
            "border-image",
            "-webkit-border-image-source",
            "-moz-border-image-source",
            "-o-border-image-source",
            "border-image-source",
            "-webkit-border-image-slice",
            "-moz-border-image-slice",
            "-o-border-image-slice",
            "border-image-slice",
            "-webkit-border-image-width",
            "-moz-border-image-width",
            "-o-border-image-width",
            "border-image-width",
            "-webkit-border-image-outset",
            "-moz-border-image-outset",
            "-o-border-image-outset",
            "border-image-outset",
            "-webkit-border-image-repeat",
            "-moz-border-image-repeat",
            "-o-border-image-repeat",
            "border-image-repeat",
            "-webkit-border-top-image",
            "-moz-border-top-image",
            "-o-border-top-image",
            "border-top-image",
            "-webkit-border-right-image",
            "-moz-border-right-image",
            "-o-border-right-image",
            "border-right-image",
            "-webkit-border-bottom-image",
            "-moz-border-bottom-image",
            "-o-border-bottom-image",
            "border-bottom-image",
            "-webkit-border-left-image",
            "-moz-border-left-image",
            "-o-border-left-image",
            "border-left-image",
            "-webkit-border-corner-image",
            "-moz-border-corner-image",
            "-o-border-corner-image",
            "border-corner-image",
            "-webkit-border-top-left-image",
            "-moz-border-top-left-image",
            "-o-border-top-left-image",
            "border-top-left-image",
            "-webkit-border-top-right-image",
            "-moz-border-top-right-image",
            "-o-border-top-right-image",
            "border-top-right-image",
            "-webkit-border-bottom-right-image",
            "-moz-border-bottom-right-image",
            "-o-border-bottom-right-image",
            "border-bottom-right-image",
            "-webkit-border-bottom-left-image",
            "-moz-border-bottom-left-image",
            "-o-border-bottom-left-image",
            "border-bottom-left-image",
            "background",
            "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
            "background-color",
            "background-image",
            "background-attachment",
            "background-position",
            "-ms-background-position-x",
            "-ms-background-position-y",
            "background-position-x",
            "background-position-y",
            "-webkit-background-clip",
            "-moz-background-clip",
            "background-clip",
            "background-origin",
            "-webkit-background-size",
            "-moz-background-size",
            "-o-background-size",
            "background-size",
            "background-repeat",
            "box-decoration-break",
            "-webkit-box-shadow",
            "-moz-box-shadow",
            "box-shadow",
            "color",
            "table-layout",
            "caption-side",
            "empty-cells",
            "list-style",
            "list-style-position",
            "list-style-type",
            "list-style-image",
            "quotes",
            "content",
            "counter-increment",
            "counter-reset",
            "-ms-writing-mode",
            "vertical-align",
            "text-align",
            "-webkit-text-align-last",
            "-moz-text-align-last",
            "-ms-text-align-last",
            "text-align-last",
            "text-decoration",
            "text-emphasis",
            "text-emphasis-position",
            "text-emphasis-style",
            "text-emphasis-color",
            "text-indent",
            "-ms-text-justify",
            "text-justify",
            "text-outline",
            "text-transform",
            "text-wrap",
            "-ms-text-overflow",
            "text-overflow",
            "text-overflow-ellipsis",
            "text-overflow-mode",
            "text-shadow",
            "white-space",
            "word-spacing",
            "-ms-word-wrap",
            "word-wrap",
            "-ms-word-break",
            "word-break",
            "-moz-tab-size",
            "-o-tab-size",
            "tab-size",
            "-webkit-hyphens",
            "-moz-hyphens",
            "hyphens",
            "letter-spacing",
            "font",
            "font-weight",
            "font-style",
            "font-variant",
            "font-size-adjust",
            "font-stretch",
            "font-size",
            "font-family",
            "src",
            "line-height",
            "opacity",
            "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
            "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
            "-ms-interpolation-mode",
            "-webkit-filter",
            "-ms-filter",
            "filter",
            "resize",
            "cursor",
            "nav-index",
            "nav-up",
            "nav-right",
            "nav-down",
            "nav-left",
            "-webkit-transition",
            "-moz-transition",
            "-ms-transition",
            "-o-transition",
            "transition",
            "-webkit-transition-delay",
            "-moz-transition-delay",
            "-ms-transition-delay",
            "-o-transition-delay",
            "transition-delay",
            "-webkit-transition-timing-function",
            "-moz-transition-timing-function",
            "-ms-transition-timing-function",
            "-o-transition-timing-function",
            "transition-timing-function",
            "-webkit-transition-duration",
            "-moz-transition-duration",
            "-ms-transition-duration",
            "-o-transition-duration",
            "transition-duration",
            "-webkit-transition-property",
            "-moz-transition-property",
            "-ms-transition-property",
            "-o-transition-property",
            "transition-property",
            "-webkit-transform",
            "-moz-transform",
            "-ms-transform",
            "-o-transform",
            "transform",
            "-webkit-transform-origin",
            "-moz-transform-origin",
            "-ms-transform-origin",
            "-o-transform-origin",
            "transform-origin",
            "-webkit-animation",
            "-moz-animation",
            "-ms-animation",
            "-o-animation",
            "animation",
            "-webkit-animation-name",
            "-moz-animation-name",
            "-ms-animation-name",
            "-o-animation-name",
            "animation-name",
            "-webkit-animation-duration",
            "-moz-animation-duration",
            "-ms-animation-duration",
            "-o-animation-duration",
            "animation-duration",
            "-webkit-animation-play-state",
            "-moz-animation-play-state",
            "-ms-animation-play-state",
            "-o-animation-play-state",
            "animation-play-state",
            "-webkit-animation-timing-function",
            "-moz-animation-timing-function",
            "-ms-animation-timing-function",
            "-o-animation-timing-function",
            "animation-timing-function",
            "-webkit-animation-delay",
            "-moz-animation-delay",
            "-ms-animation-delay",
            "-o-animation-delay",
            "animation-delay",
            "-webkit-animation-iteration-count",
            "-moz-animation-iteration-count",
            "-ms-animation-iteration-count",
            "-o-animation-iteration-count",
            "animation-iteration-count",
            "-webkit-animation-direction",
            "-moz-animation-direction",
            "-ms-animation-direction",
            "-o-animation-direction",
            "animation-direction",
            "pointer-events",
            "unicode-bidi",
            "direction",
            "-webkit-columns",
            "-moz-columns",
            "columns",
            "-webkit-column-span",
            "-moz-column-span",
            "column-span",
            "-webkit-column-width",
            "-moz-column-width",
            "column-width",
            "-webkit-column-count",
            "-moz-column-count",
            "column-count",
            "-webkit-column-fill",
            "-moz-column-fill",
            "column-fill",
            "-webkit-column-gap",
            "-moz-column-gap",
            "column-gap",
            "-webkit-column-rule",
            "-moz-column-rule",
            "column-rule",
            "-webkit-column-rule-width",
            "-moz-column-rule-width",
            "column-rule-width",
            "-webkit-column-rule-style",
            "-moz-column-rule-style",
            "column-rule-style",
            "-webkit-column-rule-color",
            "-moz-column-rule-color",
            "column-rule-color",
            "break-before",
            "break-inside",
            "break-after",
            "page-break-before",
            "page-break-inside",
            "page-break-after",
            "orphans",
            "widows",
            "-ms-zoom",
            "zoom",
            "max-zoom",
            "min-zoom",
            "user-zoom",
            "orientation"
        ] ]
    }

Activity

  1. tonyganch commented on Mar 24, 2019

    @tonyganch
    Member

    Possibly the same issue as #593

  2. BunnyMelody commented on Apr 18, 2019

    @BunnyMelody
    Author

    Possibly the same issue as #593

    How can I fix this?

  3. jdalton commented on Apr 18, 2019

    @jdalton
    Contributor

    Hi @BunnyMelody!

    Are you on running into this issue on Windows too.
    Does it look similar to #593 for you?

    If so I can see about fixing that : )

  4. BunnyMelody commented on Apr 19, 2019

    @BunnyMelody
    Author

    Hi @BunnyMelody!

    Are you on running into this issue on Windows too.
    Does it look similar to #593 for you?

    If so I can see about fixing that : )

    Yes, I think it looks similar to #593

  5. jdalton commented on Apr 19, 2019

    @jdalton
    Contributor

    @BunnyMelody Okay! I'll work on a patch for the weekend.

  6. BunnyMelody commented on Apr 19, 2019

    @BunnyMelody
    Author

    @BunnyMelody Okay! I'll work on a patch for the weekend.

    @jdalton Thanks a lot !

  7. jdalton commented on Apr 21, 2019

    @jdalton
    Contributor

    @BunnyMelody You can follow the PR at #606.

  8. BunnyMelody commented on Apr 22, 2019

    @BunnyMelody
    Author

    @BunnyMelody You can follow the PR at #606.

    @jdalton Ok, thanks very much.

  9. jdalton commented on Apr 25, 2019

    @jdalton
    Contributor

    @BunnyMelody would you be up for creating a PR with a failing unit test that I could use against #606?

  10. BunnyMelody commented on May 21, 2019

    @BunnyMelody
    Author

    @BunnyMelody would you be up for creating a PR with a failing unit test that I could use against #606?

    @jdalton I'm sorry it took me so long to reply, Would you please tell me what should I do for the unit test?

  11. jdalton commented on May 21, 2019

    @jdalton
    Contributor

    No worries! If you could create a scenario where the output is not what you intended with a more minimal config that would help. For reference of a unit test see this.

  12. BunnyMelody commented on May 22, 2019

    @BunnyMelody
    Author

    No worries! If you could create a scenario where the output is not what you intended with a more minimal config that would help. For reference of a unit test see this.

    @jdalton Does the code below be able to help ?
    For test code:

    let Test = require('../../option_test');
    describe('less', function() {
      it('Should indent right', function() {
        let config = {
          'sort-order': [
            "overflow",
            "padding",
            "text-align"
          ]
        };
        let test = new Test(this, config);
        return test.shouldBeEqual('sort-indent.less', 'sort-indent.expected.less');
      });
    });
    

    For sort-indent.less

    /*
     * sort-indent.less
     */
    .db() {
      display: flex;
    }
    .v() {
      vertical-align: middle;
    }
    .fx(1) {
      flex: 1;
    }
    .sale-pro-info {
      overflow: hidden;
      padding: 16px;
      text-align: left;
    
      .db();
    
    .v();
    
    .fx(1);
    }
    

    For sort-indent.expected.less:

    /*
     * sort-indent.expected.less
     */
    .db() {
      display: flex;
    }
    .v() {
      vertical-align: middle;
    }
    .fx(1) {
      flex: 1;
    }
    .sale-pro-info {
      overflow: hidden;
      padding: 16px;
      text-align: left;
    
      .db();
      .v();
      .fx(1);
    }
    
  13. jdalton commented on May 22, 2019

    @jdalton
    Contributor

    Yes! Thank you @BunnyMelody!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions