@@ -117,9 +117,13 @@ export async function vue(
117117 : [ 'template' , 'script' , 'style' ] ,
118118 } ,
119119 ] ,
120+ // 'vue/component-api-style': ['warn', ['script-setup', 'composition']],
120121 'vue/component-name-in-template-casing' : [ 'error' , 'PascalCase' ] ,
121122 'vue/component-options-name-casing' : [ 'error' , 'PascalCase' ] ,
123+ // this is deprecated
124+ 'vue/component-tags-order' : 'off' ,
122125 'vue/custom-event-name-casing' : [ 'error' , 'camelCase' ] ,
126+ // 'vue/define-emits-declaration': ['warn', 'type-based'],
123127 'vue/define-macros-order' : [
124128 'error' ,
125129 {
@@ -131,31 +135,35 @@ export async function vue(
131135 ] ,
132136 } ,
133137 ] ,
138+ // 'vue/define-props-declaration': ['warn', 'type-based'],
134139 'vue/dot-location' : [ 'error' , 'property' ] ,
135140 'vue/dot-notation' : [ 'error' , { allowKeywords : true } ] ,
136141 'vue/eqeqeq' : [ 'error' , 'smart' ] ,
137142 'vue/html-indent' : [ 'error' , indent ] ,
143+ // 'vue/html-self-closing': [
144+ // 'error',
145+ // {
146+ // html: {
147+ // component: 'always',
148+ // normal: 'always',
149+ // void: 'any',
150+ // },
151+ // math: 'always',
152+ // svg: 'always',
153+ // },
138154 'vue/html-quotes' : [ 'error' , 'double' ] ,
139- 'vue/html-self-closing' : [
140- 'error' ,
141- {
142- html : {
143- component : 'always' ,
144- normal : 'always' ,
145- void : 'any' ,
146- } ,
147- math : 'always' ,
148- svg : 'always' ,
149- } ,
150- ] ,
155+ // ],
151156 'vue/max-attributes-per-line' : 'off' ,
152157 'vue/multi-word-component-names' : 'off' ,
158+ // 'vue/next-tick-style': ['warn', 'promise'],
153159 'vue/no-constant-condition' : 'warn' ,
154160 'vue/no-dupe-keys' : 'off' ,
161+ 'vue/no-duplicate-attr-inheritance' : 'warn' ,
155162 'vue/no-empty-pattern' : 'error' ,
156163 'vue/no-extra-parens' : [ 'error' , 'functions' ] ,
157164 'vue/no-irregular-whitespace' : 'error' ,
158165 'vue/no-loss-of-precision' : 'error' ,
166+ 'vue/no-required-prop-with-default' : 'warn' ,
159167 'vue/no-restricted-syntax' : [
160168 'error' ,
161169 'DebuggerStatement' ,
@@ -165,9 +173,14 @@ export async function vue(
165173 'vue/no-restricted-v-bind' : [ 'error' , '/^v-/' ] ,
166174 'vue/no-setup-props-reactivity-loss' : 'off' ,
167175 'vue/no-sparse-arrays' : 'error' ,
176+ 'vue/no-unsupported-features' : 'warn' ,
177+ 'vue/no-unused-emit-declarations' : 'warn' ,
168178 'vue/no-unused-refs' : 'error' ,
179+ 'vue/no-use-v-else-with-v-for' : 'error' ,
180+ 'vue/no-useless-mustaches' : 'warn' ,
169181 'vue/no-useless-v-bind' : 'error' ,
170182 'vue/no-v-html' : 'off' ,
183+ 'vue/no-v-text' : 'warn' ,
171184 'vue/object-shorthand' : [
172185 'error' ,
173186 'always' ,
@@ -176,10 +189,21 @@ export async function vue(
176189 ignoreConstructors : false ,
177190 } ,
178191 ] ,
192+ 'vue/prefer-define-options' : 'warn' ,
179193 'vue/prefer-separate-static-class' : 'error' ,
180194 'vue/prefer-template' : 'error' ,
181195 'vue/prop-name-casing' : [ 'error' , 'camelCase' ] ,
182196 'vue/require-default-prop' : 'off' ,
197+ 'vue/require-macro-variable-name' : [
198+ 'warn' ,
199+ {
200+ defineEmits : 'emit' ,
201+ defineProps : 'props' ,
202+ defineSlots : 'slots' ,
203+ useAttrs : 'attrs' ,
204+ useSlots : 'slots' ,
205+ } ,
206+ ] ,
183207 'vue/require-prop-types' : 'off' ,
184208 'vue/space-infix-ops' : 'error' ,
185209 'vue/space-unary-ops' : [ 'error' , { nonwords : false , words : true } ] ,
@@ -205,6 +229,7 @@ export async function vue(
205229 'vue/comma-dangle' : [ 'error' , 'always-multiline' ] ,
206230 'vue/comma-spacing' : [ 'error' , { after : true , before : false } ] ,
207231 'vue/comma-style' : [ 'error' , 'last' ] ,
232+ 'vue/html-comment-content-newline' : 'warn' ,
208233 'vue/html-comment-content-spacing' : [
209234 'error' ,
210235 'always' ,
0 commit comments