= {},
) {
describe(name, () => {
for (const path of Object.keys(files)) {
@@ -36,6 +38,7 @@ function suite(
const ext = path.split('.').pop()!
let code = await codeToHtml(files[path], {
+ ...options,
lang: ext,
theme: 'github-dark',
transformers,
@@ -265,3 +268,20 @@ body { margin: 0; }
.line { display: block; width: 100%; height: 1.2em; }
`,
)
+
+suite(
+ 'remove-comments',
+ import.meta.glob('./fixtures/remove-comments/*.*', { query: '?raw', import: 'default', eager: true }),
+ [
+ transformerRemoveComments(),
+ transformerRemoveLineBreak(),
+ ],
+ code => `${code}
+`,
+ undefined,
+ { includeExplanation: true },
+)
diff --git a/packages/transformers/test/fixtures/remove-comments/basic.js b/packages/transformers/test/fixtures/remove-comments/basic.js
new file mode 100644
index 000000000..8f1116655
--- /dev/null
+++ b/packages/transformers/test/fixtures/remove-comments/basic.js
@@ -0,0 +1,6 @@
+// This is a comment
+const x = 1; // Inline comment
+/* Block comment */
+const y = 2;
+
+// Another comment
diff --git a/packages/transformers/test/fixtures/remove-comments/basic.js.output.html b/packages/transformers/test/fixtures/remove-comments/basic.js.output.html
new file mode 100644
index 000000000..8d2f7c249
--- /dev/null
+++ b/packages/transformers/test/fixtures/remove-comments/basic.js.output.html
@@ -0,0 +1,6 @@
+const x = 1; const y = 2;
+
\ No newline at end of file
diff --git a/packages/types/src/options.ts b/packages/types/src/options.ts
index 2b88c5023..38f25186c 100644
--- a/packages/types/src/options.ts
+++ b/packages/types/src/options.ts
@@ -142,7 +142,8 @@ export interface CodeToHastOptionsCommon
extends
TransformerOptions,
DecorationOptions,
- Pick {
+ Pick {
+
/**
* The grammar name for the code.
*/
diff --git a/test/exports/@shikijs/transformers.yaml b/test/exports/@shikijs/transformers.yaml
index 225c8df80..c4bf27d20 100644
--- a/test/exports/@shikijs/transformers.yaml
+++ b/test/exports/@shikijs/transformers.yaml
@@ -12,6 +12,7 @@
transformerNotationHighlight: function
transformerNotationMap: function
transformerNotationWordHighlight: function
+ transformerRemoveComments: function
transformerRemoveLineBreak: function
transformerRemoveNotationEscape: function
transformerRenderIndentGuides: function