mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-20 09:04:43 +00:00
Custom keywords highlighting (SUB/FUNCTION/custom dictionary).
- SUBs and FUNCTIONs names will be highlighted throughout the code. - The same color assigned to metacommands is used for custom keywords. - A custom dictionary can also be added to internal/config.txt. - SUBs and FUNCTIONs in $INCLUDEd files also get highlighted, as long as there aren't any errors preventing compilation. Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
This commit is contained in:
parent
f7abc0e1fd
commit
9ab94215db
4 changed files with 136 additions and 4 deletions
|
@ -58,6 +58,25 @@ IF LoadedIDESettings = 0 THEN
|
|||
WriteConfigSetting "'[IDE COLOR SETTINGS]", "CommentColor", "_RGB32(85,255,255)"
|
||||
END IF
|
||||
|
||||
result = ReadConfigSetting("CustomKeywords$", value$)
|
||||
IF result THEN
|
||||
tempList$ = ""
|
||||
listOfCustomKeywords$ = "@" + UCASE$(value$) + "@"
|
||||
FOR i = 1 TO LEN (listOfCustomKeywords$)
|
||||
checkChar = ASC(listOfCustomKeywords$, i)
|
||||
IF checkChar = 64 THEN
|
||||
IF RIGHT$(tempList$, 1) <> "@" THEN tempList$ = tempList$ + "@"
|
||||
ELSE
|
||||
tempList$ = tempList$ + CHR$(checkChar)
|
||||
END IF
|
||||
NEXT
|
||||
listOfCustomKeywords$ = tempList$
|
||||
customKeywordsLength = LEN(listOfCustomKeywords$)
|
||||
ELSE
|
||||
WriteConfigSetting "'[CUSTOM DICTIONARIES]", "CustomKeywordsSyntax$", "@custom@keywords@separated@by@the@at@sign@"
|
||||
WriteConfigSetting "'[CUSTOM DICTIONARIES]", "CustomKeywords$", "@"
|
||||
END IF
|
||||
|
||||
result = ReadConfigSetting("MetaCommandColor", value$)
|
||||
IF result THEN
|
||||
IDEMetaCommandColor = VRGBS(value$, _RGB32(85, 255, 85))
|
||||
|
|
|
@ -116,7 +116,7 @@ DIM SHARED idecurrentlinelayout AS STRING
|
|||
DIM SHARED idecurrentlinelayouti AS LONG
|
||||
DIM SHARED idelayoutallow AS LONG
|
||||
|
||||
DIM SHARED listOfKeywords$
|
||||
DIM SHARED listOfKeywords$, listOfCustomKeywords$, customKeywordsLength AS LONG
|
||||
listOfKeywords$ = "@?@$CHECKING@$CONSOLE@ONLY@$DYNAMIC@$ELSE@$ELSEIF@$END@$ENDIF@$EXEICON@$IF@$INCLUDE@$LET@$RESIZE@$SCREENHIDE@$SCREENSHOW@$STATIC@$VERSIONINFO@$VIRTUALKEYBOARD@ABS@ABSOLUTE@ACCESS@ALIAS@AND@APPEND@AS@ASC@ATN@BASE@BEEP@BINARY@BLOAD@BSAVE@BYVAL@CALL@CALLS@CASE@IS@CDBL@CDECL@CHAIN@CHDIR@CHR$@CINT@CIRCLE@CLEAR@CLNG@CLOSE@CLS@COLOR@COM@COMMAND$@COMMON@CONST@COS@CSNG@CSRLIN@CUSTOMTYPE@CVD@CVDMBF@CVI@CVL@CVS@CVSMBF@DATA@DATE$@DECLARE@DEF@DEFDBL@DEFINT@DEFLNG@DEFSNG@DEFSTR@DIM@DO@DOUBLE@DRAW@DYNAMIC@ELSE@ELSEIF@END@ENDIF@ENVIRON@ENVIRON$@EOF@EQV@ERASE@ERDEV@ERDEV$@ERL@ERR@ERROR@EVERYCASE@EXIT@EXP@FIELD@FILEATTR@FILES@FIX@FN@FOR@FRE@FREE@FREEFILE@FUNCTION@GET@GOSUB@GOTO@HEX$@IF@IMP@INKEY$@INP@INPUT@INPUT$@INSTR@INT@INTEGER@INTERRUPT@INTERRUPTX@IOCTL@IOCTL$@KEY@KILL@LBOUND@LCASE$@LEFT$@LEN@LET@LIBRARY@LINE@LIST@LOC@LOCATE@LOCK@LOF@LOG@LONG@LOOP@LPOS@LPRINT@LSET@LTRIM$@MID$@MKD$@MKDIR@MKDMBF$@MKI$@MKL$@MKS$@MKSMBF$@MOD@NAME@NEXT@NOT@OCT$@OFF@ON@OPEN@OPTION@OR@OUT@OUTPUT@PAINT@PALETTE@PCOPY@PEEK@PEN@PLAY@PMAP@POINT@POKE@POS@PRESET@PRINT@PSET@PUT@RANDOM@RANDOMIZE@READ@REDIM@REM@RESET@RESTORE@RESUME@RETURN@RIGHT$@RMDIR@RND@RSET@RTRIM$@RUN@SADD@SCREEN@SEEK@SEG@SELECT@SETMEM@SGN@SHARED@SHELL@SIGNAL@SIN@SINGLE@SLEEP@SOUND@SPACE$@SPC@SQR@STATIC@STEP@STICK@STOP@STR$@STRIG@STRING@STRING$@SUB@SWAP@SYSTEM@TAB@TAN@THEN@TIME$@TIMER@TO@TROFF@TRON@TYPE@UBOUND@UCASE$@UEVENT@UNLOCK@UNTIL@USING@VAL@VARPTR@VARPTR$@VARSEG@VIEW@WAIT@WEND@WHILE@WIDTH@WINDOW@WRITE@XOR@_ACOS@_ACOSH@_ALPHA@_ALPHA32@_ARCCOT@_ARCCSC@_ARCSEC@_ASIN@_ASINH@_ATAN2@_ATANH@_AUTODISPLAY@_AXIS@_BACKGROUNDCOLOR@_BIT@_BLEND@_BLINK@_BLUE@_BLUE32@_BUTTON@_BUTTONCHANGE@_BYTE@_CEIL@_CLEARCOLOR@_CLIP@_CLIPBOARD$@_CLIPBOARDIMAGE@_COMMANDCOUNT@_CONNECTED@_CONNECTIONADDRESS$@_CONSOLE@_CONSOLETITLE@_CONTINUE@_CONTROLCHR@_COPYIMAGE@_COPYPALETTE@_COSH@_COT@_COTH@_CSC@_CSCH@_CV@_CWD$@_D2G@_D2R@_DEFAULTCOLOR@_DEFINE@_DELAY@_DEPTHBUFFER@_DESKTOPHEIGHT@_DESKTOPWIDTH@_DEST@_DEVICE$@_DEVICEINPUT@_DEVICES@_DIR$@_DIREXISTS@_DISPLAY@_DISPLAYORDER@_DONTBLEND@_DONTWAIT@"
|
||||
listOfKeywords$ = listOfKeywords$ + "_ERRORLINE@_EXIT@_EXPLICIT@_FILEEXISTS@_FLOAT@_FONT@_FONTHEIGHT@_FONTWIDTH@_FREEFONT@_FREEIMAGE@_FREETIMER@_FULLSCREEN@_G2D@_G2R@_GLRENDER@_GREEN@_GREEN32@_HEIGHT@_HIDE@_HYPOT@_ICON@_INCLERRORFILE$@_INCLERRORLINE@_INTEGER64@_KEYCLEAR@_KEYDOWN@_KEYHIT@_LASTAXIS@_LASTBUTTON@_LASTWHEEL@_LIMIT@_LOADFONT@_LOADIMAGE@_MAPTRIANGLE@_MAPUNICODE@_MEM@_MEMCOPY@_MEMELEMENT@_MEMEXISTS@_MEMFILL@_MEMFREE@_MEMGET@_MEMIMAGE@_MEMNEW@_MEMPUT@_MIDDLE@_MK$@_MOUSEBUTTON@_MOUSEHIDE@_MOUSEINPUT@_MOUSEMOVE@_MOUSEMOVEMENTX@_MOUSEMOVEMENTY@_MOUSEPIPEOPEN@_MOUSESHOW@_MOUSEWHEEL@_MOUSEX@_MOUSEY@_NEWIMAGE@_OFFSET@_OPENCLIENT@_OPENCONNECTION@_OPENHOST@_OS$@_PALETTECOLOR@_PI@_PIXELSIZE@_PRESERVE@_PRINTIMAGE@_PRINTMODE@_PRINTSTRING@_PRINTWIDTH@_PUTIMAGE@_R2D@_R2G@_RED@_RED32@_RESIZE@_RESIZEHEIGHT@_RESIZEWIDTH@_RGB@_RGB32@_RGBA@_RGBA32@_ROUND@_SCREENCLICK@_SCREENEXISTS@_SCREENHIDE@_SCREENICON@_SCREENIMAGE@_SCREENMOVE@_SCREENPRINT@_SCREENSHOW@_SCREENX@_SCREENY@_SEC@_SECH@_SETALPHA@_SHELLHIDE@_SINH@_SNDBAL@_SNDCLOSE@_SNDCOPY@_SNDGETPOS@_SNDLEN@_SNDLIMIT@_SNDLOOP@_SNDOPEN@_SNDOPENRAW@_SNDPAUSE@_SNDPAUSED@_SNDPLAY@_SNDPLAYCOPY@_SNDPLAYFILE@_SNDPLAYING@_SNDRATE@_SNDRAW@_SNDRAWDONE@_SNDRAWLEN@_SNDSETPOS@_SNDSTOP@_SNDVOL@_SOURCE@_STARTDIR$@_STRCMP@_STRICMP@_TANH@_TITLE@_TITLE$@_UNSIGNED@_WHEEL@_WIDTH@_WINDOWHANDLE@_WINDOWHASFOCUS@_GLACCUM@_GLALPHAFUNC@_GLARETEXTURESRESIDENT@_GLARRAYELEMENT@_GLBEGIN@_GLBINDTEXTURE@_GLBITMAP@_GLBLENDFUNC@_GLCALLLIST@_GLCALLLISTS@_GLCLEAR@_GLCLEARACCUM@_GLCLEARCOLOR@_GLCLEARDEPTH@_GLCLEARINDEX@_GLCLEARSTENCIL@_GLCLIPPLANE@_GLCOLOR3B@_GLCOLOR3BV@_GLCOLOR3D@_GLCOLOR3DV@_GLCOLOR3F@_GLCOLOR3FV@_GLCOLOR3I@_GLCOLOR3IV@_GLCOLOR3S@_GLCOLOR3SV@_GLCOLOR3UB@_GLCOLOR3UBV@_GLCOLOR3UI@_GLCOLOR3UIV@_GLCOLOR3US@_GLCOLOR3USV@_GLCOLOR4B@_GLCOLOR4BV@_GLCOLOR4D@_GLCOLOR4DV@_GLCOLOR4F@_GLCOLOR4FV@_GLCOLOR4I@_GLCOLOR4IV@_GLCOLOR4S@_GLCOLOR4SV@_GLCOLOR4UB@_GLCOLOR4UBV@_GLCOLOR4UI@_GLCOLOR4UIV@_GLCOLOR4US@_GLCOLOR4USV@_GLCOLORMASK@_GLCOLORMATERIAL@_GLCOLORPOINTER@_GLCOPYPIXELS@_GLCOPYTEXIMAGE1D@_GLCOPYTEXIMAGE2D@_GLCOPYTEXSUBIMAGE1D@"
|
||||
listOfKeywords$ = listOfKeywords$ + "_GLCOPYTEXSUBIMAGE2D@_GLCULLFACE@_GLDELETELISTS@_GLDELETETEXTURES@_GLDEPTHFUNC@_GLDEPTHMASK@_GLDEPTHRANGE@_GLDISABLE@_GLDISABLECLIENTSTATE@_GLDRAWARRAYS@_GLDRAWBUFFER@_GLDRAWELEMENTS@_GLDRAWPIXELS@_GLEDGEFLAG@_GLEDGEFLAGPOINTER@_GLEDGEFLAGV@_GLENABLE@_GLENABLECLIENTSTATE@_GLEND@_GLENDLIST@_GLEVALCOORD1D@_GLEVALCOORD1DV@_GLEVALCOORD1F@_GLEVALCOORD1FV@_GLEVALCOORD2D@_GLEVALCOORD2DV@_GLEVALCOORD2F@_GLEVALCOORD2FV@_GLEVALMESH1@_GLEVALMESH2@_GLEVALPOINT1@_GLEVALPOINT2@_GLFEEDBACKBUFFER@_GLFINISH@_GLFLUSH@_GLFOGF@_GLFOGFV@_GLFOGI@_GLFOGIV@_GLFRONTFACE@_GLFRUSTUM@_GLGENLISTS@_GLGENTEXTURES@_GLGETBOOLEANV@_GLGETCLIPPLANE@_GLGETDOUBLEV@_GLGETERROR@_GLGETFLOATV@_GLGETINTEGERV@_GLGETLIGHTFV@_GLGETLIGHTIV@_GLGETMAPDV@_GLGETMAPFV@_GLGETMAPIV@_GLGETMATERIALFV@_GLGETMATERIALIV@_GLGETPIXELMAPFV@_GLGETPIXELMAPUIV@_GLGETPIXELMAPUSV@_GLGETPOINTERV@_GLGETPOLYGONSTIPPLE@_GLGETSTRING@_GLGETTEXENVFV@_GLGETTEXENVIV@_GLGETTEXGENDV@_GLGETTEXGENFV@_GLGETTEXGENIV@_GLGETTEXIMAGE@_GLGETTEXLEVELPARAMETERFV@_GLGETTEXLEVELPARAMETERIV@_GLGETTEXPARAMETERFV@_GLGETTEXPARAMETERIV@_GLHINT@_GLINDEXMASK@_GLINDEXPOINTER@_GLINDEXD@_GLINDEXDV@_GLINDEXF@_GLINDEXFV@_GLINDEXI@_GLINDEXIV@_GLINDEXS@_GLINDEXSV@_GLINDEXUB@_GLINDEXUBV@_GLINITNAMES@_GLINTERLEAVEDARRAYS@_GLISENABLED@_GLISLIST@_GLISTEXTURE@_GLLIGHTMODELF@_GLLIGHTMODELFV@_GLLIGHTMODELI@_GLLIGHTMODELIV@_GLLIGHTF@_GLLIGHTFV@_GLLIGHTI@_GLLIGHTIV@_GLLINESTIPPLE@_GLLINEWIDTH@_GLLISTBASE@_GLLOADIDENTITY@_GLLOADMATRIXD@_GLLOADMATRIXF@_GLLOADNAME@_GLLOGICOP@_GLMAP1D@_GLMAP1F@_GLMAP2D@_GLMAP2F@_GLMAPGRID1D@_GLMAPGRID1F@_GLMAPGRID2D@_GLMAPGRID2F@_GLMATERIALF@_GLMATERIALFV@_GLMATERIALI@_GLMATERIALIV@_GLMATRIXMODE@_GLMULTMATRIXD@_GLMULTMATRIXF@_GLNEWLIST@_GLNORMAL3B@_GLNORMAL3BV@_GLNORMAL3D@_GLNORMAL3DV@_GLNORMAL3F@_GLNORMAL3FV@_GLNORMAL3I@_GLNORMAL3IV@_GLNORMAL3S@_GLNORMAL3SV@_GLNORMALPOINTER@_GLORTHO@_GLPASSTHROUGH@_GLPIXELMAPFV@_GLPIXELMAPUIV@_GLPIXELMAPUSV@_GLPIXELSTOREF@_GLPIXELSTOREI@_GLPIXELTRANSFERF@_GLPIXELTRANSFERI@_GLPIXELZOOM@_GLPOINTSIZE@_GLPOLYGONMODE@_GLPOLYGONOFFSET@_GLPOLYGONSTIPPLE@"
|
||||
|
|
|
@ -4997,6 +4997,7 @@ FUNCTION ide2 (ignore)
|
|||
idecy = 1
|
||||
ideselect = 0
|
||||
ideprogname$ = ""
|
||||
listOfCustomKeywords$ = LEFT$(listOfCustomKeywords$, customKeywordsLength)
|
||||
QuickNavTotal = 0
|
||||
ModifyCOMMAND$ = ""
|
||||
_TITLE "QB64"
|
||||
|
@ -7313,6 +7314,7 @@ FUNCTION ideopen$
|
|||
iden = n: IF n = 0 THEN idet$ = MKL$(0) + MKL$(0): iden = 1 ELSE idet$ = LEFT$(idet$, i2 - 1)
|
||||
ideerror = 1
|
||||
ideprogname = f$: _TITLE ideprogname + " - QB64"
|
||||
listOfCustomKeywords$ = LEFT$(listOfCustomKeywords$, customKeywordsLength)
|
||||
idepath$ = path$
|
||||
IdeAddRecent idepath$ + idepathsep$ + ideprogname$
|
||||
IdeImportBookmarks idepath$ + idepathsep$ + ideprogname$
|
||||
|
@ -7923,6 +7925,91 @@ SUB ideshowtext
|
|||
|
||||
char.sep$ = CHR$(34) + " =<>+-/\^:;,*()'"
|
||||
|
||||
STATIC prevListOfCustomWords$, manualList AS _BYTE
|
||||
|
||||
IF idefocusline <> 0 THEN
|
||||
'there's an error and compilation is halted,
|
||||
'so we'll build the list of subs/functions
|
||||
'for proper highlighting:
|
||||
IF idechangemade THEN manualList = 0
|
||||
IF manualList = 0 THEN
|
||||
manualList = -1
|
||||
listOfCustomKeywords$ = LEFT$(listOfCustomKeywords$, customKeywordsLength)
|
||||
FOR y = 1 TO iden
|
||||
a$ = UCASE$(LTRIM$(RTRIM$(idegetline(y))))
|
||||
sf = 0
|
||||
IF LEFT$(a$, 4) = "SUB " THEN sf = 1
|
||||
IF LEFT$(a$, 9) = "FUNCTION " THEN sf = 2
|
||||
IF sf THEN
|
||||
IF RIGHT$(a$, 7) = " STATIC" THEN
|
||||
a$ = RTRIM$(LEFT$(a$, LEN(a$) - 7))
|
||||
END IF
|
||||
|
||||
IF sf = 1 THEN
|
||||
a$ = MID$(a$, 5)
|
||||
ELSE
|
||||
a$ = MID$(a$, 10)
|
||||
END IF
|
||||
|
||||
a$ = LTRIM$(RTRIM$(a$))
|
||||
x = INSTR(a$, "(")
|
||||
IF x THEN
|
||||
a$ = RTRIM$(LEFT$(a$, x - 1))
|
||||
END IF
|
||||
|
||||
'attempt to cleanse n$, just in case there are any comments or other unwanted stuff
|
||||
FOR CleanseN = 1 TO LEN(a$)
|
||||
SELECT CASE MID$(a$, CleanseN, 1)
|
||||
CASE " ", "'", ":"
|
||||
a$ = LEFT$(a$, CleanseN - 1)
|
||||
EXIT FOR
|
||||
END SELECT
|
||||
NEXT
|
||||
listOfCustomKeywords$ = listOfCustomKeywords$ + "@" + removesymbol2$(a$) + "@"
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
ELSE
|
||||
manualList = 0
|
||||
END IF
|
||||
|
||||
IF prevListOfCustomWords$ <> listOfCustomKeywords$ THEN
|
||||
prevListOfCustomWords$ = listOfCustomKeywords$
|
||||
IF manualList = 0 THEN
|
||||
DO
|
||||
atSign = INSTR(atSign + 1, listOfCustomKeywords$, "@")
|
||||
nextAt = INSTR(atSign + 1, listOfCustomKeywords$, "@")
|
||||
IF nextAt = 0 THEN EXIT DO
|
||||
IF atSign > customKeywordsLength THEN
|
||||
checkKeyword$ = removesymbol2$(MID$(listOfCustomKeywords$, atSign + 1, (nextAt - atSign) - 1))
|
||||
IF LEN(checkKeyword$) THEN
|
||||
hashchkflags = HASHFLAG_RESERVED + HASHFLAG_CONSTANT
|
||||
hashchkflags = hashchkflags + HASHFLAG_FUNCTION
|
||||
hashres1 = HashFind(checkKeyword$, hashchkflags, hashresflags, hashresref)
|
||||
IF hashres1 <> 0 THEN hashres1 = 1
|
||||
hashchkflags = HASHFLAG_RESERVED + HASHFLAG_CONSTANT
|
||||
hashchkflags = hashchkflags + HASHFLAG_SUB
|
||||
hashres2 = HashFind(checkKeyword$, hashchkflags, hashresflags, hashresref)
|
||||
IF hashres2 <> 0 THEN hashres2 = 1
|
||||
IF hashres1 + hashres2 = 0 THEN
|
||||
'remove this custom keyword if not registered
|
||||
MID$(listOfCustomKeywords$, atSign + 1, (nextAt - atSign) - 1) = STRING$(LEN(checkKeyword$), "@")
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
LOOP
|
||||
END IF
|
||||
FOR i = 1 TO LEN (listOfCustomKeywords$)
|
||||
checkChar = ASC(listOfCustomKeywords$, i)
|
||||
IF checkChar = 64 THEN
|
||||
IF RIGHT$(tempList$, 1) <> "@" THEN tempList$ = tempList$ + "@"
|
||||
ELSE
|
||||
tempList$ = tempList$ + CHR$(checkChar)
|
||||
END IF
|
||||
NEXT
|
||||
listOfCustomKeywords$ = tempList$
|
||||
END IF
|
||||
|
||||
cc = -1
|
||||
|
||||
IF idecx < idesx THEN idesx = idecx
|
||||
|
@ -8128,6 +8215,7 @@ SUB ideshowtext
|
|||
metacommand = 0
|
||||
comment = 0
|
||||
isKeyword = 0: oldChar$ = ""
|
||||
isCustomKeyword = 0
|
||||
multiHighlightLength = 0
|
||||
prevBG% = _BACKGROUNDCOLOR
|
||||
|
||||
|
@ -8188,6 +8276,9 @@ SUB ideshowtext
|
|||
metacommand = -1
|
||||
END IF
|
||||
isKeyword = LEN(checkKeyword$)
|
||||
ELSEIF INSTR(listOfCustomKeywords$, "@" + removesymbol2$(checkKeyword$) + "@") > 0 THEN
|
||||
isCustomKeyword = -1
|
||||
isKeyword = LEN(checkKeyword$)
|
||||
ELSE
|
||||
'maybe a number literal?
|
||||
readFullNumber:
|
||||
|
@ -8265,6 +8356,8 @@ SUB ideshowtext
|
|||
IF isKeyword > 0 AND keywordHighlight THEN
|
||||
IF is_Number THEN
|
||||
COLOR 8
|
||||
ELSEIF isCustomKeyword THEN
|
||||
COLOR 10
|
||||
ELSE
|
||||
COLOR 12
|
||||
END IF
|
||||
|
@ -8306,7 +8399,7 @@ SUB ideshowtext
|
|||
'Restore BG color in case a matching bracket was printed with different BG
|
||||
IF l = idecy THEN COLOR , 6
|
||||
IF isKeyword > 0 THEN isKeyword = isKeyword - 1
|
||||
if isKeyword = 0 THEN checkKeyword$ = "": metacommand = 0: is_Number = 0
|
||||
if isKeyword = 0 THEN checkKeyword$ = "": metacommand = 0: is_Number = 0: isCustomKeyword = 0
|
||||
NEXT m
|
||||
|
||||
'apply selection color change if necessary
|
||||
|
@ -11441,7 +11534,7 @@ FUNCTION idechoosecolorsbox
|
|||
l$ = l$ + sep + " Keywords"
|
||||
l$ = l$ + sep + " Numbers"
|
||||
l$ = l$ + sep + " Strings"
|
||||
l$ = l$ + sep + " Metacommands"
|
||||
l$ = l$ + sep + " Metacommand/custom keywords"
|
||||
l$ = l$ + sep + " Comments"
|
||||
l$ = l$ + sep + " Background"
|
||||
l$ = l$ + sep + " Current line background"
|
||||
|
@ -11961,7 +12054,7 @@ FUNCTION idechoosecolorsbox
|
|||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Keywords"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Numbers"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Strings"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Metacommands"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Metacommand/custom keywords
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Comments"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Background"
|
||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Current line background"
|
||||
|
@ -14442,5 +14535,20 @@ FUNCTION BinaryFormatCheck% (pathToCheck$, pathSepToCheck$, fileToCheck$)
|
|||
END SELECT
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION removesymbol2$ (varname$)
|
||||
i = INSTR(varname$, "~"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "`"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "%"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "&"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "!"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "#"): IF i THEN GOTO foundsymbol
|
||||
i = INSTR(varname$, "$"): IF i THEN GOTO foundsymbol
|
||||
removesymbol2$ = varname$
|
||||
EXIT FUNCTION
|
||||
foundsymbol:
|
||||
IF i = 1 THEN removesymbol2$ = varname$: EXIT FUNCTION
|
||||
removesymbol2$ = LEFT$(varname$, i - 1)
|
||||
END FUNCTION
|
||||
|
||||
'$INCLUDE:'wiki\wiki_methods.bas'
|
||||
|
||||
|
|
|
@ -20215,6 +20215,11 @@ IF id.subfunc THEN
|
|||
END IF 'hashres
|
||||
IF hashres <> 1 THEN hashres = HashFindCont(hashresflags, hashresref) ELSE hashres = 0
|
||||
LOOP
|
||||
IF idemode THEN
|
||||
IF INSTR(listOfCustomKeywords$, "@" + UCASE$(n$) + "@") = 0 THEN
|
||||
listOfCustomKeywords$ = listOfCustomKeywords$ + "@" + UCASE$(n$) + "@"
|
||||
END IF
|
||||
END IF
|
||||
END IF 'reginternalsubfunc = 0
|
||||
END IF
|
||||
|
||||
|
|
Loading…
Reference in a new issue