Merge pull request #342 from Exteris/bugfix/gfortran-6.3.1
Update line marker pattern for new gfortran
This commit is contained in:
parent
78b05d30a5
commit
97b410bbba
2 changed files with 119 additions and 1 deletions
|
@ -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 = {}
|
||||
|
|
118
test/test_fortran_handler.vader
Normal file
118
test/test_fortran_handler.vader
Normal file
|
@ -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()
|
Reference in a new issue