1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-29 10:30:36 +00:00

Add "Show compilation errors immediately" to Options menu.

By unchecking the new switch in the Options menu, the IDE won't warn and "red-light" every single mistake until you tell it to start compilation with F5.

Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
This commit is contained in:
FellippeHeitor 2017-10-14 04:09:54 -03:00
parent 9ab94215db
commit 292dbbf49d
5 changed files with 77 additions and 47 deletions

View file

@ -10,6 +10,7 @@ DIM SHARED LoadedIDESettings AS INTEGER
DIM SHARED MouseButtonSwapped AS _BYTE DIM SHARED MouseButtonSwapped AS _BYTE
DIM SHARED PasteCursorAtEnd AS _BYTE DIM SHARED PasteCursorAtEnd AS _BYTE
DIM SHARED SaveExeWithSource AS _BYTE DIM SHARED SaveExeWithSource AS _BYTE
DIM SHARED IDEShowErrorsImmediately AS _BYTE
IF LoadedIDESettings = 0 THEN IF LoadedIDESettings = 0 THEN
'We only want to load the file once when QB64 first starts 'We only want to load the file once when QB64 first starts
@ -176,6 +177,19 @@ IF LoadedIDESettings = 0 THEN
SaveExeWithSource = 0 SaveExeWithSource = 0
END IF END IF
result = ReadConfigSetting("ShowErrorsImmediately", value$)
IF result THEN
IF value$ = "TRUE" OR VAL(value$) = -1 THEN
IDEShowErrorsImmediately = -1
ELSE
IDEShowErrorsImmediately = 0
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowErrorsImmediately", "FALSE"
END IF
ELSE
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowErrorsImmediately", "TRUE"
IDEShowErrorsImmediately = -1
END IF
result = ReadConfigSetting("BracketHighlight", value$) result = ReadConfigSetting("BracketHighlight", value$)
IF result THEN IF result THEN
IF value$ = "TRUE" OR VAL(value$) = -1 THEN IF value$ = "TRUE" OR VAL(value$) = -1 THEN

View file

@ -4,4 +4,4 @@ DIM SHARED AutoBuildMsg AS STRING
Version$ = "1.1" Version$ = "1.1"
'BuildNum format is YYYYMMDD/id, where id is a ever-increasing 'BuildNum format is YYYYMMDD/id, where id is a ever-increasing
'integer. If you make a change, update the date and increase the id! 'integer. If you make a change, update the date and increase the id!
BuildNum$ = "20171010/75" BuildNum$ = "20171014/76"

View file

@ -204,6 +204,7 @@ DIM SHARED menusize(1 TO 10)
DIM SHARED menus AS INTEGER, idecontextualmenuID AS INTEGER DIM SHARED menus AS INTEGER, idecontextualmenuID AS INTEGER
DIM SHARED ideeditmenuID AS INTEGER DIM SHARED ideeditmenuID AS INTEGER
DIM SHARED OptionsMenuID AS INTEGER, OptionsMenuSwapMouse AS INTEGER, OptionsMenuPasteCursor AS INTEGER DIM SHARED OptionsMenuID AS INTEGER, OptionsMenuSwapMouse AS INTEGER, OptionsMenuPasteCursor AS INTEGER
DIM SHARED OptionsMenuShowErrorsImmediately AS INTEGER
DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER
DIM SHARED multihighlight AS INTEGER, keywordHighlight AS INTEGER DIM SHARED multihighlight AS INTEGER, keywordHighlight AS INTEGER
DIM SHARED PresetColorSchemes AS INTEGER, TotalColorSchemes AS INTEGER, ColorSchemes$(0) DIM SHARED PresetColorSchemes AS INTEGER, TotalColorSchemes AS INTEGER, ColorSchemes$(0)

View file

@ -129,7 +129,7 @@ FUNCTION ide2 (ignore)
STATIC last.TBclick#, wholeword.select AS _BYTE STATIC last.TBclick#, wholeword.select AS _BYTE
STATIC wholeword.selectx1, wholeword.idecx STATIC wholeword.selectx1, wholeword.idecx
STATIC wholeword.selecty1, wholeword.idecy STATIC wholeword.selecty1, wholeword.idecy
STATIC ForceResize STATIC ForceResize, IDECompilationRequested AS _BYTE
CONST idesystem2.w = 20 '"Find" field width (Status bar) CONST idesystem2.w = 20 '"Find" field width (Status bar)
char.sep$ = CHR$(34) + " =<>+-/\^:;,*()." char.sep$ = CHR$(34) + " =<>+-/\^:;,*()."
@ -308,17 +308,23 @@ FUNCTION ide2 (ignore)
menu$(m, i) = "#Advanced...": i = i + 1 menu$(m, i) = "#Advanced...": i = i + 1
OptionsMenuSwapMouse = i OptionsMenuSwapMouse = i
menu$(m, i) = menu$(m, i) + "#Swap Mouse Buttons": i = i + 1 menu$(m, i) = "#Swap Mouse Buttons": i = i + 1
IF MouseButtonSwapped THEN IF MouseButtonSwapped THEN
menu$(OptionsMenuID, OptionsMenuSwapMouse) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuSwapMouse) menu$(OptionsMenuID, OptionsMenuSwapMouse) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuSwapMouse)
END IF END IF
OptionsMenuPasteCursor = i OptionsMenuPasteCursor = i
menu$(m, i) = menu$(m, i) + "Cursor after #pasted content": i = i + 1 menu$(m, i) = "Cursor after #pasted content": i = i + 1
IF PasteCursorAtEnd THEN IF PasteCursorAtEnd THEN
menu$(OptionsMenuID, OptionsMenuPasteCursor) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuPasteCursor) menu$(OptionsMenuID, OptionsMenuPasteCursor) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuPasteCursor)
END IF END IF
OptionsMenuShowErrorsImmediately = i
menu$(m, i) = "Show compilation #errors immediately": i = i + 1
IF IDEShowErrorsImmediately THEN
menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately)
END IF
menu$(m, i) = "-": i = i + 1 menu$(m, i) = "-": i = i + 1
menu$(m, i) = "#Google Android...": i = i + 1 menu$(m, i) = "#Google Android...": i = i + 1
@ -653,7 +659,9 @@ FUNCTION ide2 (ignore)
IF c$ <> CHR$(3) THEN IF c$ <> CHR$(3) THEN
COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window
IF ready THEN LOCATE idewy - 3, 2: PRINT "OK"; 'report OK status IF ready THEN
IF ShowErrorsImmediately THEN LOCATE idewy - 3, 2: PRINT "OK"; 'report OK status
END IF
IF showexecreated THEN IF showexecreated THEN
showexecreated = 0 showexecreated = 0
LOCATE idewy - 3, 2 LOCATE idewy - 3, 2
@ -904,48 +912,51 @@ FUNCTION ide2 (ignore)
'display error message (if necessary) 'display error message (if necessary)
IF failed THEN IF failed THEN
IF LEFT$(IdeInfo, 19) <> "Selection length = " THEN IdeInfo = "" IF IDEShowErrorsImmediately OR IDECompilationRequested THEN
UpdateIdeInfo IF LEFT$(IdeInfo, 19) <> "Selection length = " THEN IdeInfo = ""
UpdateIdeInfo
COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window
'scrolling unavailable, but may span multiple lines 'scrolling unavailable, but may span multiple lines
a$ = MID$(c$, 2, LEN(c$) - 5) a$ = MID$(c$, 2, LEN(c$) - 5)
l = CVL(RIGHT$(c$, 4)): IF l <> 0 THEN idefocusline = l l = CVL(RIGHT$(c$, 4)): IF l <> 0 THEN idefocusline = l
x = 1 x = 1
y = idewy - 3 y = idewy - 3
IF l <> 0 AND idecy = l THEN a$ = a$ + " on current line" IF l <> 0 AND idecy = l THEN a$ = a$ + " on current line"
FOR i = 1 TO LEN(a$)
x = x + 1: IF x = idewx THEN x = 2: y = y + 1
IF y > idewy - 1 THEN EXIT FOR
LOCATE y, x
PRINT CHR$(ASC(a$, i));
NEXT
IF l <> 0 AND idecy <> l THEN
a$ = " on line" + STR$(l)
COLOR 11, 1
FOR i = 1 TO LEN(a$) FOR i = 1 TO LEN(a$)
x = x + 1: IF x = idewx THEN x = 2: y = y + 1 x = x + 1: IF x = idewx THEN x = 2: y = y + 1
IF y > idewy - 1 THEN EXIT FOR IF y > idewy - 1 THEN EXIT FOR
LOCATE y, x LOCATE y, x
PRINT CHR$(ASC(a$, i)); PRINT CHR$(ASC(a$, i));
NEXT NEXT
END IF
IF l <> 0 AND idecy <> l THEN
a$ = " on line" + STR$(l)
COLOR 11, 1
FOR i = 1 TO LEN(a$)
x = x + 1: IF x = idewx THEN x = 2: y = y + 1
IF y > idewy - 1 THEN EXIT FOR
LOCATE y, x
PRINT CHR$(ASC(a$, i));
NEXT
END IF
END IF
END IF END IF
IF idechangemade THEN IF idechangemade THEN
COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window IF IDEShowErrorsImmediately OR IDECompilationRequested THEN
COLOR 7, 1: LOCATE idewy - 3, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 2, 2: PRINT SPACE$(idewx - 2);: LOCATE idewy - 1, 2: PRINT SPACE$(idewx - 2); 'clear status window
IdeInfo = "" IdeInfo = ""
LOCATE idewy - 3, 2: PRINT "..."; 'assume new compilation will begin LOCATE idewy - 3, 2: PRINT "..."; 'assume new compilation will begin
END IF
END IF END IF
ideshowtext ideshowtext
@ -1045,15 +1056,16 @@ FUNCTION ide2 (ignore)
END IF 'skipdisplay END IF 'skipdisplay
STATIC prev_idecy AS LONG, idechangedbefore AS _BYTE
IF idechangemade THEN IF idechangemade THEN
IF idelayoutallow THEN idelayoutallow = idelayoutallow - 1 IF idelayoutallow THEN idelayoutallow = idelayoutallow - 1
idecurrentlinelayouti = 0 'invalidate idecurrentlinelayouti = 0 'invalidate
idefocusline = 0
idechangemade = 0 idechangemade = 0
idechangedbefore = -1
IDECompilationRequested = 0
IF ideunsaved = -1 THEN ideunsaved = 0 ELSE ideunsaved = 1 IF ideunsaved = -1 THEN ideunsaved = 0 ELSE ideunsaved = 1
IF idenoundo = 0 THEN IF idenoundo = 0 THEN
@ -1201,20 +1213,6 @@ FUNCTION ide2 (ignore)
END IF 'idechangemade END IF 'idechangemade
change = 0 change = 0
waitforinput: waitforinput:
@ -1400,7 +1398,7 @@ FUNCTION ide2 (ignore)
idemrun: idemrun:
iderunmode = 0 'standard run iderunmode = 0 'standard run
idemrunspecial: idemrunspecial:
IDECompilationRequested = -1
'run program 'run program
IF ready <> 0 AND idechangemade = 0 THEN IF ready <> 0 AND idechangemade = 0 THEN
@ -4363,6 +4361,21 @@ FUNCTION ide2 (ignore)
GOTO ideloop GOTO ideloop
END IF END IF
IF RIGHT$(menu$(m, s), 36) = "Show compilation #errors immediately" THEN
PCOPY 2, 0
IDEShowErrorsImmediately = NOT IDEShowErrorsImmediately
IF IDEShowErrorsImmediately THEN
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowErrorsImmediately", "TRUE"
menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately) = CHR$(7) + "Show compilation #errors immediately"
ELSE
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowErrorsImmediately", "FALSE"
menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately) = "Show compilation #errors immediately"
END IF
idechangemade = 1
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
GOTO ideloop
END IF
IF RIGHT$(menu$(m, s), 30) = "Save EXE in the source #folder" THEN IF RIGHT$(menu$(m, s), 30) = "Save EXE in the source #folder" THEN
PCOPY 2, 0 PCOPY 2, 0
SaveExeWithSource = NOT SaveExeWithSource SaveExeWithSource = NOT SaveExeWithSource
@ -5002,6 +5015,7 @@ FUNCTION ide2 (ignore)
ModifyCOMMAND$ = "" ModifyCOMMAND$ = ""
_TITLE "QB64" _TITLE "QB64"
idechangemade = 1 idechangemade = 1
idefocusline = 0
ideundobase = 0 'reset ideundobase = 0 'reset
GOTO ideloop GOTO ideloop
END IF END IF
@ -7283,6 +7297,7 @@ FUNCTION ideopen$
idecx = 1 idecx = 1
idecy = 1 idecy = 1
ideselect = 0 ideselect = 0
idefocusline = 0
lineinput3load path$ + idepathsep$ + f$ lineinput3load path$ + idepathsep$ + f$
idet$ = SPACE$(LEN(lineinput3buffer) * 8) idet$ = SPACE$(LEN(lineinput3buffer) * 8)
i2 = 1 i2 = 1

View file

@ -2200,7 +2200,7 @@ DO
CASE 32 CASE 32
clr~& = _RGB32(VAL(red$), VAL(green$), VAL(blue$)) clr~& = _RGB32(VAL(red$), VAL(green$), VAL(blue$))
CASE ELSE CASE ELSE
a$ = "Invalid Screen Mode.": GOTO errmes a$ = "Invalid screen mode": GOTO errmes
END SELECT END SELECT
wholestv$ = l$ + STR$(clr~&) + RIGHT$(wholestv$, LEN(wholestv$) - E) wholestv$ = l$ + STR$(clr~&) + RIGHT$(wholestv$, LEN(wholestv$) - E)