From: Patrick Meiser-Knosowski Date: Tue, 28 Jul 2026 20:36:22 +0000 (+0000) Subject: runtime(karel): improve indent plugin X-Git-Tag: v9.2.0871~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f26970ce56f73a7770aa74a9c84f9ddd5ba84e6f;p=thirdparty%2Fvim.git runtime(karel): improve indent plugin closes: #20873 Signed-off-by: Patrick Meiser-Knosowski Signed-off-by: Christian Brabandt --- diff --git a/runtime/indent/karel.vim b/runtime/indent/karel.vim index 9913607570..e6a407abc9 100644 --- a/runtime/indent/karel.vim +++ b/runtime/indent/karel.vim @@ -2,7 +2,7 @@ " Language: Fanuc Karel " Maintainer: Patrick Meiser-Knosowski " Version: 1.0.0 -" Last Change: 28. May 2026 +" Last Change: 29. Jul 2026 " Only load this indent file when no other was loaded. if exists("b:did_indent") @@ -64,7 +64,7 @@ function GetKarelIndent() abort let addShiftwidthPattern ..= '|type>' let addShiftwidthPattern ..= '|var>' let addShiftwidthPattern ..= '|begin>' - let addShiftwidthPattern ..= '|routine>' + let addShiftwidthPattern ..= '|%(routine\s+\w+>)%(.*\s*$)@!' if get(g:, 'karelIndentBetweenPrg', 1) let addShiftwidthPattern ..= '|program>' endif diff --git a/runtime/indent/testdir/karel.in b/runtime/indent/testdir/karel.in index edee2bdbbd..d60a0121a6 100644 --- a/runtime/indent/testdir/karel.in +++ b/runtime/indent/testdir/karel.in @@ -23,18 +23,39 @@ VAR i1 :integer b1 :boolean fhCh :file -ROUTINE prg1() +ROUTINE WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN FROM otherkarel +ROUTINE WAITFOR2 : BOOLEAN FROM otherkarel +ROUTINE WAITFOR3 FROM otherkarel +ROUTINE prg1(b:BOOLEAN) VAR i :integer BEGIN -- END prg1 -ROUTINE fcnt1( s :string ) :string +ROUTINE prg2 +VAR +i :integer +BEGIN + -- +END prg2 +ROUTINE fcnt1 ( s :string ) :string VAR i :integer BEGIN RETURN ' ' END fcnt1 +ROUTINE fcnt2 :string +VAR +i :integer +BEGIN +RETURN ' ' +END fcnt2 +ROUTINE fcnt3:string +VAR +i :integer +BEGIN +RETURN ' ' +END fcnt3 BEGIN IF b1 THEN -- @@ -93,18 +114,39 @@ var i1 :integer b1 :boolean fhCh :file -routine prg1() +routine WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN from otherkarel +routine WAITFOR2 : BOOLEAN from otherkarel +routine WAITFOR3 from otherkarel +routine prg1(b:BOOLEAN) var i :integer begin -- end prg1 -routine fcnt1( s :string ) :string +routine prg2 +var +i :integer +begin + -- +end prg2 +routine fcnt1 ( s :string ) :string var i :integer begin return ' ' end fcnt1 +routine fcnt2 :string +var +i :integer +begin +return ' ' +end fcnt2 +routine fcnt3:string +var +i :integer +begin +return ' ' +end fcnt3 begin if b1 then -- @@ -163,18 +205,39 @@ Var i1 :integer b1 :boolean fhCh :file -Routine prg1() +Routine WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN From otherkarel +Routine WAITFOR2 : BOOLEAN From otherkarel +Routine WAITFOR3 From otherkarel +Routine prg1(b:BOOLEAN) Var i :integer Begin -- End prg1 -Routine fcnt1( s :string ) :string +Routine prg2 +Var +i :integer +Begin + -- +End prg2 +Routine fcnt1 ( s :string ) :string Var i :integer Begin Return ' ' End fcnt1 +Routine fcnt2 :string +Var +i :integer +Begin +Return ' ' +End fcnt2 +Routine fcnt3:string +Var +i :integer +Begin +Return ' ' +End fcnt3 Begin If b1 Then -- diff --git a/runtime/indent/testdir/karel.ok b/runtime/indent/testdir/karel.ok index a7b5e9fa6d..a09968c914 100644 --- a/runtime/indent/testdir/karel.ok +++ b/runtime/indent/testdir/karel.ok @@ -23,18 +23,39 @@ VAR i1 :integer b1 :boolean fhCh :file - ROUTINE prg1() + ROUTINE WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN FROM otherkarel + ROUTINE WAITFOR2 : BOOLEAN FROM otherkarel + ROUTINE WAITFOR3 FROM otherkarel + ROUTINE prg1(b:BOOLEAN) VAR i :integer BEGIN -- END prg1 - ROUTINE fcnt1( s :string ) :string + ROUTINE prg2 + VAR + i :integer + BEGIN + -- + END prg2 + ROUTINE fcnt1 ( s :string ) :string VAR i :integer BEGIN RETURN ' ' END fcnt1 + ROUTINE fcnt2 :string + VAR + i :integer + BEGIN + RETURN ' ' + END fcnt2 + ROUTINE fcnt3:string + VAR + i :integer + BEGIN + RETURN ' ' + END fcnt3 BEGIN IF b1 THEN -- @@ -93,18 +114,39 @@ var i1 :integer b1 :boolean fhCh :file - routine prg1() + routine WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN from otherkarel + routine WAITFOR2 : BOOLEAN from otherkarel + routine WAITFOR3 from otherkarel + routine prg1(b:BOOLEAN) var i :integer begin -- end prg1 - routine fcnt1( s :string ) :string + routine prg2 + var + i :integer + begin + -- + end prg2 + routine fcnt1 ( s :string ) :string var i :integer begin return ' ' end fcnt1 + routine fcnt2 :string + var + i :integer + begin + return ' ' + end fcnt2 + routine fcnt3:string + var + i :integer + begin + return ' ' + end fcnt3 begin if b1 then -- @@ -163,18 +205,39 @@ Var i1 :integer b1 :boolean fhCh :file - Routine prg1() + Routine WAITFOR(strucvar : MyStruct; STATUS : BOOLEAN; timeout : INTEGER) : BOOLEAN From otherkarel + Routine WAITFOR2 : BOOLEAN From otherkarel + Routine WAITFOR3 From otherkarel + Routine prg1(b:BOOLEAN) Var i :integer Begin -- End prg1 - Routine fcnt1( s :string ) :string + Routine prg2 + Var + i :integer + Begin + -- + End prg2 + Routine fcnt1 ( s :string ) :string Var i :integer Begin Return ' ' End fcnt1 + Routine fcnt2 :string + Var + i :integer + Begin + Return ' ' + End fcnt2 + Routine fcnt3:string + Var + i :integer + Begin + Return ' ' + End fcnt3 Begin If b1 Then --