mirror of
https://github.com/chenasraf/vim-matchup.git
synced 2026-05-17 17:38:01 +00:00
Update html patterns
This commit is contained in:
@@ -12,8 +12,6 @@ match-up is a plugin that lets you highlight, navigate, and operate on
|
||||
sets of matching text. It extends vim's `%` key to language-specific
|
||||
words instead of just single characters.
|
||||
|
||||
[](https://gitter.im/vim-matchup/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
||||
## Screenshot
|
||||
|
||||
<img src='https://raw.githubusercontent.com/wiki/andymass/vim-matchup/images/match-up-hl1.gif' width='450px'>
|
||||
|
||||
@@ -12,8 +12,8 @@ let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
call matchup#util#patch_match_words(
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>',
|
||||
\ '<\@<=\([^/][^ \t>]*\)\%(>\|$\|[ \t][^>]*\%(>\|$\)\):<\@<=/\1>'
|
||||
\ '[^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>',
|
||||
\ '[^ \t>]*\)\%(>\|$\|[ \t][^>]*\%(>\|$\)\):<\@<=/\1>'
|
||||
\)
|
||||
|
||||
if matchup#util#matchpref('nolists',
|
||||
|
||||
@@ -35,7 +35,7 @@ function! matchup#loader#init_buffer() abort " {{{1
|
||||
let l:has_ts_hl = 0
|
||||
if s:ts_may_be_supported && matchup#ts_engine#is_hl_enabled(bufnr('%'))
|
||||
let l:has_ts_hl = 1
|
||||
|
||||
|
||||
if matchup#ts_engine#get_option(
|
||||
\ bufnr('%'), 'additional_vim_regex_highlighting')
|
||||
if empty(&syntax)
|
||||
|
||||
@@ -68,35 +68,6 @@ endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
function! matchup#util#uniq(list) " {{{1
|
||||
if exists('*uniq') | return uniq(a:list) | endif
|
||||
if len(a:list) <= 1 | return a:list | endif
|
||||
|
||||
let l:uniq = [a:list[0]]
|
||||
for l:next in a:list[1:]
|
||||
if l:uniq[-1] != l:next
|
||||
call add(l:uniq, l:next)
|
||||
endif
|
||||
endfor
|
||||
return l:uniq
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
function! matchup#util#uniq_unsorted(list) " {{{1
|
||||
if len(a:list) <= 1 | return a:list | endif
|
||||
|
||||
let l:visited = [a:list[0]]
|
||||
for l:index in reverse(range(1, len(a:list)-1))
|
||||
if index(l:visited, a:list[l:index]) >= 0
|
||||
call remove(a:list, l:index)
|
||||
else
|
||||
call add(l:visited, a:list[l:index])
|
||||
endif
|
||||
endfor
|
||||
return a:list
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
function! matchup#util#has_duplicate_str(list) " {{{1
|
||||
if len(a:list) <= 1 | return 0 | endif
|
||||
let l:seen = {}
|
||||
@@ -133,7 +104,7 @@ function! matchup#util#patch_match_words(from, to, ...) abort " {{{1
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
function! matchup#util#check_match_words(sha256) " {{{1
|
||||
function! matchup#util#check_match_words(sha256) abort " {{{1
|
||||
if !exists('b:match_words') | return 0 | endif
|
||||
return sha256(b:match_words) =~# '^'.a:sha256
|
||||
endfunction
|
||||
@@ -152,7 +123,7 @@ endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
function! matchup#util#matchpref(id, default) " {{{1
|
||||
function! matchup#util#matchpref(id, default) abort " {{{1
|
||||
return get(get(g:matchup_matchpref, &filetype, {}), a:id, a:default)
|
||||
endfunction
|
||||
|
||||
@@ -160,22 +131,38 @@ endfunction
|
||||
|
||||
function! matchup#util#standard_html(...) abort " {{{1
|
||||
let l:prefs = a:0 ? a:1 : {}
|
||||
let l:variant = get(l:prefs, 'variant', 'html')
|
||||
|
||||
let l:words = '<:>,<\@<=!--:-->'
|
||||
|
||||
if get(l:prefs, 'lists', 0)
|
||||
let l:words .= ',<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>'
|
||||
let l:words .= ',<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>'
|
||||
if l:variant ==# 'html' && get(l:prefs, 'lists', 0)
|
||||
let l:words .= ',<\@<=[ou]l\>\g{hlend}[^>]*\%(>\|$\)'
|
||||
\ . ':<\@<=li\>'
|
||||
\ . ':<\@<=/[ou]l\g{hlend}>'
|
||||
let l:words .= ',<\@<=dl\>\g{hlend}[^>]*\%(>\|$\)'
|
||||
\ . ':<\@<=d[td]\>'
|
||||
\ . ':<\@<=/dl\g{hlend}>'
|
||||
endif
|
||||
|
||||
if get(l:prefs, 'tagnameonly', 1)
|
||||
let l:words .= ',<\@<=\([^/][^ \t>]*\)\g{hlend}'
|
||||
if l:variant ==# 'html'
|
||||
let l:words .= ',<\@<=\([^/!][^ \t>]*\)\g{hlend}'
|
||||
\ . '\%(>\|$\|[ \t][^>]*\%(>\|$\)\)'
|
||||
\ . ':<\@<=/\1\g{hlend}>'
|
||||
else
|
||||
let l:words .= ',<\@<=\([^/][^ \t>]*\)'
|
||||
\ . '\%(>\|$\|[ \t][^>]*\%(>\|$\)\)'
|
||||
elseif l:variant ==# 'xml'
|
||||
let l:words .= ',<\@<=!\[CDATA\[:]]>'
|
||||
let l:words .= ',<\@<=?\k\+:?>'
|
||||
let l:words .= ',<\@<=\([^ \t>/]\+\)\g{hlend}'
|
||||
\ . '\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\)'
|
||||
\ . ':<\@<=/\1>'
|
||||
let l:words .= ',<\@<=\%([^ \t>/]\+\)\g{hlend}'
|
||||
\ . '\%(\s\+[^>]*[^/>]\|$\)'
|
||||
\ . ':/>'
|
||||
else
|
||||
echoerr 'match-up: invalid variant' l:variant
|
||||
endif
|
||||
|
||||
if !get(l:prefs, 'tagnameonly', 1)
|
||||
let l:words = substitute(l:words, '\\g{hlend}', '', 'g')
|
||||
endif
|
||||
|
||||
return l:words
|
||||
|
||||
@@ -6,7 +6,7 @@ Web: https://github.com/andymass/vim-matchup
|
||||
Script ID: 5624
|
||||
License: MIT license {{{
|
||||
|
||||
Copyright (c) 2021 Andy Massimino
|
||||
Copyright (c) 2017--2022 Andy Massimino
|
||||
|
||||
Copyright (c) 2016 Karl Yngve Lervåg
|
||||
|
||||
|
||||
Reference in New Issue
Block a user