From ce7137da41fee076ffd34362f1f5a093df44c06a Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 17 May 2026 16:49:43 +0800 Subject: [PATCH] vim-patch:f03155a: runtime(htmldjango): Add syntax highlighting of comparison operators The presence `djangoOperators` in the file `syntax/django.vim` and having the highlight function with a `match` statement leads to a highlight spill-over with other elements defined in `syntax/html.vim`. To avoid the highlight spill-over declare a region called `djangoTagBlockNaive` to limit `djangoOperator` to only be matched within. related: vim/vim#20225 closes: vim/vim#20232 https://github.com/vim/vim/commit/f03155aa2ae2139a82e2b4f9c6ec3501d5e48d53 Co-authored-by: tecis <67809811+tecis@users.noreply.github.com> --- runtime/syntax/htmldjango.vim | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runtime/syntax/htmldjango.vim b/runtime/syntax/htmldjango.vim index 07b1c375e8..bffb11aa64 100644 --- a/runtime/syntax/htmldjango.vim +++ b/runtime/syntax/htmldjango.vim @@ -2,6 +2,7 @@ " Language: Django HTML template " Maintainer: Dave Hodder " Last Change: 2014 Jul 13 +" 2026 May 17 by Vim Project Add highlighting for comparison operators #20232 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -23,4 +24,8 @@ syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgume syn region djangoComment start="{%\s*comment\(\s\+.\{-}\)\?%}" end="{%\s*endcomment\s*%}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks +" Use djangoTagBlockNaive to limit the djangoOperator matched characters to avoid spill-over with HTML, JS and CSS. +syn region djangoTagBlockNaive start="{%" end="%}" contains=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock +syn match djangoOperator "==\|!=\|<=\|>=\|<\|>" contained containedin=CONTAINS,@djangoTagBlockNaive + let b:current_syntax = "htmldjango"