From f40064b8d6c07fc7bbee9727a9453926041379fd Mon Sep 17 00:00:00 2001 From: Evan Relf Date: Mon, 18 Nov 2019 00:14:02 -0800 Subject: [PATCH 1/4] Add forall unicode character as Haskell keyword --- rc/filetype/haskell.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/filetype/haskell.kak b/rc/filetype/haskell.kak index 5e60d39b..d51a4c45 100644 --- a/rc/filetype/haskell.kak +++ b/rc/filetype/haskell.kak @@ -76,7 +76,7 @@ add-highlighter shared/haskell/code/ regex (?|:!?/.@$*&#%+\^\-\\])[~<=>|: add-highlighter shared/haskell/code/ regex (?|:!?/.@$*&#%+\^\-\\])(@|~|<-|->|=>|::|=|:|[|])(?![~<=>|:!?/.@$*&#%+\^\-\\]) 1:keyword # matches: forall [..variables..] . # not the variables -add-highlighter shared/haskell/code/ regex \b(forall)\b[^.\n]*?(\.) 1:keyword 2:keyword +add-highlighter shared/haskell/code/ regex \b(forall|∀)\b[^.\n]*?(\.) 1:keyword 2:keyword # matches 'x' '\\' '\'' '\n' '\0' # not incomplete literals: '\' From 237acbcfebcab8377d996c66924e55e92848afe9 Mon Sep 17 00:00:00 2001 From: Evan Relf Date: Mon, 18 Nov 2019 00:14:41 -0800 Subject: [PATCH 2/4] Improve Haskell quasiquote highlighting Now only the inside of the quasiquote gets the string coloring applied. --- rc/filetype/haskell.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/filetype/haskell.kak b/rc/filetype/haskell.kak index d51a4c45..2bab42d8 100644 --- a/rc/filetype/haskell.kak +++ b/rc/filetype/haskell.kak @@ -88,7 +88,7 @@ add-highlighter shared/haskell/code/ regex \B'([^\\]|[\\]['"\w\d\\])' 0:string add-highlighter shared/haskell/code/ regex ^\h*(?:(?:where|let|default)\h+)?([_a-z]['\w]*)\s+::\s 1:meta # matches quasiquotes -add-highlighter shared/haskell/quasiquote region \[\b[\w]['\w]*\| \|\] fill string +add-highlighter shared/haskell/code/ regex \[\b[\w]['\w]*\|(.*)\|\] 1:string # Commands # ‾‾‾‾‾‾‾‾ From 199b4e2f6683bd40d428a6e923c21d8f9b166ed3 Mon Sep 17 00:00:00 2001 From: Evan Relf Date: Mon, 18 Nov 2019 00:15:33 -0800 Subject: [PATCH 3/4] Highlight Haskell deriving strategies keywords --- rc/filetype/haskell.kak | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rc/filetype/haskell.kak b/rc/filetype/haskell.kak index 2bab42d8..c2d19340 100644 --- a/rc/filetype/haskell.kak +++ b/rc/filetype/haskell.kak @@ -90,6 +90,10 @@ add-highlighter shared/haskell/code/ regex ^\h*(?:(?:where|let|default)\h+)?([_a # matches quasiquotes add-highlighter shared/haskell/code/ regex \[\b[\w]['\w]*\|(.*)\|\] 1:string +# matches deriving strategies +add-highlighter shared/haskell/code/ regex \bderiving\s+\b(stock|newtype|anyclass|via)\b 1:keyword +add-highlighter shared/haskell/code/ regex \bderiving\s+[^\s]+?\s+\b(via)\b 1:keyword + # Commands # ‾‾‾‾‾‾‾‾