From 0be4d0b8d6c44431499d19961d6b2dab5d24d590 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 16 May 2026 11:51:48 +0000 Subject: [PATCH 1/2] Support printing selectors with namespace (issue #207) Import is_universal_selector from css-parser and handle the namespace property on both TypeSelector and UniversalSelector nodes, printing the namespace prefix (e.g. ns|div, *|div, |div, ns|*) correctly. https://claude.ai/code/session_01HfazKmPqWt1wtBF3ZUJ53P --- src/lib/index.ts | 9 ++++++++- test/selectors.test.ts | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lib/index.ts b/src/lib/index.ts index bc7eecd..84f4765 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -24,6 +24,7 @@ import { type StyleSheet, type CSSNode, is_type_selector, + is_universal_selector, is_combinator, is_pseudo_class_selector, is_pseudo_element_selector, @@ -187,7 +188,13 @@ function print_simple_selector( is_first: boolean = false, ): string { if (is_type_selector(node)) { - return node.name.toLowerCase() + let prefix = node.namespace !== null ? node.namespace.toLowerCase() + '|' : '' + return prefix + node.name.toLowerCase() + } + + if (is_universal_selector(node)) { + let prefix = node.namespace !== null ? node.namespace.toLowerCase() + '|' : '' + return prefix + '*' } if (is_combinator(node)) { diff --git a/test/selectors.test.ts b/test/selectors.test.ts index fadf762..79c0834 100644 --- a/test/selectors.test.ts +++ b/test/selectors.test.ts @@ -260,3 +260,17 @@ test('handles syntax errors', () => { let expected = `test {}` expect(actual).toEqual(expected) }) + +test.each([ + [`ns|div {}`, `ns|div {}`], + [`NS|div {}`, `ns|div {}`], + [`*|div {}`, `*|div {}`], + [`|div {}`, `|div {}`], + [`ns|* {}`, `ns|* {}`], + [`*|* {}`, `*|* {}`], + [`|* {}`, `|* {}`], + [`ns|div, ns|span {}`, `ns|div,\nns|span {}`], +])('formats namespace selectors: %s', (css, expected) => { + let actual = format(css) + expect(actual).toEqual(expected) +}) From 527592678426cf90d4b8b2d0d57d118ef8384d88 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 16 May 2026 13:08:13 +0000 Subject: [PATCH 2/2] Fix no-negated-condition lint errors in namespace prefix logic https://claude.ai/code/session_01HfazKmPqWt1wtBF3ZUJ53P --- src/lib/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/index.ts b/src/lib/index.ts index 84f4765..5d3ef74 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -188,12 +188,12 @@ function print_simple_selector( is_first: boolean = false, ): string { if (is_type_selector(node)) { - let prefix = node.namespace !== null ? node.namespace.toLowerCase() + '|' : '' + let prefix = node.namespace === null ? '' : node.namespace.toLowerCase() + '|' return prefix + node.name.toLowerCase() } if (is_universal_selector(node)) { - let prefix = node.namespace !== null ? node.namespace.toLowerCase() + '|' : '' + let prefix = node.namespace === null ? '' : node.namespace.toLowerCase() + '|' return prefix + '*' }