Skip to content

Fix indentation for rules with an empty selector list#227

Open
bartveneman wants to merge 1 commit into
mainfrom
claude/fix-empty-selector-indent
Open

Fix indentation for rules with an empty selector list#227
bartveneman wants to merge 1 commit into
mainfrom
claude/fix-empty-selector-indent

Conversation

@bartveneman

Copy link
Copy Markdown
Member

Summary

  • print_rule only added indentation via print_rule_selectors, which pushes one indented line per selector in the selector list.
  • For a malformed/unknown block with zero selectors (e.g. a bare { ... } nested inside another block), no line is pushed at all, so the opening brace's indentation was silently dropped — it printed with a single leading space instead of a tab.
  • Fixed by falling back to indent(depth) when the selector list prints as empty.
  • Updated the test that was pinning the old (buggy) output.

Test plan

  • vitest run — all 254 tests pass
  • tsc --noEmit — no type errors
  • oxlint — clean

Generated by Claude Code

print_rule only indented via print_rule_selectors, which pushes one
indented line per selector. For malformed/unknown blocks with zero
selectors (e.g. a bare `{ }` nested inside another block), no line
was pushed at all, so the opening brace lost its indentation and
printed with a single leading space instead of a tab.
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Duplicate Dependencies (found: 22, threshold: 1)

📦 Package 📋 Versions
@babel/parser
2 versions
  • root@
    • @vitest/coverage-v8@4.1.9
      • magicast@0.5.3
        • @babel/parser@7.29.7

  • root@
    • tsdown@0.22.3
      • rolldown-plugin-dts@0.26.0
        • @babel/generator@8.0.0
          • @babel/parser@8.0.0

@babel/types
2 versions
  • root@
    • @vitest/coverage-v8@4.1.9
      • magicast@0.5.3
        • @babel/parser@7.29.7
          • @babel/types@7.29.7

  • root@
    • tsdown@0.22.3
      • rolldown-plugin-dts@0.26.0
        • @babel/generator@8.0.0
          • @babel/parser@8.0.0
            • @babel/types@8.0.0

@babel/helper-string-parser
2 versions
  • root@
    • @vitest/coverage-v8@4.1.9
      • magicast@0.5.3
        • @babel/parser@7.29.7
          • @babel/types@7.29.7
            • @babel/helper-string-parser@7.29.7

  • root@
    • tsdown@0.22.3
      • ...
        • @babel/parser@8.0.0
          • @babel/types@8.0.0
            • @babel/helper-string-parser@8.0.0

@babel/helper-validator-identifier
2 versions
  • root@
    • @vitest/coverage-v8@4.1.9
      • magicast@0.5.3
        • @babel/parser@7.29.7
          • @babel/types@7.29.7
            • @babel/helper-validator-identifier@7.29.7

  • root@
    • tsdown@0.22.3
      • ...
        • @babel/parser@8.0.0
          • @babel/types@8.0.0
            • @babel/helper-validator-identifier@8.0.2

@rolldown/binding-wasm32-wasi
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-wasm32-wasi@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-wasm32-wasi@1.1.5

picomatch
2 versions
  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • tinyglobby@0.2.17
          • fdir@6.5.0
            • picomatch@4.0.4

  • root@
    • @vitest/coverage-v8@4.1.9
      • vitest@4.1.9
        • @vitest/mocker@4.1.9
          • vite@8.1.4
            • picomatch@4.0.5

rolldown
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • vitest@4.1.9
        • @vitest/mocker@4.1.9
          • vite@8.1.4
            • rolldown@1.1.5

@oxc-project/types
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @oxc-project/types@0.137.0

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @oxc-project/types@0.139.0

@rolldown/binding-android-arm64
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-android-arm64@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-android-arm64@1.1.5

@rolldown/binding-darwin-arm64
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-darwin-arm64@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-darwin-arm64@1.1.5

@rolldown/binding-darwin-x64
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-darwin-x64@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-darwin-x64@1.1.5

@rolldown/binding-freebsd-x64
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-freebsd-x64@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-freebsd-x64@1.1.5

@rolldown/binding-linux-arm-gnueabihf
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-arm-gnueabihf@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-arm-gnueabihf@1.1.5

@rolldown/binding-linux-arm64-gnu
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-arm64-gnu@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-arm64-gnu@1.1.5

@rolldown/binding-linux-arm64-musl
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-arm64-musl@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-arm64-musl@1.1.5

@rolldown/binding-linux-ppc64-gnu
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-ppc64-gnu@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-ppc64-gnu@1.1.5

@rolldown/binding-linux-s390x-gnu
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-s390x-gnu@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-s390x-gnu@1.1.5

@rolldown/binding-linux-x64-gnu
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-x64-gnu@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-x64-gnu@1.1.5

@rolldown/binding-linux-x64-musl
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-linux-x64-musl@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-linux-x64-musl@1.1.5

@rolldown/binding-openharmony-arm64
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-openharmony-arm64@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-openharmony-arm64@1.1.5

@rolldown/binding-win32-arm64-msvc
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-win32-arm64-msvc@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-win32-arm64-msvc@1.1.5

@rolldown/binding-win32-x64-msvc
2 versions
  • root@
    • tsdown@0.22.3
      • rolldown@1.1.3
        • @rolldown/binding-win32-x64-msvc@1.1.3

  • root@
    • @vitest/coverage-v8@4.1.9
      • ...
        • vite@8.1.4
          • rolldown@1.1.5
            • @rolldown/binding-win32-x64-msvc@1.1.5

💡 To find out what depends on a specific package, run: pnpm -r why example-package

⚠️ Package Size Increase

📦 Package 📏 Base Size 📏 Source Size 📈 Size Change
@projectwallace/format-css 8.6 kB 8.6 kB +10 B

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants