From 811a8a305412820679a738bbde17c33df5e27cfd Mon Sep 17 00:00:00 2001 From: Kabbaj Amine Date: Mon, 3 Oct 2016 21:53:07 +0300 Subject: [PATCH 1/2] Use gcc format for vint output --- ale_linters/vim/vint.vim | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/ale_linters/vim/vint.vim b/ale_linters/vim/vint.vim index 2609972..522ab4f 100644 --- a/ale_linters/vim/vint.vim +++ b/ale_linters/vim/vint.vim @@ -1,4 +1,5 @@ " Author: w0rp +" Modified by: KabbAmine " Description: This file adds support for checking Vim code with Vint. if exists('g:loaded_ale_linters_vim_vint') @@ -7,40 +8,11 @@ endif let g:loaded_ale_linters_vim_vint = 1 -function! ale_linters#vim#vint#Handle(buffer, lines) - " Matches patterns line the following: - " - " /home/w0rp/.vim/vimrc:198:30: Prefer single quoted strings (see Google VimScript Style Guide (Strings)) - let pattern = '^.*:\(\d\+\):\(\d\+\): \(.\+\)$' - let output = [] - - for line in a:lines - let l:match = matchlist(line, pattern) - - if len(l:match) == 0 - continue - endif - - let text = l:match[3] - - " vcol is Needed to indicate that the column is a character. - call add(output, { - \ 'bufnr': a:buffer, - \ 'lnum': l:match[1] + 0, - \ 'vcol': 0, - \ 'col': l:match[2] + 0, - \ 'text': text, - \ 'type': 'W', - \ 'nr': -1, - \}) - endfor - - return output -endfunction +let s:format = '-f "{file_path}:{line_number}:{column_number}: {severity}: {description} (see {reference})' call ALEAddLinter('vim', { \ 'name': 'vint', \ 'executable': 'vint', -\ 'command': g:ale#util#stdin_wrapper . ' .vim vint -w --no-color', -\ 'callback': 'ale_linters#haskell#ghc#Handle', +\ 'command': g:ale#util#stdin_wrapper . ' .vim vint -w --no-color ' . s:format, +\ 'callback': 'ale#handlers#HandleGCCFormat', \}) From 91dc117bec7313a67f72b3a1a59b2dd94ca98d67 Mon Sep 17 00:00:00 2001 From: w0rp Date: Wed, 5 Oct 2016 11:35:09 +0100 Subject: [PATCH 2/2] Update the author line and the filenames for the GCC format pattern. --- ale_linters/vim/vint.vim | 3 +-- plugin/ale/handlers.vim | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ale_linters/vim/vint.vim b/ale_linters/vim/vint.vim index 522ab4f..5d4b10e 100644 --- a/ale_linters/vim/vint.vim +++ b/ale_linters/vim/vint.vim @@ -1,5 +1,4 @@ -" Author: w0rp -" Modified by: KabbAmine +" Author: w0rp , KabbAmine " Description: This file adds support for checking Vim code with Vint. if exists('g:loaded_ale_linters_vim_vint') diff --git a/plugin/ale/handlers.vim b/plugin/ale/handlers.vim index fd0a1b8..a348ad3 100644 --- a/plugin/ale/handlers.vim +++ b/plugin/ale/handlers.vim @@ -1,3 +1,4 @@ +scriptencoding utf-8 " Author: w0rp " Description: This file defines some standard error format handlers. Any " linter which outputs warnings and errors in a format accepted by one of @@ -15,7 +16,7 @@ function! ale#handlers#HandleGCCFormat(buffer, lines) " :8:5: warning: conversion lacks type at end of format [-Wformat=] " :10:27: error: invalid operands to binary - (have ‘int’ and ‘char *’) " -:189:7: note: $/${} is unnecessary on arithmetic variables. [SC2004] - let pattern = '^[^:]\+:\(\d\+\):\(\d\+\): \([^:]\+\): \(.\+\)$' + let pattern = '^.\+:\(\d\+\):\(\d\+\): \([^:]\+\): \(.\+\)$' let output = [] for line in a:lines