From f03155aa2ae2139a82e2b4f9c6ec3501d5e48d53 Mon Sep 17 00:00:00 2001 From: tecis <67809811+tecis@users.noreply.github.com> Date: Sun, 17 May 2026 08:44:39 +0000 Subject: [PATCH] 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: #20225 closes: #20232 Signed-off-by: tecis <67809811+tecis@users.noreply.github.com> Signed-off-by: Christian Brabandt --- 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"