From ca49e13b3e30303de6a22aeacdbe7e31139f3b75 Mon Sep 17 00:00:00 2001 From: Mateusz Turcza Date: Sat, 15 Aug 2026 12:56:25 +0200 Subject: [PATCH] Add ng-model-options to recognized AngularJS attributes (#19777) Co-authored-by: fisker --- changelog_unreleased/angular/19777.md | 19 +++++ src/language-html/embed/angular-attributes.js | 2 +- .../angular/__snapshots__/format.test.js.snap | 76 +++++++++++++++++++ .../angular/angular/ng-model-options.html | 1 + 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 changelog_unreleased/angular/19777.md create mode 100644 tests/format/angular/angular/ng-model-options.html diff --git a/changelog_unreleased/angular/19777.md b/changelog_unreleased/angular/19777.md new file mode 100644 index 000000000..fbd714442 --- /dev/null +++ b/changelog_unreleased/angular/19777.md @@ -0,0 +1,19 @@ +#### Add ng-model-options to recognized AngularJS attributes (#19777 by @xemlock) + + +```html + + + + + + + + +``` diff --git a/src/language-html/embed/angular-attributes.js b/src/language-html/embed/angular-attributes.js index a580b6373..263cf9c29 100644 --- a/src/language-html/embed/angular-attributes.js +++ b/src/language-html/embed/angular-attributes.js @@ -54,7 +54,7 @@ const printers = [ (name.startsWith("[") && name.endsWith("]")) || /^bind(?:on)?-/.test(name) || // Unofficial rudimentary support for some of the most used directives of AngularJS 1.x - /^ng-(?:if|show|hide|class|style)$/.test(name) + /^ng-(?:if|show|hide|class|style|model-options)$/.test(name) ); }, print: createAngularPrinter("__ng_binding"), diff --git a/tests/format/angular/angular/__snapshots__/format.test.js.snap b/tests/format/angular/angular/__snapshots__/format.test.js.snap index 14e52ad65..ff449bac0 100644 --- a/tests/format/angular/angular/__snapshots__/format.test.js.snap +++ b/tests/format/angular/angular/__snapshots__/format.test.js.snap @@ -3938,6 +3938,82 @@ trailingComma: "none" ================================================================================ `; +exports[`ng-model-options.html - {"bracketSpacing":false} format 1`] = ` +====================================options===================================== +bracketSpacing: false +parsers: ["angular"] + printWidth: 80 (default) | +=====================================input====================================== + + +=====================================output===================================== + + +================================================================================ +`; + +exports[`ng-model-options.html - {"htmlWhitespaceSensitivity":"ignore"} format 1`] = ` +====================================options===================================== +htmlWhitespaceSensitivity: "ignore" +parsers: ["angular"] + printWidth: 80 (default) | +=====================================input====================================== + + +=====================================output===================================== + + +================================================================================ +`; + +exports[`ng-model-options.html - {"printWidth":1} format 1`] = ` +====================================options===================================== +parsers: ["angular"] +printWidth: 1 + | printWidth: 1 +=====================================input====================================== + + +=====================================output===================================== + + +================================================================================ +`; + +exports[`ng-model-options.html - {"trailingComma":"es5"} format 1`] = ` +====================================options===================================== +parsers: ["angular"] +trailingComma: "es5" + printWidth: 80 (default) | +=====================================input====================================== + + +=====================================output===================================== + + +================================================================================ +`; + +exports[`ng-model-options.html - {"trailingComma":"none"} format 1`] = ` +====================================options===================================== +parsers: ["angular"] +trailingComma: "none" + printWidth: 80 (default) | +=====================================input====================================== + + +=====================================output===================================== + + +================================================================================ +`; + exports[`real-world.component.html - {"bracketSpacing":false} format 1`] = ` ====================================options===================================== bracketSpacing: false diff --git a/tests/format/angular/angular/ng-model-options.html b/tests/format/angular/angular/ng-model-options.html new file mode 100644 index 000000000..cea779a3a --- /dev/null +++ b/tests/format/angular/angular/ng-model-options.html @@ -0,0 +1 @@ +