From 4e8fba6c72bde9203406577af1e3542b8c2cab89 Mon Sep 17 00:00:00 2001 From: gomfol12 Date: Fri, 7 Aug 2026 11:12:58 +0200 Subject: [PATCH 1/3] fix: linter fortitude: renamed location key from "row" to "line" --- ale_linters/fortran/fortitude.vim | 4 ++-- test/handler/test_fortitude_handler.vader | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ale_linters/fortran/fortitude.vim b/ale_linters/fortran/fortitude.vim index 2f28f862d9..df91fc042f 100644 --- a/ale_linters/fortran/fortitude.vim +++ b/ale_linters/fortran/fortitude.vim @@ -22,8 +22,8 @@ function! ale_linters#fortran#fortitude#Handle(buffer, lines) abort let l:type = get(s:severity_map, l:prefix, 'I') call add(l:output, { - \ 'lnum': l:error['location']['row'], - \ 'end_lnum': l:error['end_location']['row'], + \ 'lnum': l:error['location']['line'], + \ 'end_lnum': l:error['end_location']['line'], \ 'col': l:error['location']['column'], \ 'end_col': l:error['end_location']['column'], \ 'text': l:error['message'], diff --git a/test/handler/test_fortitude_handler.vader b/test/handler/test_fortitude_handler.vader index d70d72f330..e5b946b435 100644 --- a/test/handler/test_fortitude_handler.vader +++ b/test/handler/test_fortitude_handler.vader @@ -30,29 +30,29 @@ Execute(Simple fortitude handler run): \ '[', \ json_encode({ \ 'code': 'C003', - \ 'end_location': {'column': 18, 'row': 3}, + \ 'end_location': {'column': 18, 'line': 3}, \ 'filename': '/home/user/documents/somefortranfile.f90', \ 'fix': { \ 'applicability': 'unsafe', \ 'edits': [ \ { \ 'content': ' (type, external)', - \ 'end_location': {'column': 18, 'row': 3}, - \ 'location': {'column': 18, 'row': 3}, + \ 'end_location': {'column': 18, 'line': 3}, + \ 'location': {'column': 18, 'line': 3}, \ }, \ ], \ 'message': 'Add `(external)` to ''implicit none''', \ }, - \ 'location': {'column': 5, 'row': 3}, + \ 'location': {'column': 5, 'line': 3}, \ 'message': '''implicit none'' missing ''external''' \ }), \ ',', \ json_encode({ \ 'code': 'E001', - \ 'end_location': {'column': 14, 'row': 7}, + \ 'end_location': {'column': 14, 'line': 7}, \ 'filename': '/home/user/documents/somefortranfile.f90', \ 'fix': v:null, - \ 'location': {'column': 13, 'row': 7}, + \ 'location': {'column': 13, 'line': 7}, \ 'message': 'Syntax error', \ }), \ ']', From 947c58cd6be97a7362821823efd38e3044d7175d Mon Sep 17 00:00:00 2001 From: gomfol12 Date: Sun, 23 Aug 2026 15:10:32 +0200 Subject: [PATCH 2/3] fortitude try line first then row --- ale_linters/fortran/fortitude.vim | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ale_linters/fortran/fortitude.vim b/ale_linters/fortran/fortitude.vim index df91fc042f..7df4695aa3 100644 --- a/ale_linters/fortran/fortitude.vim +++ b/ale_linters/fortran/fortitude.vim @@ -21,9 +21,13 @@ function! ale_linters#fortran#fortitude#Handle(buffer, lines) abort let l:prefix = matchstr(l:error['code'], '^\a\+') let l:type = get(s:severity_map, l:prefix, 'I') + " Fortitude renamed `row` to `line` (PlasmaFAIR/fortitude@0eda11975096517b16bf30bf683011f83a24e55e) + let l:line = get(l:error['location'], 'line', get(l:error['location'], 'row')) + let l:end_line = get(l:error['end_location'], 'line', get(l:error['end_location'], 'row')) + call add(l:output, { - \ 'lnum': l:error['location']['line'], - \ 'end_lnum': l:error['end_location']['line'], + \ 'lnum': l:line, + \ 'end_lnum': l:end_line, \ 'col': l:error['location']['column'], \ 'end_col': l:error['end_location']['column'], \ 'text': l:error['message'], From 815bc0f446de2504c7fd5d98d7286b918a87407c Mon Sep 17 00:00:00 2001 From: gomfol12 Date: Sun, 23 Aug 2026 15:11:39 +0200 Subject: [PATCH 3/3] fortitude add tests with row --- test/handler/test_fortitude_handler.vader | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/test/handler/test_fortitude_handler.vader b/test/handler/test_fortitude_handler.vader index e5b946b435..c9d101f118 100644 --- a/test/handler/test_fortitude_handler.vader +++ b/test/handler/test_fortitude_handler.vader @@ -57,3 +57,57 @@ Execute(Simple fortitude handler run): \ }), \ ']', \ ]) + +Execute(Old fortitude handler output with row): + AssertEqual + \ [ + \ { + \ 'lnum': 3, + \ 'end_lnum': 3, + \ 'col': 5, + \ 'end_col': 18, + \ 'text': '''implicit none'' missing ''external''', + \ 'type': 'W', + \ 'code': 'C003', + \ }, + \ { + \ 'col': 13, + \ 'end_col': 14, + \ 'end_lnum': 7, + \ 'lnum': 7, + \ 'text': 'Syntax error', + \ 'type': 'E', + \ 'code': 'E001', + \ }, + \ ], + \ ale_linters#fortran#fortitude#Handle(bufnr(''), [ + \ '[', + \ json_encode({ + \ 'code': 'C003', + \ 'end_location': {'column': 18, 'row': 3}, + \ 'filename': '/home/user/documents/somefortranfile.f90', + \ 'fix': { + \ 'applicability': 'unsafe', + \ 'edits': [ + \ { + \ 'content': ' (type, external)', + \ 'end_location': {'column': 18, 'row': 3}, + \ 'location': {'column': 18, 'row': 3}, + \ }, + \ ], + \ 'message': 'Add `(external)` to ''implicit none''', + \ }, + \ 'location': {'column': 5, 'row': 3}, + \ 'message': '''implicit none'' missing ''external''' + \ }), + \ ',', + \ json_encode({ + \ 'code': 'E001', + \ 'end_location': {'column': 14, 'row': 7}, + \ 'filename': '/home/user/documents/somefortranfile.f90', + \ 'fix': v:null, + \ 'location': {'column': 13, 'row': 7}, + \ 'message': 'Syntax error', + \ }), + \ ']', + \ ])