Friday, May 24, 2013

Re: How to deal with multiple compiler error formats, possibly from a single make invocation?

On Thursday, May 23, 2013 11:51:43 PM UTC-5, Sam Roberts wrote:
> On Thu, May 23, 2013 at 6:32 PM, Ben Fritz <fritzophrenic@gmail.com> wrote:
>
> > On Thursday, May 23, 2013 4:46:05 PM UTC-5, Sam Roberts wrote:
>
> >> I'd like something like:
>
> >>
>
> >> after/javascript.vim:
>
> >> compiler jshint
>
> >> compiler +node
>
> >> compiler +mocha
>
> >
>
> > Maybe instead you could use :caddfile, :caddbuffer, or :caddexpr to build a list using one format at a time?
>
>
>
> Can you give me more of a hint?
>
>
>
> Somehow, I'd have to create a macro that ran make, then called
>
> compiler X, caddfile, compiler Y, caddfile, etc....?
>

I don't have a specific example, but yes, that's what I had in mind. Or better, a function called by a command.

When I made the suggestion, I thought you could get each compiler's output separately. Then it would be easy. But since all your compilers output to a single file, you'll probably actually need something like:

function ParseEverything()
lines=readfile(compiler_output_file)
call writefile(filter(copy(lines), 'v:val =~ ''pattern_to_match_compiler_x'''), compiler_x_output_file)
compiler X
caddfile compiler_x_output_file
" etc.
endfunction

So, maybe combining the errorformats is easier.

Alternatively, you could write a function or program to transform all the outputs into a common errorformat. In the Vim repository, runtime/tools has a ccfilter tool to do this for some compilers, you might look into that one.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: