
HelpPath	BASIC,Assembly,SWI,

ID_FirstChar	A-Za-z_
ID_Middle	A-Za-z_0-9
ID_LastChar	$%

#----------------------------------------------------------------------

# Immediate commands :
# APPEND AUTO DELETE EDIT HELP LIST LISTO LOAD LVAR NEW OLD
# RENUMBER RUN SAVE TWIN TWINO

SyntaxOptions
	SingleQuote	No
	DoubleQuote	Yes
	QuoteQuote	Yes
	SplitString	No
	HexPrefix	&
	BinPrefix	%
End

#SyntaxComment 1
#	Type		OneLine
#	StartWith	;
#	EndWith		:
#End

SyntaxComment 2
	Type		OneLine
	StartWith	REM
End
 
SyntaxWords Group1 EndAlways case
	CALL CASE CHAIN CLEAR DATA DEF DIM ELSE END ENDCASE ENDIF
	ENDPROC ENDWHILE ERROR FOR GOSUB GOTO IF INSTALL LET LIBRARY
	LOCAL NEXT ON OTHERWISE OVERLAY QUIT REPEAT RESTORE RETURN
	RUN STOP SYS THEN TRACE UNTIL USR WHEN WHILE
End

SyntaxWords Group2 EndAlways case
	ABS ACS ADVAL AND ASC ASN ATN BEAT BEATS BGET BPUT CHR$ CIRCLE
	CLG CLOSE CLS COLOR COLOUR COS COUNT DEG DIV DRAW ELLIPSE
	ENVELOPE EOF EOR ERL ERR EVAL EXP EXT FALSE FILL GCOL GET HIMEM
	INKEY INPUT INSTR INT LEFT$ LEN LINE LN LOG LOMEM MID$ MOD MODE
	MOUSE MOVE NOT OF OFF OPENIN OPENOUT OPENUP OR ORIGIN OSCLI PAGE
	PI PLOT POINT POS PRINT PTR RAD READ RECTANGLE REPORT REPORT$
	RIGHT$ RND SGN SIN SOUND SPC SQR STEP STEREO STR$ STRING$ SUM
	SUMLEN SWAP TAB TAN TEMPO TIME TINT TO TOP TRUE VAL VDU VOICE
	VOICES WAIT WIDTH
End

SyntaxWords Group3 EndOfID case
	PROC FN
End

#----------------------------------------------------------------------

Search
	_Indent2	{" "} [ (("REM") | (";"~":") {" "} ]
	Bchar		Alpha|"_"|"`"
	_MarkWord	(Bchar {Bchar|Digit} ["%"|"$"]) | ("&" {Hex}+) | {Digit}+
	_MoveWord	(Bchar {Bchar|Digit} ["%"|"$"]) | ("&" {Hex}+) | {Digit}+
	Func		"DEF" {" "} "PROC"|"FN" @0 Bchar {Bchar|Digit}
	Func2		"DEF" {" "} CW ~Bchar
	Label		[";:"] "." CW ~(Bchar|D)
	fold_start	"DEF"
	fold_end	"ENDPROC" | ("="*>) {NL}+
End

#FoldParm1 ("REM {{{", "REM }}}",startofline,case)
FoldParm2 (fold_start, fold_end,startofline,case)

KeyList
#	^R		Indent ("REM ")
	^D,^F		InsertStr ("FN_ForceDebug")
	^D,^R		InsertStr ("FN_RestoreDebug")
	^D,^D		InsertStr ("FN_Debug(pass%,\"\")")
	^Delete		InsertStr(":") DeleteRight
	^Return		NewLine(indent,_Indent2)


End

Functions

	Key	F2
	Menu	List DEF PROC/FN  F2
	Icon	LoF
	Select	ListOfFound (Func,All,Align,Line,Case)
	Help	HBa_lof

	Adjust	ListOfFound (";:.",All,After,Line,Case)

	Key 	PgUp
	Icon	up
	Select	GotoPrev (Func,Text,Line,Case)
	Help	HBa_up

	Key 	^PgUp
	Adjust	GotoPrev (";:.",Text,Line,Case)

	Key 	PgDown
	Icon	down
	Select	GotoNext (Func,Text,Line,Case)
	Help	HBa_dn

	Key 	^PgDown
	Adjust	GotoNext (";:.",Text,Line,Case)

	Key	F10
	Menu	Run                F10
	Icon	run
	Select	SetTmp() RunBasic(Nosave)
	Help	HBa_run

	Key	F10
	Select	SetTmp() RunBasic(Save)

	Key	^F10
	Adjust	SetTmp() RunBasic(Nosave,Quit,Taskwindow)

	Key	^F10
	Adjust	SetTmp() RunBasic(Save,Quit,Taskwindow)

	Key	^G
	Menu	Goto label/DEF PROC/FN
	Icon	goto
	Select	Push GotoFound (Func2,All,Whole,Line,Case)
	Help	HBa_go

	Key	^G
	Adjust	Push GotoFound (Label,All,Whole,Line,Case)

	Key	^G 2
	Select	Pop

	Key	^G 2
	Adjust	Pop

End

Shortcuts
	P.	PRINT \@
	DF	DEF FN\@\n\n=0
	DP	DEF PROC\@\n\nENDPROC
	CA.	CASE \@ OF\n\i  WHEN \@\n\iENDCASE
	WH.	WHILE \@\n\i  \@\n\iENDWHILE
	RE.	REPEAT\n\i  \@\n\iUNTIL ()
	ERR.	ON ERROR: ON ERROR OFF: PRINT REPORT$;" at line ";ERL:END\n\i\@
	FO.	FOR \@\n\i  \@\n\iNEXT
	STM{	STMFD    R13!,{0-12,14}\n\n\i\@\n\n\iLDMFD    R13!,{0-12,PC}^
	LDM{	LDMFD    R13!,{0-12,PC}^
	``-	REM ----------------------------------------------------------------------------\n
	``=	REM ============================================================================\n
End
