diff --git a/crates/biome_cli/tests/cases/handle_vue_files.rs b/crates/biome_cli/tests/cases/handle_vue_files.rs
index 6fd1d152ee18..e15e19737e47 100644
--- a/crates/biome_cli/tests/cases/handle_vue_files.rs
+++ b/crates/biome_cli/tests/cases/handle_vue_files.rs
@@ -1,7 +1,7 @@
use crate::run_cli;
use crate::snap_test::{SnapshotPayload, assert_cli_snapshot};
use biome_console::BufferConsole;
-use biome_fs::MemoryFileSystem;
+use biome_fs::{FileSystemExt, MemoryFileSystem};
use bpaf::Args;
use camino::Utf8Path;
@@ -1448,3 +1448,56 @@ import { mdiSquareOutline } from "@mdi/js";
result,
));
}
+
+#[test]
+fn suppress_does_not_add_comments_for_imports_used_in_templates() {
+ let fs = MemoryFileSystem::default();
+ let mut console = BufferConsole::default();
+
+ fs.insert(
+ "biome.json".into(),
+ r#"{ "html": { "linter": {"enabled": true}, "experimentalFullSupportEnabled": true } }"#
+ .as_bytes(),
+ );
+
+ let file = Utf8Path::new("file.vue");
+ fs.insert(
+ file.into(),
+ r#"
+
+
+
+
+"#
+ .as_bytes(),
+ );
+
+ let (fs, result) = run_cli(
+ fs,
+ &mut console,
+ Args::from(["lint", "--suppress", file.as_str()].as_slice()),
+ );
+
+ assert!(result.is_ok(), "run_cli returned {result:?}");
+
+ let mut buffer = String::new();
+ fs.open(file).unwrap().read_to_string(&mut buffer).unwrap();
+
+ // Verify no suppression comment was added - the import should not be flagged
+ // as unused since it's used in the template
+ assert!(
+ !buffer.contains("biome-ignore"),
+ "Suppress should not add comments for imports used in templates. File content:\n{}",
+ buffer
+ );
+
+ assert_cli_snapshot(SnapshotPayload::new(
+ module_path!(),
+ "suppress_does_not_add_comments_for_imports_used_in_templates",
+ fs,
+ console,
+ result,
+ ));
+}
diff --git a/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/full_support.snap b/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/full_support.snap
index 32db1d8e5604..9c91ef182f87 100644
--- a/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/full_support.snap
+++ b/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/full_support.snap
@@ -18,6 +18,7 @@ expression: redactor(content)
```astro
---
+import s from "src/utils";
import { sure } from "sure.js";
import z from "zod";
@@ -60,22 +61,22 @@ check ━━━━━━━━━━━━━━━━━━━━━━━━
# Emitted Messages
```block
-file.astro:9:1 lint/a11y/useHtmlLang ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+file.astro:10:1 lint/a11y/useHtmlLang ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Provide a lang attribute when using the html element.
- 7 │ ---
- 8 │
- > 9 │
+ 8 │ ---
+ 9 │
+ > 10 │
│ ^^^^^^
- > 10 │
- > 11 │ Astro
- > 12 │
- > 13 │
- > 14 │
+ > 11 │
+ > 12 │ Astro
+ > 13 │
+ > 14 │
+ > 15 │
│ ^^^^^^^
- 15 │
- 16 │
- 10 │
+ 10 │ }
+ 11 │
i background-color is already defined here.
- 5 │
- 6 │
+ 6 │
+ 7 │
i Remove or rename the duplicate property to ensure consistent styling.
diff --git a/crates/biome_service/src/file_handlers/javascript.rs b/crates/biome_service/src/file_handlers/javascript.rs
index 485c76a79abb..b9cff37bdd31 100644
--- a/crates/biome_service/src/file_handlers/javascript.rs
+++ b/crates/biome_service/src/file_handlers/javascript.rs
@@ -1071,12 +1071,20 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result