From f0840f16410bbf51898e62ef264b82d3821cf448 Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Mon, 15 Aug 2016 15:53:08 -0700 Subject: [PATCH 1/6] Add support for new error format --- compiler/cargo.vim | 5 ++++- compiler/rustc.vim | 10 ++++++++++ syntax_checkers/rust/rustc.vim | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/compiler/cargo.vim b/compiler/cargo.vim index e1c37538..61d9c78c 100644 --- a/compiler/cargo.vim +++ b/compiler/cargo.vim @@ -27,7 +27,10 @@ function! s:is_absolute(path) return a:path[0] == '/' || a:path =~ '[A-Z]\+:' endfunction -CompilerSet errorformat+=%-G%\\s%#Compiling%.%# +" Ignore general cargo progress messages +CompilerSet errorformat+= + \%-G%\\s%#Downloading%.%#, + \%-G%\\s%#Compiling%.%# let s:local_manifest = findfile(s:cargo_manifest_name, '.;') if s:local_manifest != '' diff --git a/compiler/rustc.vim b/compiler/rustc.vim index 413e523b..d94a8876 100644 --- a/compiler/rustc.vim +++ b/compiler/rustc.vim @@ -21,6 +21,7 @@ else CompilerSet makeprg=rustc\ \% endif +" Old errorformat (before nightly 2016/08/10) CompilerSet errorformat= \%f:%l:%c:\ %t%*[^:]:\ %m, \%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m, @@ -29,5 +30,14 @@ CompilerSet errorformat= \%-G%*[\ ]^%*[~], \%-G%*[\ ]... +" New errorformat (after nightly 2016/08/10) +CompilerSet errorformat+= + \%Eerror:\ %m, + \%Eerror[E%n]:\ %m, + \%Wwarning:\ %m, + \%Inote:\ %m, + \%C\ %#-->\ %f:%l:%c, + \%C%.%# + let &cpo = s:cpo_save unlet s:cpo_save diff --git a/syntax_checkers/rust/rustc.vim b/syntax_checkers/rust/rustc.vim index 5d196086..d69798c0 100644 --- a/syntax_checkers/rust/rustc.vim +++ b/syntax_checkers/rust/rustc.vim @@ -16,11 +16,23 @@ set cpo&vim function! SyntaxCheckers_rust_rustc_GetLocList() dict let makeprg = self.makeprgBuild({ 'args': '-Zparse-only' }) + " Old errorformat (before nightly 2016/08/10) let errorformat = \ '%E%f:%l:%c: %\d%#:%\d%# %.%\{-}error:%.%\{-} %m,' . \ '%W%f:%l:%c: %\d%#:%\d%# %.%\{-}warning:%.%\{-} %m,' . \ '%C%f:%l %m,' . \ '%-Z%.%#' + + " New errorformat (after nightly 2016/08/10) + let errorformat .= + \ ',' . + \ '%Eerror: %m,' . + \ '%Eerror[E%n]: %m,' . + \ '%Wwarning: %m,' . + \ '%Inote: %m,' . + \ '%C %#--> %f:%l:%c,' . + \ '%C%.%#' + return SyntasticMake({ \ 'makeprg': makeprg, From 43b2ae22398e3be4d63dce41873b8d4b811e7e5e Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Tue, 16 Aug 2016 19:34:00 -0700 Subject: [PATCH 2/6] Remove eager match from old syntastic errorformat --- syntax_checkers/rust/rustc.vim | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/syntax_checkers/rust/rustc.vim b/syntax_checkers/rust/rustc.vim index d69798c0..666a1573 100644 --- a/syntax_checkers/rust/rustc.vim +++ b/syntax_checkers/rust/rustc.vim @@ -20,19 +20,16 @@ function! SyntaxCheckers_rust_rustc_GetLocList() dict let errorformat = \ '%E%f:%l:%c: %\d%#:%\d%# %.%\{-}error:%.%\{-} %m,' . \ '%W%f:%l:%c: %\d%#:%\d%# %.%\{-}warning:%.%\{-} %m,' . - \ '%C%f:%l %m,' . - \ '%-Z%.%#' + \ '%C%f:%l %m,' " New errorformat (after nightly 2016/08/10) let errorformat .= - \ ',' . \ '%Eerror: %m,' . \ '%Eerror[E%n]: %m,' . \ '%Wwarning: %m,' . \ '%Inote: %m,' . \ '%C %#--> %f:%l:%c,' . \ '%C%.%#' - return SyntasticMake({ \ 'makeprg': makeprg, From f6cbca3f6b6c146985a245137f1b3c244670996f Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Wed, 28 Sep 2016 00:36:39 -0700 Subject: [PATCH 3/6] Filter out cargo 'Finished' messages --- compiler/cargo.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/cargo.vim b/compiler/cargo.vim index 61d9c78c..3323a78c 100644 --- a/compiler/cargo.vim +++ b/compiler/cargo.vim @@ -30,7 +30,8 @@ endfunction " Ignore general cargo progress messages CompilerSet errorformat+= \%-G%\\s%#Downloading%.%#, - \%-G%\\s%#Compiling%.%# + \%-G%\\s%#Compiling%.%#, + \%-G%\\s%#Finished%.%# let s:local_manifest = findfile(s:cargo_manifest_name, '.;') if s:local_manifest != '' From e9d576770cfb5a5e74c30040fc739d483badfacf Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Thu, 29 Sep 2016 01:41:12 -0700 Subject: [PATCH 4/6] Show more `note` messages Filter out more rustc/cargo noise --- compiler/cargo.vim | 4 +++- compiler/rustc.vim | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/cargo.vim b/compiler/cargo.vim index 3323a78c..0f31b60d 100644 --- a/compiler/cargo.vim +++ b/compiler/cargo.vim @@ -31,7 +31,9 @@ endfunction CompilerSet errorformat+= \%-G%\\s%#Downloading%.%#, \%-G%\\s%#Compiling%.%#, - \%-G%\\s%#Finished%.%# + \%-G%\\s%#Finished%.%#, + \%-G%\\s%#error:\ Could\ not\ compile\ %.%#, + \%-G%\\s%#To\ learn\ more\\,%.%# let s:local_manifest = findfile(s:cargo_manifest_name, '.;') if s:local_manifest != '' diff --git a/compiler/rustc.vim b/compiler/rustc.vim index d94a8876..86495681 100644 --- a/compiler/rustc.vim +++ b/compiler/rustc.vim @@ -32,12 +32,15 @@ CompilerSet errorformat= " New errorformat (after nightly 2016/08/10) CompilerSet errorformat+= + \%-G, + \%-Gerror:\ aborting\ %.%#, + \%-Gerror:\ Could\ not\ compile\ %.%#, \%Eerror:\ %m, \%Eerror[E%n]:\ %m, \%Wwarning:\ %m, \%Inote:\ %m, \%C\ %#-->\ %f:%l:%c, - \%C%.%# + \%C%*[0-9\ ]\\|%.%# let &cpo = s:cpo_save unlet s:cpo_save From 1c65c7fcda63d6d778da8832fef83f1fd7d80c09 Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Thu, 29 Sep 2016 14:21:05 -0700 Subject: [PATCH 5/6] Update syntastic support; adjust escaping --- compiler/rustc.vim | 2 +- syntax_checkers/rust/rustc.vim | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/rustc.vim b/compiler/rustc.vim index 86495681..dbe67902 100644 --- a/compiler/rustc.vim +++ b/compiler/rustc.vim @@ -40,7 +40,7 @@ CompilerSet errorformat+= \%Wwarning:\ %m, \%Inote:\ %m, \%C\ %#-->\ %f:%l:%c, - \%C%*[0-9\ ]\\|%.%# + \%C%*[0-9\ ]\|%.%# let &cpo = s:cpo_save unlet s:cpo_save diff --git a/syntax_checkers/rust/rustc.vim b/syntax_checkers/rust/rustc.vim index 666a1573..e01d5df7 100644 --- a/syntax_checkers/rust/rustc.vim +++ b/syntax_checkers/rust/rustc.vim @@ -20,16 +20,20 @@ function! SyntaxCheckers_rust_rustc_GetLocList() dict let errorformat = \ '%E%f:%l:%c: %\d%#:%\d%# %.%\{-}error:%.%\{-} %m,' . \ '%W%f:%l:%c: %\d%#:%\d%# %.%\{-}warning:%.%\{-} %m,' . - \ '%C%f:%l %m,' + \ '%C%f:%l %m' " New errorformat (after nightly 2016/08/10) let errorformat .= + \ ',' . + \ '%-G,' . + \ '%-Gerror: aborting %.%#,' . + \ '%-Gerror: Could not compile %.%#,' . \ '%Eerror: %m,' . \ '%Eerror[E%n]: %m,' . \ '%Wwarning: %m,' . \ '%Inote: %m,' . \ '%C %#--> %f:%l:%c,' . - \ '%C%.%#' + \ '%C%*[0-9 ]|%.%#' return SyntasticMake({ \ 'makeprg': makeprg, From 4dd67044af972a81d3f6eaecb10ee23400aa30c9 Mon Sep 17 00:00:00 2001 From: Jameson Ernst Date: Fri, 30 Sep 2016 03:07:15 -0700 Subject: [PATCH 6/6] Unhide source context since it sometimes contains critical information --- compiler/rustc.vim | 3 +-- syntax_checkers/rust/rustc.vim | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/compiler/rustc.vim b/compiler/rustc.vim index dbe67902..ba291335 100644 --- a/compiler/rustc.vim +++ b/compiler/rustc.vim @@ -39,8 +39,7 @@ CompilerSet errorformat+= \%Eerror[E%n]:\ %m, \%Wwarning:\ %m, \%Inote:\ %m, - \%C\ %#-->\ %f:%l:%c, - \%C%*[0-9\ ]\|%.%# + \%C\ %#-->\ %f:%l:%c let &cpo = s:cpo_save unlet s:cpo_save diff --git a/syntax_checkers/rust/rustc.vim b/syntax_checkers/rust/rustc.vim index e01d5df7..e1e92038 100644 --- a/syntax_checkers/rust/rustc.vim +++ b/syntax_checkers/rust/rustc.vim @@ -32,8 +32,7 @@ function! SyntaxCheckers_rust_rustc_GetLocList() dict \ '%Eerror[E%n]: %m,' . \ '%Wwarning: %m,' . \ '%Inote: %m,' . - \ '%C %#--> %f:%l:%c,' . - \ '%C%*[0-9 ]|%.%#' + \ '%C %#--> %f:%l:%c' return SyntasticMake({ \ 'makeprg': makeprg,