runtime(compiler): add compiler plugin for cabal
Commit:
https://github.com/vim/vim/commit/17d60cee555ec36e62492793159f9051218a6bd9
Author: Mateo Gjika <
10477759...@users.noreply.github.com>
Date: Tue Jan 13 21:37:46 2026 +0000
runtime(compiler): add compiler plugin for cabal
closes:
https://github.com/vim/vim/issues/19152
Signed-off-by: Mateo Gjika <
10477759...@users.noreply.github.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 733c9af1c..274482d08 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -48,6 +48,7 @@ runtime/colors/wildcharm.vim @habamax @romainl @neutaaaaan
runtime/colors/zaibatsu.vim @habamax @romainl @neutaaaaan
runtime/colors/zellner.vim @habamax @romainl @neutaaaaan
runtime/compiler/biome.vim @Konfekt
+runtime/compiler/cabal.vim @mateoxh
runtime/compiler/checkstyle.vim @dkearns
runtime/compiler/cm3.vim @dkearns
runtime/compiler/context.vim @lifepillar
diff --git a/runtime/compiler/cabal.vim b/runtime/compiler/cabal.vim
new file mode 100644
index 000000000..02d4d9b8e
--- /dev/null
+++ b/runtime/compiler/cabal.vim
@@ -0,0 +1,39 @@
+" Vim compiler file
+" Compiler: Haskell Cabal Build file
+" Maintainer: Mateo Gjika <@mateoxh>
+
+if exists('current_compiler')
+ finish
+endif
+
+let current_compiler = 'cabal'
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+CompilerSet makeprg=cabal\ build
+
+CompilerSet errorformat=
+ \%W%f:(%l\,%c)-(%e\,%k):\ %tarning:\ [%.%#],
+ \%W%f:(%l\,%c)-(%e\,%k):\ %tarning:%m,
+ \%W%f:(%l\,%c)-(%e\,%k):\ %tarning:,
+ \%W%f:%l:%c-%k:\ %tarning:\ [%.%#],
+ \%W%f:%l:%c-%k:\ %tarning:%m,
+ \%W%f:%l:%c-%k:\ %tarning:,
+ \%W%f:%l:%c:\ %tarning:\ [%.%#],
+ \%W%f:%l:%c:\ %tarning:%m,
+ \%W%f:%l:%c:\ %tarning:,
+ \%E%f:(%l\,%c)-(%e\,%k):\ %trror:\ [%.%#],
+ \%E%f:(%l\,%c)-(%e\,%k):\ %trror:%m,
+ \%E%f:(%l\,%c)-(%e\,%k):\ %trror:,
+ \%E%f:%l:%c-%k:\ %trror:\ [%.%#],
+ \%E%f:%l:%c-%k:\ %trror:%m,
+ \%E%f:%l:%c-%k:\ %trror:,
+ \%E%f:%l:%c:\ %trror:\ [%.%#],
+ \%E%f:%l:%c:\ %trror:%m,
+ \%E%f:%l:%c:\ %trror:,
+ \%Z\ %\+\|%.%#,
+ \%C%m
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/runtime/ftplugin/cabal.vim b/runtime/ftplugin/cabal.vim
index 5ccfa1df7..e7e4ab18a 100644
--- a/runtime/ftplugin/cabal.vim
+++ b/runtime/ftplugin/cabal.vim
@@ -2,12 +2,17 @@
" Language: Haskell Cabal Build file
" Maintainer: Riley Bruins <
rib...@gmail.com>
" Last Change: 2024 Jul 06
+" 2026 Jan 13 by Vim project: set compiler #19152
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
+compiler cabal
+
+let b:undo_ftplugin = 'compiler make'
+
setl comments=:-- commentstring=--\ %s
-let b:undo_ftplugin = 'setl com< cms<'
+let b:undo_ftplugin .= '| setl com< cms<'