1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-20 06:44:44 +00:00
QB64-PE/source/ide/config/cfg_methods.bas

565 lines
24 KiB
QBasic
Raw Normal View History

'===== Routine to copy settings from another QB64-PE installation =============
SUB CopyFromOther
cfoAgain:
oqbi$ = _SELECTFOLDERDIALOG$("Select another QB64-PE installation...")
IF oqbi$ <> "" THEN
chkname$ = oqbi$ + pathsep$ + "qb64pe"
IF _FILEEXISTS(chkname$) OR _FILEEXISTS(chkname$ + ".exe") THEN
IF _DIREXISTS(oqbi$ + pathsep$ + ConfigFolder$) THEN
oqbv% = 0 'since v3.14.0
oqbi$ = oqbi$ + pathsep$ + ConfigFolder$ + pathsep$
nul& = CopyFile&(oqbi$ + "config.ini", ConfigFile$)
ELSE
oqbv% = 1 'pre v3.14.0
oqbi$ = oqbi$ + pathsep$ + "internal" + pathsep$
nul& = CopyFile&(oqbi$ + "config.ini", ConfigFile$)
oqbi$ = oqbi$ + "temp" + pathsep$
END IF
nul& = CopyFile&(oqbi$ + "debug.ini", DebugFile$)
IF nul& = 0 AND oqbv% = 1 THEN 'we need to convert, if pre v3.14.0
oqbd$ = _READFILE$(DebugFile$)
oqbd$ = StrReplace$(oqbd$, "[settings]", "[VWATCH PANEL 1]") 'new instance section name
_WRITEFILE DebugFile$, oqbd$
END IF
nul& = CopyFile&(oqbi$ + "bookmarks.bin", BookmarksFile$)
nul& = CopyFile&(oqbi$ + "recent.bin", RecentFile$)
IF nul& = 0 AND oqbv% = 1 THEN 'we need to convert, if pre v3.14.0
oqbd$ = _READFILE$(RecentFile$)
oqbd$ = MID$(StrReplace$(oqbd$, CRLF + CRLF, CRLF), 3) 'remove empty lines
oqbd$ = StrReplace$(oqbd$, CRLF, NATIVE_LINEENDING) 'make line endings native
_WRITEFILE RecentFile$, oqbd$
END IF
nul& = CopyFile&(oqbi$ + "searched.bin", SearchedFile$)
IF nul& = 0 AND oqbv% = 1 THEN 'we need to convert, if pre v3.14.0
oqbd$ = _READFILE$(SearchedFile$)
oqbd$ = StrReplace$(oqbd$, CRLF, NATIVE_LINEENDING) 'make line endings native
_WRITEFILE SearchedFile$, oqbd$
END IF
'copying autosave & undo file(s) makes not much sense
ELSE
IF _MESSAGEBOX("QB64-PE IDE", "No qb64pe executable found, so that seems not to be a QB64-PE installation, select another folder?", "yesno", "warning" ) = 1 GOTO cfoAgain
END IF
END IF
QB64_uptime! = TIMER 'reinit to avoid startup resize events going wild
END SUB
'===== Routine to read/set initial config values ==============================
SUB ReadInitialConfig
'--- General settings
result = ReadConfigSetting(generalSettingsSection$, "DisableSyntaxHighlighter", value$)
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
DisableSyntaxHighlighter = -1
WriteConfigSetting generalSettingsSection$, "DisableSyntaxHighlighter", "True"
ELSE
DisableSyntaxHighlighter = 0
WriteConfigSetting generalSettingsSection$, "DisableSyntaxHighlighter", "False"
END IF
IF ReadConfigSetting(generalSettingsSection$, "PasteCursorAtEnd", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
PasteCursorAtEnd = -1
ELSE
PasteCursorAtEnd = 0
WriteConfigSetting generalSettingsSection$, "PasteCursorAtEnd", "False"
END IF
ELSE
PasteCursorAtEnd = -1
WriteConfigSetting generalSettingsSection$, "PasteCursorAtEnd", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "ExeToSourceFolderFirstTimeMsg", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
ExeToSourceFolderFirstTimeMsg = -1
ELSE
ExeToSourceFolderFirstTimeMsg = 0
WriteConfigSetting generalSettingsSection$, "ExeToSourceFolderFirstTimeMsg", "False"
END IF
ELSE
ExeToSourceFolderFirstTimeMsg = 0
WriteConfigSetting generalSettingsSection$, "ExeToSourceFolderFirstTimeMsg", "False"
END IF
IF ReadConfigSetting(generalSettingsSection$, "WhiteListQB64FirstTimeMsg", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
WhiteListQB64FirstTimeMsg = -1
ELSE
WhiteListQB64FirstTimeMsg = 0
WriteConfigSetting generalSettingsSection$, "WhiteListQB64FirstTimeMsg", "False"
END IF
ELSE
WhiteListQB64FirstTimeMsg = 0
WriteConfigSetting generalSettingsSection$, "WhiteListQB64FirstTimeMsg", "False"
END IF
IF ReadConfigSetting(generalSettingsSection$, "SaveExeWithSource", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
SaveExeWithSource = -1
ELSE
SaveExeWithSource = 0
WriteConfigSetting generalSettingsSection$, "SaveExeWithSource", "False"
END IF
ELSE
SaveExeWithSource = 0
WriteConfigSetting generalSettingsSection$, "SaveExeWithSource", "False"
END IF
IF ReadConfigSetting(generalSettingsSection$, "EnableQuickNav", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
EnableQuickNav = -1
ELSE
EnableQuickNav = 0
WriteConfigSetting generalSettingsSection$, "EnableQuickNav", "False"
END IF
ELSE
EnableQuickNav = -1
WriteConfigSetting generalSettingsSection$, "EnableQuickNav", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "ShowErrorsImmediately", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
IDEShowErrorsImmediately = -1
ELSE
IDEShowErrorsImmediately = 0
WriteConfigSetting generalSettingsSection$, "ShowErrorsImmediately", "False"
END IF
ELSE
IDEShowErrorsImmediately = -1
WriteConfigSetting generalSettingsSection$, "ShowErrorsImmediately", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "ShowLineNumbers", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
ShowLineNumbers = -1
ELSE
ShowLineNumbers = 0
WriteConfigSetting generalSettingsSection$, "ShowLineNumbers", "False"
END IF
ELSE
ShowLineNumbers = -1
WriteConfigSetting generalSettingsSection$, "ShowLineNumbers", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "ShowLineNumbersSeparator", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
ShowLineNumbersSeparator = -1
ELSE
ShowLineNumbersSeparator = 0
WriteConfigSetting generalSettingsSection$, "ShowLineNumbersSeparator", "False"
END IF
ELSE
ShowLineNumbersSeparator = -1
WriteConfigSetting generalSettingsSection$, "ShowLineNumbersSeparator", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "ShowLineNumbersUseBG", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
ShowLineNumbersUseBG = -1
ELSE
ShowLineNumbersUseBG = 0
WriteConfigSetting generalSettingsSection$, "ShowLineNumbersUseBG", "False"
END IF
ELSE
ShowLineNumbersUseBG = -1
WriteConfigSetting generalSettingsSection$, "ShowLineNumbersUseBG", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "BracketHighlight", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
brackethighlight = -1
ELSE
brackethighlight = 0
WriteConfigSetting generalSettingsSection$, "BracketHighlight", "False"
END IF
ELSE
brackethighlight = -1
WriteConfigSetting generalSettingsSection$, "BracketHighlight", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "KeywordHighlight", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
keywordHighlight = -1
ELSE
keywordHighlight = 0
WriteConfigSetting generalSettingsSection$, "KeywordHighlight", "False"
END IF
ELSE
keywordHighlight = -1
WriteConfigSetting generalSettingsSection$, "KeywordHighlight", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "MultiHighlight", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
multihighlight = -1
ELSE
multihighlight = 0
WriteConfigSetting generalSettingsSection$, "MultiHighlight", "False"
END IF
ELSE
multihighlight = -1
WriteConfigSetting generalSettingsSection$, "MultiHighlight", "True"
END IF
IF ReadConfigSetting(generalSettingsSection$, "IgnoreWarnings", value$) THEN
IF UCASE$(value$) = "TRUE" OR ABS(VAL(value$)) = 1 THEN
IgnoreWarnings = -1
ELSE
IgnoreWarnings = 0
WriteConfigSetting generalSettingsSection$, "IgnoreWarnings", "False"
END IF
ELSE
IgnoreWarnings = 0
WriteConfigSetting generalSettingsSection$, "IgnoreWarnings", "False"
END IF
result = ReadConfigSetting(generalSettingsSection$, "BackupSize", value$)
idebackupsize = VAL(value$)
IF idebackupsize < 10 OR idebackupsize > 2000 THEN
idebackupsize = 100: WriteConfigSetting generalSettingsSection$, "BackupSize", "100"
END IF
result = ReadConfigSetting(generalSettingsSection$, "MaxRecentFiles", value$)
ideMaxRecent = VAL(value$)
IF ideMaxRecent < 5 OR ideMaxRecent > 200 THEN
ideMaxRecent = 20: WriteConfigSetting generalSettingsSection$, "MaxRecentFiles", "20"
END IF
result = ReadConfigSetting(generalSettingsSection$, "MaxSearchStrings", value$)
ideMaxSearch = VAL(value$)
IF ideMaxSearch < 5 OR ideMaxSearch > 200 THEN
ideMaxSearch = 50: WriteConfigSetting generalSettingsSection$, "MaxSearchStrings", "50"
END IF
result = ReadConfigSetting(generalSettingsSection$, "DebugInfo", value$)
idedebuginfo = VAL(value$)
IF UCASE$(LEFT$(value$, 4)) = "TRUE" THEN idedebuginfo = -1
IF result = 0 OR idedebuginfo <> -1 THEN
WriteConfigSetting generalSettingsSection$, "DebugInfo", "False"
idedebuginfo = 0
END IF
Include_GDB_Debugging_Info = idedebuginfo
wikiBaseAddress$ = "https://qb64phoenix.com/qb64wiki"
IF ReadConfigSetting(generalSettingsSection$, "WikiBaseAddress", value$) THEN
wikiBaseAddress$ = value$
ELSE
WriteConfigSetting generalSettingsSection$, "WikiBaseAddress", wikiBaseAddress$
END IF
UseGuiDialogs = ReadWriteBooleanSettingValue%(generalSettingsSection$, "UseGuiDialogs", -1)
'--- Mouse settings
result = ReadConfigSetting(mouseSettingsSection$, "SwapMouseButton", value$)
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
MouseButtonSwapped = -1
WriteConfigSetting mouseSettingsSection$, "SwapMouseButton", "True"
ELSE
MouseButtonSwapped = 0
WriteConfigSetting mouseSettingsSection$, "SwapMouseButton", "False"
END IF
'--- Debug settings
result = ReadConfigSetting(debugSettingsSection$, "BaseTCPPort", value$)
idebaseTcpPort = VAL(value$)
IF idebaseTcpPort = 0 THEN idebaseTcpPort = 9000: WriteConfigSetting debugSettingsSection$, "BaseTCPPort", "9000"
result = ReadConfigSetting(debugSettingsSection$, "WatchListToConsole", value$)
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
WatchListToConsole = -1
WriteConfigSetting debugSettingsSection$, "WatchListToConsole", "True"
ELSE
WatchListToConsole = 0
WriteConfigSetting debugSettingsSection$, "WatchListToConsole", "False"
END IF
IF ReadConfigSetting(debugSettingsSection$, "AutoAddDebugCommand", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
AutoAddDebugCommand = -1
ELSE
AutoAddDebugCommand = 0
WriteConfigSetting debugSettingsSection$, "AutoAddDebugCommand", "False"
END IF
ELSE
AutoAddDebugCommand = -1
WriteConfigSetting debugSettingsSection$, "AutoAddDebugCommand", "True"
END IF
'--- Display settings
IF ReadConfigSetting(displaySettingsSection$, "IDE_SortSUBs", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
idesortsubs = -1
ELSE
idesortsubs = 0
WriteConfigSetting displaySettingsSection$, "IDE_SortSUBs", "False"
END IF
ELSE
idesortsubs = 0
WriteConfigSetting displaySettingsSection$, "IDE_SortSUBs", "False"
END IF
IF ReadConfigSetting(displaySettingsSection$, "IDE_KeywordCapital", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
IDEAutoLayoutKwCapitals = TRUE
ELSE
IDEAutoLayoutKwCapitals = FALSE
WriteConfigSetting displaySettingsSection$, "IDE_KeywordCapital", "False"
END IF
ELSE
IDEAutoLayoutKwCapitals = FALSE
WriteConfigSetting displaySettingsSection$, "IDE_KeywordCapital", "False"
END IF
IF ReadConfigSetting(displaySettingsSection$, "IDE_SUBsLength", value$) THEN
IF UCASE$(value$) = "TRUE" OR VAL(value$) = -1 THEN
IDESubsLength = -1
ELSE
IDESubsLength = 0
WriteConfigSetting displaySettingsSection$, "IDE_SUBsLength", "False"
END IF
ELSE
IDESubsLength = -1
WriteConfigSetting displaySettingsSection$, "IDE_SUBsLength", "True"
END IF
IF ReadConfigSetting(displaySettingsSection$, "IDE_AutoPosition", value$) THEN
IF UCASE$(value$) = "TRUE" OR ABS(VAL(value$)) = 1 THEN
IDE_AutoPosition = -1
ELSE
IDE_AutoPosition = 0
WriteConfigSetting displaySettingsSection$, "IDE_AutoPosition", "False"
END IF
ELSE
IDE_AutoPosition = -1
WriteConfigSetting displaySettingsSection$, "IDE_AutoPosition", "True"
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_NormalCursorStart", value$)
IDENormalCursorStart = VAL(value$)
IF IDENormalCursorStart < 0 OR IDENormalCursorStart > 31 OR result = 0 THEN
IDENormalCursorStart = 6
WriteConfigSetting displaySettingsSection$, "IDE_NormalCursorStart", "6"
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_NormalCursorEnd", value$)
IDENormalCursorEnd = VAL(value$)
IF IDENormalCursorEnd < 0 OR IDENormalCursorEnd > 31 OR result = 0 THEN
IDENormalCursorEnd = 8
WriteConfigSetting displaySettingsSection$, "IDE_NormalCursorEnd", "8"
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_AutoFormat", value$)
IDEAutoLayout = VAL(value$)
IF UCASE$(value$) = "TRUE" OR IDEAutoLayout <> 0 THEN
IDEAutoLayout = TRUE
ELSE
IF UCASE$(value$) <> "FALSE" AND value$ <> "0" THEN
WriteConfigSetting displaySettingsSection$, "IDE_AutoFormat", "True"
IDEAutoLayout = TRUE
ELSE
IDEAutoLayout = FALSE
END IF
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_AutoIndent", value$)
IDEAutoIndent = VAL(value$)
IF UCASE$(value$) = "TRUE" OR IDEAutoIndent <> 0 THEN
IDEAutoIndent = TRUE
ELSE
IF UCASE$(value$) <> "FALSE" AND value$ <> "0" THEN
WriteConfigSetting displaySettingsSection$, "IDE_AutoIndent", "True"
IDEAutoIndent = TRUE
ELSE
IDEAutoIndent = FALSE
END IF
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_IndentSUBs", value$)
IDEIndentSubs = VAL(value$)
IF UCASE$(value$) = "TRUE" OR IDEIndentSubs <> 0 THEN
IDEIndentSubs = TRUE
ELSE
IF UCASE$(value$) <> "FALSE" AND value$ <> "0" THEN
WriteConfigSetting displaySettingsSection$, "IDE_IndentSUBs", "True"
IDEIndentSubs = TRUE
ELSE
IDEIndentSubs = FALSE
END IF
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_IndentSize", value$)
IDEAutoIndentSize = VAL(value$)
IF IDEAutoIndentSize < 1 OR IDEAutoIndentSize > 64 THEN
IDEAutoIndentSize = 4
WriteConfigSetting displaySettingsSection$, "IDE_IndentSize", "4"
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_CustomFont", value$)
idecustomfont = VAL(value$)
IF UCASE$(value$) = "TRUE" OR idecustomfont <> 0 THEN
idecustomfont = 1
ELSE
WriteConfigSetting displaySettingsSection$, "IDE_CustomFont", "False"
idecustomfont = 0
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_UseFont8", value$)
IF UCASE$(value$) = "TRUE" THEN
IDE_UseFont8 = 1
ELSE
WriteConfigSetting displaySettingsSection$, "IDE_UseFont8", "False"
IDE_UseFont8 = 0
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_CustomFont$", value$)
idecustomfontfile$ = value$
IF result = 0 OR idecustomfontfile$ = "" THEN
idecustomfontfile$ = "C:\Windows\Fonts\lucon.ttf"
WriteConfigSetting displaySettingsSection$, "IDE_CustomFont$", idecustomfontfile$
END IF
result = ReadConfigSetting(displaySettingsSection$, "IDE_CustomFontSize", value$)
idecustomfontheight = VAL(value$)
IF idecustomfontheight < 8 OR idecustomfontheight > 100 THEN idecustomfontheight = 21: WriteConfigSetting displaySettingsSection$, "IDE_CustomFontSize", "21"
result = ReadConfigSetting(displaySettingsSection$, "IDE_CodePage", value$)
idecpindex = VAL(value$)
IF idecpindex < 0 OR idecpindex > idecpnum THEN idecpindex = 0: WriteConfigSetting displaySettingsSection$, "IDE_CodePage", "0"
'--- Custom keywords
IF ReadConfigSetting(customDictionarySection$, "CustomKeywords$", value$) 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
IniSetAddQuotes -1
WriteConfigSetting customDictionarySection$, "Instructions1", "Add custom keywords separated by the 'at' sign."
WriteConfigSetting customDictionarySection$, "Instructions2", "Useful to colorize constants (eg @true@false@)."
IniSetAddQuotes 0
WriteConfigSetting customDictionarySection$, "CustomKeywords$", "@"
END IF
'--- Color schemes
IniSetAddQuotes -1
WriteConfigSetting colorSchemesSection$, "Instructions1", "Create custom color schemes in the IDE (Options->IDE Colors)."
WriteConfigSetting colorSchemesSection$, "Instructions2", "Custom color schemes will be stored in this section."
IniSetAddQuotes 0
'--- Individual window settings (per instance)
IF ReadConfigSetting(windowSettingsSection$, "IDE_TopPosition", value$) THEN
IDE_TopPosition = VAL(value$)
IDE_BypassAutoPosition = 0 'reset bypass, if positions become available
ELSE
IDE_BypassAutoPosition = -1 'if there's no position, then we don't need to auto-position
IDE_TopPosition = 0
END IF
IF ReadConfigSetting(windowSettingsSection$, "IDE_LeftPosition", value$) THEN
IDE_LeftPosition = VAL(value$)
IDE_BypassAutoPosition = 0 'reset bypass, if positions become available
ELSE
IDE_BypassAutoPosition = -1 'if there's no position, then we don't need to auto-position
IDE_LeftPosition = 0
END IF
result = ReadConfigSetting(windowSettingsSection$, "IDE_Width", value$)
idewx = VAL(value$)
IF idewx < 80 OR idewx > 1000 THEN idewx = 120: WriteConfigSetting windowSettingsSection$, "IDE_Width", "120"
result = ReadConfigSetting(windowSettingsSection$, "IDE_Height", value$)
idewy = VAL(value$)
IF idewy < 25 OR idewy > 1000 THEN idewy = 40: WriteConfigSetting windowSettingsSection$, "IDE_Height", "40"
'--- Color settings (default = Super Dark Blue scheme, as of v1.5)
IDETextColor = _RGB32(216, 216, 216)
IDEKeywordColor = _RGB32(69, 118, 147)
IDENumbersColor = _RGB32(216, 98, 78)
IDEErrorColor = _RGB32(170, 0, 0)
IDEQuoteColor = _RGB32(255, 167, 0)
IDEMetaCommandColor = _RGB32(85, 206, 85)
IDECommentColor = _RGB32(98, 98, 98)
IDEChromaColor = _RGB32(170, 170, 170)
IDEBackgroundColor = _RGB32(0, 0, 39)
IDEBackgroundColor2 = _RGB32(0, 49, 78)
IDEBracketHighlightColor = _RGB32(0, 88, 108)
'--- Manual/unsaved color settings
IF ReadConfigSetting(colorSettingsSection$, "SchemeID", value$) = 0 THEN
WriteConfigSetting colorSettingsSection$, "SchemeID", "1"
END IF
IF ReadConfigSetting(colorSettingsSection$, "TextColor", value$) THEN
IDETextColor = VRGBS(value$, IDETextColor)
ELSE WriteConfigSetting colorSettingsSection$, "TextColor", rgbs$(IDETextColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "KeywordColor", value$) THEN
IDEKeywordColor = VRGBS(value$, IDEKeywordColor)
ELSE WriteConfigSetting colorSettingsSection$, "KeywordColor", rgbs$(IDEKeywordColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "ErrorColor", value$) THEN
IDEErrorColor = VRGBS(value$, IDENumbersColor)
ELSE WriteConfigSetting colorSettingsSection$, "ErrorColor", rgbs$(IDEErrorColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "NumbersColor", value$) THEN
IDENumbersColor = VRGBS(value$, IDENumbersColor)
ELSE WriteConfigSetting colorSettingsSection$, "NumbersColor", rgbs$(IDENumbersColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "QuoteColor", value$) THEN
IDEQuoteColor = VRGBS(value$, IDEQuoteColor)
ELSE WriteConfigSetting colorSettingsSection$, "QuoteColor", rgbs$(IDEQuoteColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "CommentColor", value$) THEN
IDECommentColor = VRGBS(value$, IDECommentColor)
ELSE WriteConfigSetting colorSettingsSection$, "CommentColor", rgbs$(IDECommentColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "ChromaColor", value$) THEN
IDEChromaColor = VRGBS(value$, IDEChromaColor)
ELSE WriteConfigSetting colorSettingsSection$, "ChromaColor", rgbs$(IDEChromaColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "MetaCommandColor", value$) THEN
IDEMetaCommandColor = VRGBS(value$, IDEMetaCommandColor)
ELSE WriteConfigSetting colorSettingsSection$, "MetaCommandColor", rgbs$(IDEMetaCommandColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "HighlightColor", value$) THEN
IDEBracketHighlightColor = VRGBS(value$, IDEBracketHighlightColor)
ELSE WriteConfigSetting colorSettingsSection$, "HighlightColor", rgbs$(IDEBracketHighlightColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "BackgroundColor", value$) THEN
IDEBackgroundColor = VRGBS(value$, IDEBackgroundColor)
ELSE WriteConfigSetting colorSettingsSection$, "BackgroundColor", rgbs$(IDEBackgroundColor)
END IF
IF ReadConfigSetting(colorSettingsSection$, "BackgroundColor2", value$) THEN
IDEBackgroundColor2 = VRGBS(value$, IDEBackgroundColor2)
ELSE WriteConfigSetting colorSettingsSection$, "BackgroundColor2", rgbs$(IDEBackgroundColor2)
END IF
'--- Compiler Settings
OptimizeCppProgram = ReadWriteBooleanSettingValue%(compilerSettingsSection$, "OptimizeCppProgram", 0)
StripDebugSymbols = ReadWriteBooleanSettingValue%(compilerSettingsSection$, "StripDebugSymbols", -1)
MaxParallelProcesses = ReadWriteLongSettingValue&(compilerSettingsSection$, "MaxParallelProcesses", 3)
ExtraCppFlags = ReadWriteStringSettingValue$(compilerSettingsSection$, "ExtraCppFlags", "")
ExtraLinkerFlags = ReadWriteStringSettingValue$(compilerSettingsSection$, "ExtraLinkerFlags", "")
GenerateLicenseFile = ReadWriteBooleanSettingValue%(compilerSettingsSection$, "GenerateLicenseFile", 0)
END SUB