diff --git a/src/tint/lang/core/constant/eval_binary_op_test.cc b/src/tint/lang/core/constant/eval_binary_op_test.cc
index fd4d890..df37060 100644
--- a/src/tint/lang/core/constant/eval_binary_op_test.cc
+++ b/src/tint/lang/core/constant/eval_binary_op_test.cc
@@ -1989,18 +1989,22 @@
  • 'vec2<T  ✓ >(x: T  ✓ , y: T  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >(T  ✓ ) -> vec2<T>' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >(vec2<T>  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >() -> vec2<T>' where:
+      ✗  overload expects 0 arguments, call passed 2 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2(x: T  ✓ , y: T  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2(T  ✓ ) -> vec2<T>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 1 argument, call passed 2 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2() -> vec2<abstract-int>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 0 arguments, call passed 2 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
  • 'vec2(vec2<T>  ✗ ) -> vec2<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
 
@@ -2040,18 +2044,22 @@
  • 'vec2<T  ✓ >(x: T  ✓ , y: T  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >(T  ✓ ) -> vec2<T>' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >(vec2<T>  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2<T  ✓ >() -> vec2<T>' where:
+      ✗  overload expects 0 arguments, call passed 2 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2(x: T  ✓ , y: T  ✗ ) -> vec2<T>' where:
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2(T  ✓ ) -> vec2<T>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 1 argument, call passed 2 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec2() -> vec2<abstract-int>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 0 arguments, call passed 2 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
  • 'vec2(vec2<T>  ✗ ) -> vec2<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
 
diff --git a/src/tint/lang/core/intrinsic/table.cc b/src/tint/lang/core/intrinsic/table.cc
index 8c986d2..7b71604 100644
--- a/src/tint/lang/core/intrinsic/table.cc
+++ b/src/tint/lang/core/intrinsic/table.cc
@@ -607,11 +607,20 @@
         first = false;
     };
 
+    if (all_params_match && args.Length() > overload.num_parameters) {
+        separator();
+        ss << style::Mismatch(" ✗ ")
+           << style::Plain(" overload expects ", static_cast<int>(overload.num_parameters),
+                           " argument", overload.num_parameters != 1 ? "s" : "", ", call passed ",
+                           args.Length(), " argument", args.Length() != 1 ? "s" : "");
+    }
     if (all_params_match && template_args.Length() > overload.num_explicit_templates) {
         separator();
         ss << style::Mismatch(" ✗ ")
            << style::Plain(" overload expects ", static_cast<int>(overload.num_explicit_templates),
-                           " template argument", overload.num_explicit_templates != 1 ? "s" : "");
+                           " template argument", overload.num_explicit_templates != 1 ? "s" : "",
+                           ", call passed ", template_args.Length(), " argument",
+                           template_args.Length() != 1 ? "s" : "");
     }
 
     for (size_t i = 0; i < overload.num_templates; i++) {
diff --git a/src/tint/lang/core/intrinsic/table_test.cc b/src/tint/lang/core/intrinsic/table_test.cc
index 31fbc13..ad1bb89 100644
--- a/src/tint/lang/core/intrinsic/table_test.cc
+++ b/src/tint/lang/core/intrinsic/table_test.cc
@@ -593,7 +593,8 @@
 27 candidate functions:
  • 'textureDimensions(texture: texture_depth_2d  ✓ , level: L  ✗ ) -> vec2<u32>' where:
       ✗  'L' is 'i32' or 'u32'
- • 'textureDimensions(texture: texture_depth_2d  ✓ ) -> vec2<u32>'
+ • 'textureDimensions(texture: texture_depth_2d  ✓ ) -> vec2<u32>' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
  • 'textureDimensions(texture: texture_depth_2d_array  ✗ , level: L  ✗ ) -> vec2<u32>' where:
       ✗  'L' is 'i32' or 'u32'
  • 'textureDimensions(texture: texture_depth_cube  ✗ , level: L  ✗ ) -> vec2<u32>' where:
@@ -792,12 +793,14 @@
  • 'vec3<T  ✓ >(x: T  ✓ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(T  ✓ ) -> vec3<T>' where:
+      ✗  overload expects 1 argument, call passed 3 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(xy: vec2<T>  ✗ , z: T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(vec3<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >() -> vec3<T>' where:
+      ✗  overload expects 0 arguments, call passed 3 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
 
 5 candidate conversions:
@@ -881,6 +884,7 @@
  • 'vec3<T  ✓ >(T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >() -> vec3<T>' where:
+      ✗  overload expects 0 arguments, call passed 1 argument
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(xy: vec2<T>  ✗ , z: T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
diff --git a/src/tint/lang/wgsl/intrinsic/table_test.cc b/src/tint/lang/wgsl/intrinsic/table_test.cc
index 4912c68..0393998 100644
--- a/src/tint/lang/wgsl/intrinsic/table_test.cc
+++ b/src/tint/lang/wgsl/intrinsic/table_test.cc
@@ -613,7 +613,8 @@
 27 candidate functions:
  • 'textureDimensions(texture: texture_depth_2d  ✓ , level: L  ✗ ) -> vec2<u32>' where:
       ✗  'L' is 'i32' or 'u32'
- • 'textureDimensions(texture: texture_depth_2d  ✓ ) -> vec2<u32>'
+ • 'textureDimensions(texture: texture_depth_2d  ✓ ) -> vec2<u32>' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
  • 'textureDimensions(texture: texture_depth_2d_array  ✗ , level: L  ✗ ) -> vec2<u32>' where:
       ✗  'L' is 'i32' or 'u32'
  • 'textureDimensions(texture: texture_depth_cube  ✗ , level: L  ✗ ) -> vec2<u32>' where:
@@ -834,8 +835,10 @@
  • 'vec3(x: T  ✓ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3(T  ✓ ) -> vec3<T>' where:
+      ✗  overload expects 1 argument, call passed 3 arguments
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
- • 'vec3() -> vec3<abstract-int>'
+ • 'vec3() -> vec3<abstract-int>' where:
+      ✗  overload expects 0 arguments, call passed 3 arguments
  • 'vec3(vec3<T>  ✗ ) -> vec3<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✗ >(x: T  ✓ , y: T  ✗ , z: T  ✓ ) -> vec3<T>' where:
@@ -845,10 +848,12 @@
  • 'vec3<T  ✗ >(x: T  ✓ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✗ >(T  ✓ ) -> vec3<T>' where:
+      ✗  overload expects 1 argument, call passed 3 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✗ >(vec3<T>  ✗ ) -> vec3<T>' where:
       ✗  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✗ >() -> vec3<T>' where:
+      ✗  overload expects 0 arguments, call passed 3 arguments
       ✗  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
 
 5 candidate conversions:
@@ -885,12 +890,14 @@
  • 'vec3<T  ✓ >(x: T  ✓ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(T  ✓ ) -> vec3<T>' where:
+      ✗  overload expects 1 argument, call passed 3 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(xy: vec2<T>  ✗ , z: T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(vec3<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >() -> vec3<T>' where:
+      ✗  overload expects 0 arguments, call passed 3 arguments
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3(x: T  ✓ , y: T  ✗ , z: T  ✓ ) -> vec3<T>' where:
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
@@ -899,10 +906,12 @@
  • 'vec3(x: T  ✓ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3(T  ✓ ) -> vec3<T>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 1 argument, call passed 3 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3() -> vec3<abstract-int>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 0 arguments, call passed 3 arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
  • 'vec3(vec3<T>  ✗ ) -> vec3<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
 
@@ -1017,6 +1026,7 @@
  • 'vec3<T  ✓ >(T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >() -> vec3<T>' where:
+      ✗  overload expects 0 arguments, call passed 1 argument
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3<T  ✓ >(xy: vec2<T>  ✗ , z: T  ✗ ) -> vec3<T>' where:
       ✓  'T' is 'f32', 'f16', 'i32', 'u32' or 'bool'
@@ -1027,7 +1037,8 @@
  • 'vec3(T  ✗ ) -> vec3<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3() -> vec3<abstract-int>' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 0 arguments, call passed 1 argument
+      ✗  overload expects 0 template arguments, call passed 1 argument
  • 'vec3(vec3<T>  ✗ ) -> vec3<T>' where:
       ✗  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'i32', 'u32' or 'bool'
  • 'vec3(x: T  ✗ , yz: vec2<T>  ✗ ) -> vec3<T>' where:
diff --git a/src/tint/lang/wgsl/resolver/atomics_validation_test.cc b/src/tint/lang/wgsl/resolver/atomics_validation_test.cc
index bd8cf06..e00952c 100644
--- a/src/tint/lang/wgsl/resolver/atomics_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/atomics_validation_test.cc
@@ -66,7 +66,7 @@
     GlobalVar("a", ty.atomic(ty.f32(Source{{12, 34}})), core::AddressSpace::kWorkgroup);
 
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(), "12:34 error: atomic only supports i32 or u32 types");
+    EXPECT_EQ(r()->error(), "12:34 error: 'atomic' only supports 'i32' or 'u32' types");
 }
 
 TEST_F(ResolverAtomicValidationTest, InvalidAddressSpace_Simple) {
diff --git a/src/tint/lang/wgsl/resolver/builtin_test.cc b/src/tint/lang/wgsl/resolver/builtin_test.cc
index b29c901..e9a2788 100644
--- a/src/tint/lang/wgsl/resolver/builtin_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_test.cc
@@ -879,6 +879,7 @@
 
 1 candidate function:
  • 'cross(vec3<T>  ✓ , vec3<T>  ✓ ) -> vec3<T>' where:
+      ✗  overload expects 2 arguments, call passed 3 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
 )");
 }
@@ -940,6 +941,7 @@
 
 2 candidate functions:
  • 'distance(vecN<T>  ✓ , vecN<T>  ✓ ) -> T' where:
+      ✗  overload expects 2 arguments, call passed 3 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
  • 'distance(T  ✗ , T  ✗ ) -> T' where:
       ✗  'T' is 'abstract-float', 'f32' or 'f16'
@@ -1197,6 +1199,7 @@
 
 2 candidate functions:
  • 'length(T  ✓ ) -> T' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
  • 'length(vecN<T>  ✗ ) -> T' where:
       ✗  'T' is 'abstract-float', 'f32' or 'f16'
@@ -1393,6 +1396,7 @@
 
 2 candidate functions:
  • 'modf(T  ✓ ) -> __modf_result_T' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
  • 'modf(vecN<T>  ✗ ) -> __modf_result_vecN_T' where:
       ✗  'T' is 'abstract-float', 'f32' or 'f16'
@@ -1409,6 +1413,7 @@
 
 2 candidate functions:
  • 'modf(T  ✓ ) -> __modf_result_T' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
  • 'modf(vecN<T>  ✗ ) -> __modf_result_vecN_T' where:
       ✗  'T' is 'abstract-float', 'f32' or 'f16'
@@ -1427,6 +1432,7 @@
 
 2 candidate functions:
  • 'modf(vecN<T>  ✓ ) -> __modf_result_vecN_T' where:
+      ✗  overload expects 1 argument, call passed 2 arguments
       ✓  'T' is 'abstract-float', 'f32' or 'f16'
  • 'modf(T  ✗ ) -> __modf_result_T' where:
       ✗  'T' is 'abstract-float', 'f32' or 'f16'
diff --git a/src/tint/lang/wgsl/resolver/builtin_validation_test.cc b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
index 6b55f36..728a7b8 100644
--- a/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
@@ -168,10 +168,12 @@
 
 2 candidate constructors:
  • 'i32(i32  ✗ ) -> i32'
- • 'i32() -> i32'
+ • 'i32() -> i32' where:
+      ✗  overload expects 0 arguments, call passed 3 arguments
 
 1 candidate conversion:
  • 'i32(T  ✓ ) -> i32' where:
+      ✗  overload expects 1 argument, call passed 3 arguments
       ✓  'T' is 'abstract-int', 'abstract-float', 'f32', 'f16', 'u32' or 'bool'
 )");
 }
diff --git a/src/tint/lang/wgsl/resolver/call_validation_test.cc b/src/tint/lang/wgsl/resolver/call_validation_test.cc
index b10f3fc..d7b4c57 100644
--- a/src/tint/lang/wgsl/resolver/call_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/call_validation_test.cc
@@ -523,7 +523,7 @@
 
 2 candidate functions:
  • 'min(T  ✓ , T  ✓ ) -> T' where:
-      ✗  overload expects 0 template arguments
+      ✗  overload expects 0 template arguments, call passed 1 argument
       ✓  'T' is 'abstract-float', 'abstract-int', 'f32', 'i32', 'u32' or 'f16'
  • 'min(vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
       ✗  'T' is 'abstract-float', 'abstract-int', 'f32', 'i32', 'u32' or 'f16'
diff --git a/src/tint/lang/wgsl/resolver/sem_helper.cc b/src/tint/lang/wgsl/resolver/sem_helper.cc
index 494e4f8..fbd74a9 100644
--- a/src/tint/lang/wgsl/resolver/sem_helper.cc
+++ b/src/tint/lang/wgsl/resolver/sem_helper.cc
@@ -155,7 +155,9 @@
                 }
             }
             auto& note = AddNote(ident->source);
-            tint::SuggestAlternatives(name, filtered.Slice(), note.message);
+            SuggestAlternativeOptions opts;
+            opts.alternatives_style = style::Enum;
+            SuggestAlternatives(name, filtered.Slice(), note.message, opts);
         }
         return;
     }
diff --git a/src/tint/lang/wgsl/resolver/validation_test.cc b/src/tint/lang/wgsl/resolver/validation_test.cc
index db92d22..2e88cc0 100644
--- a/src/tint/lang/wgsl/resolver/validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/validation_test.cc
@@ -1017,9 +1017,9 @@
                                                   // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfElseInContinuing) {
@@ -1031,9 +1031,9 @@
                                              // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInContinuing) {
@@ -1042,9 +1042,9 @@
                                           // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfInIfInContinuing) {
@@ -1057,9 +1057,9 @@
                                                              // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfTrueMultipleStmtsInContinuing) {
@@ -1071,9 +1071,9 @@
                                                     // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfElseMultipleStmtsInContinuing) {
@@ -1086,9 +1086,9 @@
                                                     // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfElseIfInContinuing) {
@@ -1100,9 +1100,9 @@
                                                         // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfNonEmptyElseInContinuing) {
@@ -1115,9 +1115,9 @@
                                                  // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfElseNonEmptyTrueInContinuing) {
@@ -1130,9 +1130,9 @@
                                                            // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakInIfInContinuingNotLast) {
@@ -1144,9 +1144,9 @@
                                              // }
     WrapInFunction(Loop(Block(), cont));
     EXPECT_FALSE(r()->Resolve());
-    EXPECT_EQ(r()->error(),
-              "12:34 error: `break` must not be used to exit from a continuing block. "
-              "Use `break-if` instead.");
+    EXPECT_EQ(
+        r()->error(),
+        R"(12:34 error: 'break' must not be used to exit from a continuing block. Use 'break if' instead.)");
 }
 
 TEST_F(ResolverValidationTest, Stmt_BreakNotInLoopOrSwitch) {
diff --git a/src/tint/lang/wgsl/resolver/validator.cc b/src/tint/lang/wgsl/resolver/validator.cc
index c6412ff..adc0134 100644
--- a/src/tint/lang/wgsl/resolver/validator.cc
+++ b/src/tint/lang/wgsl/resolver/validator.cc
@@ -325,7 +325,9 @@
     // https://gpuweb.github.io/gpuweb/wgsl/#atomic-types
     // T must be either u32 or i32.
     if (!s->Type()->IsAnyOf<core::type::U32, core::type::I32>()) {
-        AddError(a->arguments[0]->source) << "atomic only supports i32 or u32 types";
+        AddError(a->arguments[0]->source)
+            << style::Type("atomic") << " only supports " << style::Type("i32") << " or "
+            << style::Type("u32") << " types";
         return false;
     }
     return true;
@@ -1573,8 +1575,8 @@
     if (ClosestContinuing(/*stop_at_loop*/ true, /* stop_at_switch */ true, current_statement) !=
         nullptr) {
         AddError(stmt->Declaration()->source)
-            << "`break` must not be used to exit from a continuing block. Use "
-               "`break-if` instead.";
+            << style::Keyword("break") << " must not be used to exit from a continuing block. Use "
+            << style::Keyword("break if") << " instead.";
         return false;
     }
     return true;
diff --git a/src/tint/utils/text/string.cc b/src/tint/utils/text/string.cc
index 374176e..47d7a90c 100644
--- a/src/tint/utils/text/string.cc
+++ b/src/tint/utils/text/string.cc
@@ -69,6 +69,7 @@
                          const SuggestAlternativeOptions& options /* = {} */) {
     // If the string typed was within kSuggestionDistance of one of the possible enum values,
     // suggest that. Don't bother with suggestions if the string was extremely long.
+    auto default_style = ss.Style();
     constexpr size_t kSuggestionDistance = 5;
     constexpr size_t kSuggestionMaxLength = 64;
     if (!got.empty() && got.size() < kSuggestionMaxLength) {
@@ -82,7 +83,8 @@
             }
         }
         if (!candidate.empty()) {
-            ss << "Did you mean '" << options.prefix << candidate << "'?";
+            ss << "Did you mean " << options.alternatives_style << options.prefix << candidate
+               << default_style << "?";
             if (options.list_possible_values) {
                 ss << "\n";
             }
@@ -96,7 +98,7 @@
             if (str != strings[0]) {
                 ss << ", ";
             }
-            ss << "'" << options.prefix << str << "'";
+            ss << options.alternatives_style << options.prefix << str << default_style;
         }
     }
 }
diff --git a/src/tint/utils/text/string.h b/src/tint/utils/text/string.h
index 6ccd38d..e000c79 100644
--- a/src/tint/utils/text/string.h
+++ b/src/tint/utils/text/string.h
@@ -34,6 +34,7 @@
 #include "src/tint/utils/containers/slice.h"
 #include "src/tint/utils/containers/vector.h"
 #include "src/tint/utils/text/string_stream.h"
+#include "src/tint/utils/text/text_style.h"
 
 /// Forward declaration
 namespace tint {
@@ -118,6 +119,8 @@
 struct SuggestAlternativeOptions {
     /// The prefix to apply to the strings when printing
     std::string_view prefix;
+    /// The text style for alternatives
+    TextStyle alternatives_style = style::Code;
     /// List all the possible values
     bool list_possible_values = true;
 };
