diff options
author | w0rp <w0rp@users.noreply.github.com> | 2017-02-14 19:06:25 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-14 19:06:25 +0000 |
commit | 78135103fbc6d1d4107f3eef448828c1498f9bcf (patch) | |
tree | ee8f341c963a3d14b7025275d5f1d4eaf0ed9d2b | |
parent | afd07302487b0a9138c0a6c6aa5de6b887a09576 (diff) | |
parent | 68b6be57f13762e7efb33629d04bfbf249f88372 (diff) | |
download | ale-78135103fbc6d1d4107f3eef448828c1498f9bcf.zip |
Merge pull request #342 from Exteris/bugfix/gfortran-6.3.1
Update line marker pattern for new gfortran
-rw-r--r-- | ale_linters/fortran/gcc.vim | 2 | ||||
-rw-r--r-- | test/test_fortran_handler.vader | 118 |
2 files changed, 119 insertions, 1 deletions
diff --git a/ale_linters/fortran/gcc.vim b/ale_linters/fortran/gcc.vim index 73ec7886..8d15cc00 100644 --- a/ale_linters/fortran/gcc.vim +++ b/ale_linters/fortran/gcc.vim @@ -12,7 +12,7 @@ function! ale_linters#fortran#gcc#Handle(buffer, lines) abort " " :21.34: " Error: Expected comma in I/O list at (1) - let l:line_marker_pattern = '^:\(\d\+\)\.\(\d\+\):$' + let l:line_marker_pattern = ':\(\d\+\)[.:]\=\(\d\+\)\=:\=$' let l:message_pattern = '^\(Error\|Warning\): \(.\+\)$' let l:looking_for_message = 0 let l:last_loclist_obj = {} diff --git a/test/test_fortran_handler.vader b/test/test_fortran_handler.vader new file mode 100644 index 00000000..7648ff66 --- /dev/null +++ b/test/test_fortran_handler.vader @@ -0,0 +1,118 @@ +Execute(The fortran handler should parse lines from GCC 4.1.2 correctly): + runtime ale_linters/fortran/gcc.vim + + AssertEqual + \ [ + \ { + \ 'bufnr': 357, + \ 'lnum': 4, + \ 'vcol': 0, + \ 'col': 0, + \ 'text': "Symbol ‘b’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ { + \ 'bufnr': 357, + \ 'lnum': 3, + \ 'vcol': 0, + \ 'col': 0, + \ 'text': "Symbol ‘a’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ ], + \ ale_linters#fortran#gcc#Handle(357, [ + \ " In file :4", + \ "", + \ "write(*,*) b", + \ " 1", + \ "Error: Symbol ‘b’ at (1) has no IMPLICIT type", + \ " In file :3", + \ "", + \ "write(*,*) a", + \ " 1", + \ "Error: Symbol ‘a’ at (1) has no IMPLICIT type", + \ ]) + +After: + call ale#linter#Reset() + + +Execute(The fortran handler should parse lines from GCC 4.9.3 correctly): + runtime ale_linters/fortran/gcc.vim + + AssertEqual + \ [ + \ { + \ 'bufnr': 357, + \ 'lnum': 3, + \ 'vcol': 0, + \ 'col': 12, + \ 'text': "Symbol ‘a’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ { + \ 'bufnr': 357, + \ 'lnum': 4, + \ 'vcol': 0, + \ 'col': 12, + \ 'text': "Symbol ‘b’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ ], + \ ale_linters#fortran#gcc#Handle(357, [ + \ ":3.12:", + \ "", + \ "write(*,*) a", + \ " 1", + \ "Error: Symbol ‘a’ at (1) has no IMPLICIT type", + \ ":4.12:", + \ "", + \ "write(*,*) b", + \ " 1", + \ "Error: Symbol ‘b’ at (1) has no IMPLICIT type", + \ ]) + +After: + call ale#linter#Reset() + + + +Execute(The fortran handler should parse lines from GCC 6.3.1 correctly): + runtime ale_linters/fortran/gcc.vim + + AssertEqual + \ [ + \ { + \ 'bufnr': 337, + \ 'lnum': 3, + \ 'vcol': 0, + \ 'col': 12, + \ 'text': "Symbol ‘a’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ { + \ 'bufnr': 337, + \ 'lnum': 4, + \ 'vcol': 0, + \ 'col': 12, + \ 'text': "Symbol ‘b’ at (1) has no IMPLICIT type", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ ], + \ ale_linters#fortran#gcc#Handle(337, [ + \ "<stdin>:3:12:", + \ "", + \ "Error: Symbol ‘a’ at (1) has no IMPLICIT type", + \ "<stdin>:4:12:", + \ "", + \ "Error: Symbol ‘b’ at (1) has no IMPLICIT type", + \ ]) + +After: + call ale#linter#Reset() |