From 156cb0752c624161b74f3fc8d01e8f4607e1d76b Mon Sep 17 00:00:00 2001 From: Mike Vink <> Date: Wed, 19 Apr 2023 12:42:59 +0200 Subject: racket compiler starts working! --- compiler/racket.vim | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 compiler/racket.vim (limited to 'compiler/racket.vim') diff --git a/compiler/racket.vim b/compiler/racket.vim new file mode 100644 index 0000000..4a3227b --- /dev/null +++ b/compiler/racket.vim @@ -0,0 +1,25 @@ +if exists('current_compiler') + finish +endif +let current_compiler = 'go-test' + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +" The errorformat can also use vim's regular expression syntax (albeit in a rather awkward way) which gives us a solution to the problem. We can use a non-capturing group and a zero-width assertion to require the presence of these signaling phrases without consuming them. This then allows the %m to pick them up. As plain regular expression syntax this zero-width assertion looks like: +" +" \%(undefined reference\|multiple definition\)\@= +" +" But in order to use it in efm we need to replace \ by %\ and % by %% + + +CompilerSet makeprg=racket\ -l\ errortrace +CompilerSet errorformat=\%Z%*\\S%.%#, + \%C\ \ \ %f:%l:%c, + \%C\ \ \ %f:%l:%c:\ %m, + \%C\ \ %.%#%\\%%(at\:%\\\|in\:%\\\|expected\:%\\\|given\:%\\)%\\@=%m, + \%C\ %.%#, + \%E%\\%%(%\\w%\\)%\\@=%f:%*\\d:%*\\d:\ %m, + \%E%*\\f:%*\\d:%*\\d:\ %m, +" vim: sw=2 sts=2 et -- cgit v1.2.3