From 4dd559c860557d44be3ba7dcb47eb51ed75da273 Mon Sep 17 00:00:00 2001 From: leafOfTree Date: Fri, 13 Aug 2021 12:50:25 +0800 Subject: [PATCH] Support vue3 composition api --- syntax/patch/javascript.vim | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/syntax/patch/javascript.vim b/syntax/patch/javascript.vim index c3635e2..5df7b76 100644 --- a/syntax/patch/javascript.vim +++ b/syntax/patch/javascript.vim @@ -22,10 +22,10 @@ syntax match javaScriptNumber '\v<-?\d+L?>|0[xX][0-9a-fA-F]+>' \ containedin=@javascript display highlight link javaScriptNumber Constant -" Vue keywords +" Check if Vue keywords syntax are enabled if !s:keyword | finish | endif -let s:vue_keywords = 'name parent functional delimiters comments components directives filters extends mixins inheritAttrs model props propsData data computed watch methods template render renderError inject provide beforeCreate created beforeMount mounted beforeUpdate updated activated deactivated beforeDestroy destroyed setup beforeUnmount unmounted errorCaptured renderTracked renderTriggered' +let s:vue_keywords = 'name parent functional delimiters comments components directives filters extends mixins inheritAttrs model props propsData data methods template render renderError inject provide beforeCreate created beforeMount mounted beforeUpdate updated activated deactivated beforeDestroy destroyed beforeUnmount unmounted errorCaptured renderTracked renderTriggered' let s:indent = &sw * (1 + s:enable_initial_indent) let s:keywords_regexp = '\v^\s{'.s:indent.'}(async )?<(' @@ -63,10 +63,13 @@ execute 'syntax match vueObjectFuncKey display /' \.s:match_option \.' nextgroup=jsFuncArgs' -let s:vue3_keywords = 'ref reactive toRefs watch computed'. - \' onBeforeMount onMounted onBeforeUpdate onUpdated onBeforeUnmount'. - \' onUnmounted onErrorCaptured onRenderTracked onRenderTriggered'. - \' getCurrentInstance' +" https://v3.vuejs.org/api/ +let s:basic_reactive = 'reactive readonly isProxy isReactive isReadonly toRaw markRaw shallowReactive shallowReadonly' +let s:refs = 'ref unref toRef toRefs isRef customRef shallowRef triggerRef' +let s:computed_and_watch = 'computed watchEffect watchPostEffect watchSyncEffect watch' +let s:composition = 'setup onBeforeMount onMounted onBeforeUpdate onUpdated onBeforeUnmount onUnmounted onErrorCaptured onRenderTracked onRenderTriggered onActivated onDeactivated getCurrentInstance InjectionKey provide inject' +let s:vue3_keywords = s:basic_reactive.' '.s:refs.' '.s:computed_and_watch.' '.s:composition + let s:vue3_keywords_regexp = '\v<(' \.join(split(s:vue3_keywords, ' '), '|') \.')\ze'