@@ -60,6 +60,31 @@ export async function vue(
6060 )
6161
6262 return [
63+ {
64+ // This allows Vue plugin to work with auto imports
65+ languageOptions : {
66+ globals : {
67+ computed : 'readonly' ,
68+ defineEmits : 'readonly' ,
69+ defineExpose : 'readonly' ,
70+ defineProps : 'readonly' ,
71+ onMounted : 'readonly' ,
72+ onUnmounted : 'readonly' ,
73+ reactive : 'readonly' ,
74+ ref : 'readonly' ,
75+ shallowReactive : 'readonly' ,
76+ shallowRef : 'readonly' ,
77+ toRef : 'readonly' ,
78+ toRefs : 'readonly' ,
79+ watch : 'readonly' ,
80+ watchEffect : 'readonly' ,
81+ } ,
82+ } ,
83+ name : 'coderwyd/vue/setup' ,
84+ plugins : {
85+ vue : pluginVue ,
86+ } ,
87+ } ,
6388 {
6489 files,
6590 languageOptions : {
@@ -78,9 +103,6 @@ export async function vue(
78103 } ,
79104 } ,
80105 name : 'coderwyd/vue/rules' ,
81- plugins : {
82- vue : pluginVue ,
83- } ,
84106 processor : pluginVue . processors ! [ '.vue' ] ,
85107 rules : {
86108 ...pluginVue . configs [ 'flat/base' ] . rules ,
@@ -115,13 +137,17 @@ export async function vue(
115137 ] ,
116138 } ,
117139 ] ,
140+ 'vue/dot-location' : [ 'error' , 'property' ] ,
141+ 'vue/dot-notation' : [ 'error' , { allowKeywords : true } ] ,
118142 // 'vue/define-props-declaration': ['warn', 'type-based'],
119143 'vue/eqeqeq' : [ 'error' , 'smart' ] ,
144+ 'vue/html-quotes' : [ 'error' , 'double' ] ,
120145 // 'vue/define-emits-declaration': ['warn', 'type-based'],
121146 'vue/max-attributes-per-line' : 'off' ,
122147 'vue/multi-word-component-names' : 'off' ,
123148 // 'vue/next-tick-style': ['warn', 'promise'],
124149 'vue/no-constant-condition' : 'warn' ,
150+ 'vue/no-dupe-keys' : 'off' ,
125151 'vue/no-duplicate-attr-inheritance' : 'warn' ,
126152 'vue/no-empty-pattern' : 'error' ,
127153 'vue/no-extra-parens' : [ 'error' , 'functions' ] ,
0 commit comments