! vim: set ft=rapid :

! START_INDENT

%%%
  VERSION:1
  LANGUAGE:ENGLISH
%%%
  
module LowerCaseModule

task pers num n1 := 0;
local pers num n2 := 1;
var bool b1 := false;
var intnum i1;

! put some stuff in those strings that may confuse indentation
const string st1 := "endmodule ("; 
pers string st_Appl_Info{3,3}:=[
[
"["
,
"default"
,
"case"
],
[
"else"
,
"then"
,
"endif"
],
[
"do"
,
"}"
,
")"
],
];

pers tooldata tTool1:=[TRUE, 
[
[97.4, 0, 223.1], 
[0.924, 0, 0.383 ,0]
], 
[5, 
[23, 0, 75], 
[1, 0, 0, 0], 0, 0, 0
]
];
const robtarget p1:=[ 
[600, 500, 225.3], 
[1, 0, 0, 0], 
[1, 1, 0, 0], 
[ 11, 12.3, 9E9, 9E9, 9E9, 9E9]
];

record myRec
num nRecNum1
bool bRecBool1
endrecord

proc proc1(num n1,
num n2)
var string st1;
n1 := n1+1;
MoveJSync p1, vmax, z30, tool1, "proc2";
backward
MoveJSync p1, v100, fine, tool1, "proc2";
undo
n1 := n1-1;
error
trynext;
endproc

func num nFunc1(
switch s1
|switch s2
,num n1
,bool b1)
var num nVar;
if not Present(s1) return;
if Present(s1) then
Incr n1;'
elseif Present(s2) then
b1:=false;
else
while n1>0 do
Decr n1;
test n1

case 1:
test1;
case 2:
test2;
default:
WaitUntil false;
endtest
endwhile
endif
for i from 1 to 10 step 2 do
for j from 1 to 10 do
st_Appl_Info{i,j} := "";
endfor
endfor
!     return 1;
return 0;
error
return -1;
endfunc

trap Trap1
Reset do1;
endtrap

endmodule

MODULE UpperCaseModule(SYSMODULE,NOSTEPIN)
TASK pers num n1 := 0;
LOCAL pers num n2 := 1;
VAR bool b1 := false;
VAR intnum i1;

LOCAL FUNC num nFunc1(
switch s1
|switch s2
,num n1
,bool b1)
VAR num nVar;
IF NOT PRESENT(s1) RETURN;
IF PRESENT(s1) THEN
INCR n1;'
ELSEIF PRESENT(s2) THEN
b1:=FALSE;
ELSE
WHILE n1>0 DO
DECR n1;
TEST n1

CASE 1:
test1;
CASE 2:
test2;
DEFAULT:
WAITUNTIL FALSE;
ENDTEST
ENDWHILE
ENDIF
FOR i FROM 1 TO 10 STEP 2 DO
FOR j FROM 1 TO 10 DO
st_Appl_Info{i,j} := "";
ENDFOR
ENDFOR
!     RETURN 1;
RETURN 0;
ERROR
RETURN -1;
ENDFUNC

TRAP Trap1
Reset do1;
ENDTRAP

ENDMODULE

Module MixedCaseModule(SysModule)
Task pers num n1 := 0;
Local pers num n2 := 1;
Var bool b1 := false;
Var intnum i1;

Task Func num nFunc1(
switch s1
|switch s2
,num n1
,bool b1)
Var num nVar;
If Not Present(s1) Return;
If Present(s1) Then
Incr n1;'
ElseIf Present(s2) Then
b1:=false;
Else
While n1>0 Do
Decr n1;
Test n1

Case 1:
test1;
Case 2:
test2;
Default:
WaitUntil false;
EndTest
EndWhile
EndIf
For i From 1 To 10 Step 2 Do
For j From 1 To 10 Do
st_Appl_Info{i,j} := "";
EndFor
EndFor
!     Return 1;
Return 0;
Error
Return -1;
EndFunc

Trap Trap1
Reset do1;
EndTrap

EndModule

! END_INDENT

! START_INDENT
! INDENT_EXE let g:rapidSpaceIndent = 0
! INDENT_EXE set shiftwidth=4

proc bla()
var num i;
Incr i;
endproc

! END_INDENT

! START_INDENT
! INDENT_EXE let g:rapidCommentIndent = 1
!
proc bla()
! indent this first column comment because of g:rapidCommentIndent=1
endproc
! END_INDENT

! START_INDENT
! INDENT_EXE let g:rapidNewStyleIndent = 1
pers string st_Appl_Info{3,3}:=
[
[
"["
,
"default"
,
"case"
]
,
[
"else"
,
"then"
,
"endif"
]
,
[
"do"
,
"}"
,
")"
]
,
];
! END_INDENT
