Improve code and performance

This commit is contained in:
leafOfTree
2021-03-29 15:58:50 +08:00
parent 6b48092f15
commit e1dab23589
4 changed files with 24 additions and 18 deletions
+7 -8
View File
@@ -20,11 +20,11 @@ function! s:MergeDefaultWithConfig(user)
\ 'template': ['html'], \ 'template': ['html'],
\ 'style': ['css'], \ 'style': ['css'],
\}, \},
\'full_syntax': [],
\'attribute': 0, \'attribute': 0,
\'keyword': 0, \'keyword': 0,
\'foldexpr': 0, \'foldexpr': 0,
\'init_indent': expand('%:e') == 'wpy', \'init_indent': expand('%:e') == 'wpy',
\'full_syntax': [],
\'debug': 0, \'debug': 0,
\} \}
@@ -122,18 +122,18 @@ let s:style_with_css_prefix = ['scss', 'less', 'stylus']
" Adjust syntax name to support emmet-vim by adding css prefix " Adjust syntax name to support emmet-vim by adding css prefix
function! vue#AlterSyntaxForEmmetVim(name, syntax) function! vue#AlterSyntaxForEmmetVim(name, syntax)
let name = a:name let name = a:name
if count(s:style_with_css_prefix, a:syntax) == 1 if count(s:style_with_css_prefix, a:syntax)
let name = 'css'.toupper(name[0]).name[1:] let name = 'css'.toupper(name[0]).name[1:]
endif endif
return name return name
endfunction endfunction
" Remove css prefix " Remove css prefix
function! s:RecoverSyntax(syntax_name, syntax) function! s:RemoveCssPrefix(syntax_name, syntax)
let syntax = a:syntax let syntax = a:syntax
if syntax == 'css' if syntax == 'css'
let next_syntax = tolower(matchstr(a:syntax_name, '^\U\+\zs\u\U\+')) let next_syntax = tolower(matchstr(a:syntax_name, '^\U\+\zs\u\U\+'))
if count(s:style_with_css_prefix, next_syntax) == 1 if count(s:style_with_css_prefix, next_syntax)
let syntax = next_syntax let syntax = next_syntax
endif endif
endif endif
@@ -143,7 +143,7 @@ endfunction
function! s:GetBlockSyntax(lnum) function! s:GetBlockSyntax(lnum)
let syntax_name = s:SyntaxAtEnd(a:lnum) let syntax_name = s:SyntaxAtEnd(a:lnum)
let syntax = matchstr(syntax_name, '^\U\+') let syntax = matchstr(syntax_name, '^\U\+')
let syntax = s:RecoverSyntax(syntax_name, syntax) let syntax = s:RemoveCssPrefix(syntax_name, syntax)
return syntax return syntax
endfunction endfunction
@@ -156,8 +156,7 @@ function! vue#GetBlockSyntax(lnum)
endfunction endfunction
function! GetVueSubtype() function! GetVueSubtype()
let lnum = line('.') let syntax = vue#GetBlockSyntax(line('.'))
let syntax = vue#GetBlockSyntax(lnum)
return syntax return syntax
endfunction endfunction
@@ -169,7 +168,7 @@ endfunction
function! vue#LoadSyntax(group, syntax) function! vue#LoadSyntax(group, syntax)
let group = a:group let group = a:group
let syntax = a:syntax let syntax = a:syntax
if count(s:full_syntax, syntax) == 1 if count(s:full_syntax, syntax)
call vue#LoadFullSyntax(group, syntax) call vue#LoadFullSyntax(group, syntax)
else else
let loaded = vue#LoadDefaultSyntax(group, syntax) let loaded = vue#LoadDefaultSyntax(group, syntax)
+6 -2
View File
@@ -199,11 +199,15 @@ function! GetVueIndent()
return ind return ind
endfunction endfunction
function! s:Main() function! VimVuePluginIndentMain(...)
call s:Init() call s:Init()
let syntax_list = vue#GetSyntaxList(s:config_syntax) let syntax_list = vue#GetSyntaxList(s:config_syntax)
call s:SetIndentExpr(syntax_list) call s:SetIndentExpr(syntax_list)
call s:SetVueIndent() call s:SetVueIndent()
endfunction endfunction
call s:Main() if exists('*timer_start')
call timer_start(50, 'VimVuePluginIndentMain')
else
call VimVuePluginIndentMain()
endif
+4 -4
View File
@@ -41,19 +41,19 @@ let s:match_option =
\.' contains='.s:contains \.' contains='.s:contains
\.' skipwhite skipempty' \.' skipwhite skipempty'
execute 'syntax match vueObjectKey /' execute 'syntax match vueObjectKey display /'
\.s:keywords_regexp \.s:keywords_regexp
\.'\s*:/' \.'\s*:/'
\.s:match_option \.s:match_option
\.' nextgroup=jsObjectValue' \.' nextgroup=jsObjectValue'
execute 'syntax match vueObjectFuncName /' execute 'syntax match vueObjectFuncName display /'
\.s:keywords_regexp \.s:keywords_regexp
\.'\_s*\(/' \.'\_s*\(/'
\.s:match_option \.s:match_option
\.' nextgroup=jsFuncArgs' \.' nextgroup=jsFuncArgs'
execute 'syntax match vueObjectFuncKey /' execute 'syntax match vueObjectFuncKey display /'
\.s:keywords_regexp \.s:keywords_regexp
\.'\s*:\s*function>/' \.'\s*:\s*function>/'
\.s:match_option \.s:match_option
@@ -67,7 +67,7 @@ let s:vue3_keywords_regexp = '\v<('
\.join(split(s:vue3_keywords, ' '), '|') \.join(split(s:vue3_keywords, ' '), '|')
\.')\ze' \.')\ze'
execute 'syntax match vue3Keyword /' execute 'syntax match vue3Keyword display /'
\.s:vue3_keywords_regexp \.s:vue3_keywords_regexp
\.'\_s*\(/' \.'\_s*\(/'
\.s:match_option \.s:match_option
+7 -4
View File
@@ -136,7 +136,7 @@ function! s:HighlightVueTag()
endfunction endfunction
function! s:SetSyntaxSync() function! s:SetSyntaxSync()
syntax sync fromstart " syntax sync fromstart
endfunction endfunction
function! s:SetIsKeyword() function! s:SetIsKeyword()
@@ -151,7 +151,7 @@ function! s:SetIsKeyword()
endif endif
endfunction endfunction
function! VimVuePluginSyntaxMain(id) function! VimVuePluginSyntaxMain(...)
call s:Init() call s:Init()
let syntax_list = vue#GetSyntaxList(s:config_syntax) let syntax_list = vue#GetSyntaxList(s:config_syntax)
call s:LoadSyntaxList(syntax_list) call s:LoadSyntaxList(syntax_list)
@@ -161,7 +161,10 @@ function! VimVuePluginSyntaxMain(id)
call s:HighlightVueTag() call s:HighlightVueTag()
endfunction endfunction
" call timer_start(10, 'VimVuePluginSyntaxMain') if exists('*timer_start')
call VimVuePluginSyntaxMain(0) call timer_start(1, 'VimVuePluginSyntaxMain')
else
call VimVuePluginSyntaxMain()
endif
let b:current_syntax = 'vue' let b:current_syntax = 'vue'