From ce1ee7c59896f5540cc11d598458d356d3b2e7b7 Mon Sep 17 00:00:00 2001 From: offa <8887756+offa@users.noreply.github.com> Date: Thu, 14 Aug 2025 19:18:00 +0000 Subject: [PATCH] Update oelint pattern (#5016) * Update oelint pattern * Handle optional branch output --- ale_linters/bitbake/oelint_adv.vim | 8 +++++-- .../test_bitbake_oelint_adv_handler.vader | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/ale_linters/bitbake/oelint_adv.vim b/ale_linters/bitbake/oelint_adv.vim index fb85a9b9..e66125ad 100644 --- a/ale_linters/bitbake/oelint_adv.vim +++ b/ale_linters/bitbake/oelint_adv.vim @@ -17,7 +17,7 @@ function! ale_linters#bitbake#oelint_adv#Command(buffer) abort endfunction function! ale_linters#bitbake#oelint_adv#Handle(buffer, lines) abort - let l:pattern = '\v^(.+):(.+):(.+):(.+):(.+)$' + let l:pattern = '\v^(.{-}):(.{-}):(.{-}):(.{-}):(.{-})$' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) @@ -25,7 +25,7 @@ function! ale_linters#bitbake#oelint_adv#Handle(buffer, lines) abort \ 'lnum': str2nr(l:match[2]), \ 'type': l:match[3] is# 'error' \ ? 'E' : (l:match[3] is# 'warning' ? 'W' : 'I'), - \ 'text': StripAnsiCodes(l:match[5]), + \ 'text': RemoveBranch(StripAnsiCodes(l:match[5])), \ 'code': l:match[4] \ }) endfor @@ -37,6 +37,10 @@ function! StripAnsiCodes(line) abort return substitute(a:line, '\e\[[0-9;]\+[mK]', '', 'g') endfunction +function! RemoveBranch(line) abort + return substitute(a:line, ' \[branch:.*', '', 'g') +endfunction + call ale#linter#Define('bitbake', { \ 'name': 'oelint_adv', \ 'output_stream': 'both', diff --git a/test/handler/test_bitbake_oelint_adv_handler.vader b/test/handler/test_bitbake_oelint_adv_handler.vader index a52e8810..d712aab6 100644 --- a/test/handler/test_bitbake_oelint_adv_handler.vader +++ b/test/handler/test_bitbake_oelint_adv_handler.vader @@ -7,6 +7,27 @@ After: call ale#linter#Reset() Execute(The oelint_adv handler should handle warnings): + AssertEqual + \ [ + \ { + \ 'lnum': 1234, + \ 'type': 'I', + \ 'code': 'oelint.var.suggestedvar.BUGTRACKER', + \ 'text': 'Variable ''BUGTRACKER'' should be set', + \ }, + \ { + \ 'lnum': 17, + \ 'type': 'E', + \ 'code': 'oelint.var.mandatoryvar.DESCRIPTION', + \ 'text': 'Variable ''DESCRIPTION'' should be set', + \ }, + \ ], + \ ale_linters#bitbake#oelint_adv#Handle(1, [ + \ '/meta-x/recipes-y/example/example_1.0.bb:1234:info:oelint.var.suggestedvar.BUGTRACKER:Variable ''BUGTRACKER'' should be set [branch:true]', + \ 'example2_1.1.bb:17:error:oelint.var.mandatoryvar.DESCRIPTION:Variable ''DESCRIPTION'' should be set [branch:true]', + \ ]) + +Execute(The oelint_adv handler should handle warnings without branch message): AssertEqual \ [ \ { @@ -26,3 +47,4 @@ Execute(The oelint_adv handler should handle warnings): \ '/meta-x/recipes-y/example/example_1.0.bb:1234:info:oelint.var.suggestedvar.BUGTRACKER:Variable ''BUGTRACKER'' should be set', \ 'example2_1.1.bb:17:error:oelint.var.mandatoryvar.DESCRIPTION:Variable ''DESCRIPTION'' should be set', \ ]) +