From cafd5cfca7754098ed4775d833cc10f07f21d859 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 21 Nov 2025 08:49:57 +0800 Subject: [PATCH] vim-patch:ddb88ab: runtime(haskell): allow spaces in backticked operators in syntax script This formatting (although rare) is actually accepted by GHC, but vim does not highlight it. This patch adds the simplest possible regex to support the behavior. Inconveniently, this might trigger weird formatting on lines that contain errors, e.g. if the first backtick is removed from: a `b` c `d` e then `c` is going to be marked as an operator, which seems weird but is valid. closes: vim/vim#18776 https://github.com/vim/vim/commit/ddb88ab796bfb31267767c206684b3dd7ef0d040 Co-authored-by: Mirek Kratochvil --- runtime/syntax/haskell.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime/syntax/haskell.vim b/runtime/syntax/haskell.vim index 509aa25122..e71e1c8072 100644 --- a/runtime/syntax/haskell.vim +++ b/runtime/syntax/haskell.vim @@ -2,6 +2,7 @@ " Language: Haskell " Maintainer: Haskell Cafe mailinglist " Last Change: 2024 Mar 28 by Enrico Maria De Angelis +" 2025 Nov 20 by Vim Project: Allow spaces in backticks #18776 " Original Author: John Williams " " Thanks to Ryan Crumley for suggestions and John Meacham for @@ -46,8 +47,8 @@ syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)*\<[a-z][a-zA-Z0-9_']*\>" contains=@ " others are variables (e.g. functions). syn match hsVarSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[-!#$%&\*\+/<=>\?@\\^|~.][-!#$%&\*\+/<=>\?@\\^|~:.]*" syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./<=>\?@\\^|~:]*" -syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`" -syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`" +syn match hsVarSym "` *\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']* *`" +syn match hsConSym "` *\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']* *`" " (Non-qualified) identifiers which start with # are labels syn match hsLabel "#[a-z][a-zA-Z0-9_']*\>"