]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(compiler): add compiler plugin for cabal
authorMateo Gjika <104777599+mateoxh@users.noreply.github.com>
Tue, 13 Jan 2026 21:37:46 +0000 (21:37 +0000)
committerChristian Brabandt <cb@256bit.org>
Tue, 13 Jan 2026 21:37:46 +0000 (21:37 +0000)
closes: #19152

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
.github/MAINTAINERS
runtime/compiler/cabal.vim [new file with mode: 0644]
runtime/ftplugin/cabal.vim

index 733c9af1c9545d79855cc7ee71a4784243c0455f..274482d081d0effb307caf676b3d0c5b9a71303a 100644 (file)
@@ -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 (file)
index 0000000..02d4d9b
--- /dev/null
@@ -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
index 5ccfa1df708dc0f55ac761d556e1b7c0281e4567..e7e4ab18a9ee272db7237414372d64725627f9a2 100644 (file)
@@ -2,12 +2,17 @@
 " Language:    Haskell Cabal Build file
 " Maintainer:  Riley Bruins <ribru17@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<'