mirror of
https://github.com/QB64Official/qb64.git
synced 2024-07-08 07:55:14 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
commit
8917bf0e52
|
@ -12,6 +12,7 @@ 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
|
DIM SHARED IDEShowErrorsImmediately AS _BYTE
|
||||||
|
DIM SHARED ShowLineNumbersSeparator AS _BYTE, ShowLineNumbersUseBG 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
|
||||||
|
@ -204,6 +205,45 @@ IF LoadedIDESettings = 0 THEN
|
||||||
IDEShowErrorsImmediately = -1
|
IDEShowErrorsImmediately = -1
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
result = ReadConfigSetting("ShowLineNumbers", value$)
|
||||||
|
IF result THEN
|
||||||
|
IF value$ = "TRUE" OR VAL(value$) = -1 THEN
|
||||||
|
ShowLineNumbers = -1
|
||||||
|
ELSE
|
||||||
|
ShowLineNumbers = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbers", "FALSE"
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbers", "FALSE"
|
||||||
|
ShowLineNumbers = 0
|
||||||
|
END IF
|
||||||
|
|
||||||
|
result = ReadConfigSetting("ShowLineNumbersSeparator", value$)
|
||||||
|
IF result THEN
|
||||||
|
IF value$ = "TRUE" OR VAL(value$) = -1 THEN
|
||||||
|
ShowLineNumbersSeparator = -1
|
||||||
|
ELSE
|
||||||
|
ShowLineNumbersSeparator = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersSeparator", "FALSE"
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersSeparator", "TRUE"
|
||||||
|
ShowLineNumbersSeparator = -1
|
||||||
|
END IF
|
||||||
|
|
||||||
|
result = ReadConfigSetting("ShowLineNumbersUseBG", value$)
|
||||||
|
IF result THEN
|
||||||
|
IF value$ = "TRUE" OR VAL(value$) = -1 THEN
|
||||||
|
ShowLineNumbersUseBG = -1
|
||||||
|
ELSE
|
||||||
|
ShowLineNumbersUseBG = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersUseBG", "FALSE"
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersUseBG", "TRUE"
|
||||||
|
ShowLineNumbersUseBG = -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
|
||||||
|
|
|
@ -4,5 +4,5 @@ DIM SHARED AutoBuildMsg AS STRING
|
||||||
Version$ = "1.2"
|
Version$ = "1.2"
|
||||||
'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$ = "20171230/83"
|
BuildNum$ = "20180102/84"
|
||||||
|
|
||||||
|
|
|
@ -166,8 +166,9 @@ DIM SHARED ModifyCOMMAND$
|
||||||
DIM SHARED EnteringRGB AS _BYTE
|
DIM SHARED EnteringRGB AS _BYTE
|
||||||
DIM SHARED ActiveINCLUDELink AS LONG
|
DIM SHARED ActiveINCLUDELink AS LONG
|
||||||
DIM SHARED ActiveINCLUDELinkFile AS STRING
|
DIM SHARED ActiveINCLUDELinkFile AS STRING
|
||||||
DIM SHARED HideCurrentLineHighlight AS _BYTE
|
DIM SHARED HideCurrentLineHighlight AS _BYTE, ShowLineNumbers AS _BYTE
|
||||||
DIM SHARED idegotobox_LastLineNum AS LONG
|
DIM SHARED idegotobox_LastLineNum AS LONG, maxLineNumberLength AS LONG
|
||||||
|
|
||||||
'--------------------------------------------------------------------------------
|
'--------------------------------------------------------------------------------
|
||||||
TYPE idedbptype
|
TYPE idedbptype
|
||||||
x AS LONG
|
x AS LONG
|
||||||
|
@ -206,6 +207,8 @@ 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 OptionsMenuShowErrorsImmediately AS INTEGER
|
||||||
|
DIM SHARED ViewMenuID AS INTEGER, ViewMenuShowLineNumbersSubMenuID AS INTEGER
|
||||||
|
DIM SHARED ViewMenuShowSeparatorID AS INTEGER, ViewMenuShowBGID 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)
|
||||||
|
|
|
@ -249,9 +249,10 @@ FUNCTION ide2 (ignore)
|
||||||
ideeditmenuID = m
|
ideeditmenuID = m
|
||||||
IdeMakeEditMenu
|
IdeMakeEditMenu
|
||||||
|
|
||||||
m = m + 1: i = 0
|
m = m + 1: i = 0: ViewMenuID = m
|
||||||
menu$(m, i) = "View": i = i + 1
|
menu$(m, i) = "View": i = i + 1
|
||||||
menu$(m, i) = "#SUBs... F2": i = i + 1
|
menu$(m, i) = "#SUBs... F2": i = i + 1
|
||||||
|
menu$(m, i) = "#Line numbers " + CHR$(16): i = i + 1
|
||||||
menusize(m) = i - 1
|
menusize(m) = i - 1
|
||||||
|
|
||||||
m = m + 1: i = 0
|
m = m + 1: i = 0
|
||||||
|
@ -277,7 +278,7 @@ FUNCTION ide2 (ignore)
|
||||||
menu$(m, i) = "-": i = i + 1
|
menu$(m, i) = "-": i = i + 1
|
||||||
|
|
||||||
RunMenuSaveExeWithSource = i
|
RunMenuSaveExeWithSource = i
|
||||||
menu$(m, i) = "Save EXE in the source #folder": i = i + 1
|
menu$(m, i) = "Output EXE to source #folder": i = i + 1
|
||||||
IF SaveExeWithSource THEN
|
IF SaveExeWithSource THEN
|
||||||
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + menu$(RunMenuID, RunMenuSaveExeWithSource)
|
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + menu$(RunMenuID, RunMenuSaveExeWithSource)
|
||||||
END IF
|
END IF
|
||||||
|
@ -343,6 +344,22 @@ FUNCTION ide2 (ignore)
|
||||||
m = m + 1
|
m = m + 1
|
||||||
idecontextualmenuID = m
|
idecontextualmenuID = m
|
||||||
|
|
||||||
|
'View Menu sub menu for Line Numbers options
|
||||||
|
m = m + 1: i = 0
|
||||||
|
menu$(m, i) = "ViewMenuShowLineNumbersSubMenu": i = i + 1
|
||||||
|
ViewMenuShowLineNumbersSubMenuID = m
|
||||||
|
IF ShowLineNumbers THEN menu$(m, i) = "#Hide line numbers" ELSE menu$(m, i) = "#Show line numbers"
|
||||||
|
i = i + 1
|
||||||
|
menu$(m, i) = "#Background color": IF ShowLineNumbersUseBG THEN menu$(m, i) = CHR$(7) + menu$(m, i)
|
||||||
|
ViewMenuShowBGID = i
|
||||||
|
IF ShowLineNumbers = 0 THEN menu$(m, i) = "~" + menu$(m, i)
|
||||||
|
i = i + 1
|
||||||
|
menu$(m, i) = "Sho#w separator": IF ShowLineNumbersSeparator THEN menu$(m, i) = CHR$(7) + menu$(m, i)
|
||||||
|
ViewMenuShowSeparatorID = i
|
||||||
|
IF ShowLineNumbers = 0 THEN menu$(m, i) = "~" + menu$(m, i)
|
||||||
|
i = i + 1
|
||||||
|
menusize(m) = i - 1
|
||||||
|
|
||||||
IF os$ = "WIN" THEN
|
IF os$ = "WIN" THEN
|
||||||
idepathsep$ = "\"
|
idepathsep$ = "\"
|
||||||
END IF
|
END IF
|
||||||
|
@ -725,6 +742,7 @@ FUNCTION ide2 (ignore)
|
||||||
'main loop
|
'main loop
|
||||||
DO
|
DO
|
||||||
ideloop:
|
ideloop:
|
||||||
|
IF ShowLineNumbers THEN maxLineNumberLength = LEN(STR$(iden)) + 1 ELSE maxLineNumberLength = 0
|
||||||
idecontextualmenu = 0
|
idecontextualmenu = 0
|
||||||
idedeltxt 'removes temporary strings (typically created by guibox commands) by setting an index to 0
|
idedeltxt 'removes temporary strings (typically created by guibox commands) by setting an index to 0
|
||||||
IF idesubwindow <> 0 THEN _RESIZE OFF ELSE _RESIZE ON
|
IF idesubwindow <> 0 THEN _RESIZE OFF ELSE _RESIZE ON
|
||||||
|
@ -1402,7 +1420,7 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO specialchar
|
GOTO specialchar
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
'3- Link to the output folder when "Save EXE in the source folder" is checked:
|
'3- Link to the output folder when "Output EXE to source #folder" is checked:
|
||||||
IF INSTR(_OS$, "WIN") THEN
|
IF INSTR(_OS$, "WIN") THEN
|
||||||
SHELL _DONTWAIT "explorer /select," + QuotedFilename$(path.exe$ + file$ + extension$)
|
SHELL _DONTWAIT "explorer /select," + QuotedFilename$(path.exe$ + file$ + extension$)
|
||||||
ELSEIF INSTR(_OS$, "MAC") THEN
|
ELSEIF INSTR(_OS$, "MAC") THEN
|
||||||
|
@ -2633,7 +2651,7 @@ FUNCTION ide2 (ignore)
|
||||||
ideselecty1 = wholeword.selecty1
|
ideselecty1 = wholeword.selecty1
|
||||||
idecy = wholeword.idecy
|
idecy = wholeword.idecy
|
||||||
END IF
|
END IF
|
||||||
newposition = mX - 1 + idesx - 1
|
newposition = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
a$ = idegetline$(idecy)
|
a$ = idegetline$(idecy)
|
||||||
IF newposition > LEN(a$) THEN idecx = newposition: GOTO DoneWholeWord
|
IF newposition > LEN(a$) THEN idecx = newposition: GOTO DoneWholeWord
|
||||||
IF newposition = 1 THEN ideselectx1 = 1: GOTO DoneWholeWord
|
IF newposition = 1 THEN ideselectx1 = 1: GOTO DoneWholeWord
|
||||||
|
@ -2659,11 +2677,11 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mCLICK THEN
|
IF mCLICK THEN
|
||||||
IF mX > 1 AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN 'inside text box
|
IF mX > 1 + maxLineNumberLength AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN 'inside text box
|
||||||
IF old.mX = mX AND old.mY = mY THEN
|
IF old.mX = mX AND old.mY = mY THEN
|
||||||
IF TIMER - last.TBclick# > .5 THEN GOTO regularTextBox_click
|
IF TIMER - last.TBclick# > .5 THEN GOTO regularTextBox_click
|
||||||
'Double-click on text box: attempt to select "word" clicked
|
'Double-click on text box: attempt to select "word" clicked
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN
|
IF idecy > iden THEN
|
||||||
GOTO regularTextBox_click
|
GOTO regularTextBox_click
|
||||||
|
@ -2754,13 +2772,33 @@ FUNCTION ide2 (ignore)
|
||||||
regularTextBox_click:
|
regularTextBox_click:
|
||||||
old.mX = mX: old.mY = mY: last.TBclick# = TIMER
|
old.mX = mX: old.mY = mY: last.TBclick# = TIMER
|
||||||
ideselect = 1
|
ideselect = 1
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ideselect = 1: ideselectx1 = idecx: ideselecty1 = idecy
|
ideselect = 1
|
||||||
|
IF (NOT KSHIFT) THEN ideselectx1 = idecx: ideselecty1 = idecy
|
||||||
idemouseselect = 1
|
idemouseselect = 1
|
||||||
wholeword.select = 0
|
wholeword.select = 0
|
||||||
END IF
|
END IF
|
||||||
|
ELSEIF mX > 1 AND mx =< 1 + maxLineNumberLength AND mY > 2 AND mY < (idewy - 5) AND ShowLineNumbers THEN
|
||||||
|
'line numbers are visible and been clicked
|
||||||
|
ideselect = 1
|
||||||
|
idecy = mY - 2 + idesy - 1
|
||||||
|
IF idecy < iden THEN
|
||||||
|
IF (NOT KSHIFT) THEN ideselectx1 = 1: ideselecty1 = idecy
|
||||||
|
idecy = idecy + 1
|
||||||
|
idecx = 1
|
||||||
|
ELSEIF idecy = iden THEN
|
||||||
|
a$ = idegetline$(idecy)
|
||||||
|
IF (NOT KSHIFT) THEN ideselectx1 = 1: ideselecty1 = idecy
|
||||||
|
idecx = LEN(a$) + 1
|
||||||
|
ELSEIF idecy > iden THEN
|
||||||
|
idecy = iden
|
||||||
|
ideselect = 0
|
||||||
|
idecx = 1
|
||||||
|
END IF
|
||||||
|
wholeword.select = 0
|
||||||
|
idemouseselect = 0
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -2768,9 +2806,9 @@ FUNCTION ide2 (ignore)
|
||||||
|
|
||||||
IF mCLICK2 THEN 'Second mouse button pressed.
|
IF mCLICK2 THEN 'Second mouse button pressed.
|
||||||
invokecontextualmenu:
|
invokecontextualmenu:
|
||||||
IF mX > 1 AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN 'inside text box
|
IF mX > 1 + maxLineNumberLength AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN 'inside text box
|
||||||
IF ideselect = 0 THEN 'Right click only positions the cursor if no selection is active
|
IF ideselect = 0 THEN 'Right click only positions the cursor if no selection is active
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ELSE 'A selection is reported but it may be that the user only clicked the screen. Let's check:
|
ELSE 'A selection is reported but it may be that the user only clicked the screen. Let's check:
|
||||||
|
@ -2785,14 +2823,14 @@ FUNCTION ide2 (ignore)
|
||||||
IF a2$ = "" THEN
|
IF a2$ = "" THEN
|
||||||
'Told ya.
|
'Told ya.
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ELSE
|
ELSE
|
||||||
'Ok, there is a selection. But we'll override it if the click was outside it
|
'Ok, there is a selection. But we'll override it if the click was outside it
|
||||||
IF mX - 1 + idesx - 1 < sx1 OR mX - 1 + idesx - 1 > sx2 THEN
|
IF (mX - 1 + idesx - 1) - maxLineNumberLength < sx1 OR (mX - 1 + idesx - 1) - maxLineNumberLength > sx2 THEN
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ideshowtext
|
ideshowtext
|
||||||
|
@ -2800,7 +2838,7 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
IF mY - 2 + idesy - 1 < idecy OR mY - 2 + idesy - 1 > idecy THEN
|
IF mY - 2 + idesy - 1 < idecy OR mY - 2 + idesy - 1 > idecy THEN
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ideshowtext
|
ideshowtext
|
||||||
|
@ -2814,7 +2852,7 @@ FUNCTION ide2 (ignore)
|
||||||
IF sy1 > sy2 THEN SWAP sy1, sy2
|
IF sy1 > sy2 THEN SWAP sy1, sy2
|
||||||
IF mY - 2 + idesy - 1 < sy1 OR mY - 2 + idesy - 1 > sy2 THEN
|
IF mY - 2 + idesy - 1 < sy1 OR mY - 2 + idesy - 1 > sy2 THEN
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ideshowtext
|
ideshowtext
|
||||||
|
@ -2924,9 +2962,10 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mB AND idemouseselect <= 1 THEN
|
IF mB AND idemouseselect <= 1 THEN
|
||||||
IF mX > 1 AND mX < idewx AND mY > 2 AND mY < idewy - 5 THEN 'inside text box
|
IF mX > 1 + maxLineNumberLength AND mX < idewx AND mY > 2 AND mY < idewy - 5 THEN 'inside text box
|
||||||
IF idemouseselect = 1 THEN
|
IF idemouseselect = 1 THEN
|
||||||
idecx = mX - 1 + idesx - 1
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
|
IF idecx < 1 THEN idecx = 1
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
END IF
|
END IF
|
||||||
|
@ -2934,13 +2973,13 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mB THEN
|
IF mB THEN
|
||||||
IF mX = 1 OR mX = idewx OR mY <= 2 OR mY >= idewy - 5 THEN 'off text window area
|
IF ((mX = 1 AND ShowLineNumbers = 0) OR (mX <= 1 + maxLineNumberLength AND ShowLineNumbers)) OR mX = idewx OR mY <= 2 OR mY >= idewy - 5 THEN 'off text window area
|
||||||
IF idemouseselect = 1 THEN
|
IF idemouseselect = 1 THEN
|
||||||
|
|
||||||
'scroll window
|
'scroll window
|
||||||
IF mY >= idewy - 5 THEN idecy = idecy + 1: IF idecy > iden THEN idecy = iden
|
IF mY >= idewy - 5 THEN idecy = idecy + 1: IF idecy > iden THEN idecy = iden
|
||||||
IF mY <= 2 THEN idecy = idecy - 1: IF idecy < 1 THEN idecy = 1
|
IF mY <= 2 THEN idecy = idecy - 1: IF idecy < 1 THEN idecy = 1
|
||||||
IF mX = 1 THEN idecx = idecx - 1: IF idecx < 1 THEN idecx = 1
|
IF ((mX = 1 AND ShowLineNumbers = 0) OR (mX <= 1 + maxLineNumberLength AND ShowLineNumbers)) THEN idecx = idecx - 1: IF idecx < 1 THEN idecx = 1
|
||||||
IF mX = idewx THEN idecx = idecx + 1
|
IF mX = idewx THEN idecx = idecx + 1
|
||||||
idewait
|
idewait
|
||||||
END IF
|
END IF
|
||||||
|
@ -3940,7 +3979,7 @@ FUNCTION ide2 (ignore)
|
||||||
|
|
||||||
GetInput
|
GetInput
|
||||||
IF oldmx <> mX OR oldmy <> mY THEN
|
IF oldmx <> mX OR oldmy <> mY THEN
|
||||||
IF mY = 1 AND idecontextualmenu = 0 THEN 'Check if we're hovering on menu bar
|
IF mY = 1 AND idecontextualmenu <> 1 THEN 'Check if we're hovering on menu bar
|
||||||
lastm = m
|
lastm = m
|
||||||
FOR i = 1 TO menus
|
FOR i = 1 TO menus
|
||||||
x = CVI(MID$(MenuLocations, i * 2 - 1, 2))
|
x = CVI(MID$(MenuLocations, i * 2 - 1, 2))
|
||||||
|
@ -4053,8 +4092,13 @@ FUNCTION ide2 (ignore)
|
||||||
IF IdeSystem = 2 THEN IdeSystem = 1: GOSUB UpdateSearchBar
|
IF IdeSystem = 2 THEN IdeSystem = 1: GOSUB UpdateSearchBar
|
||||||
PCOPY 0, 2
|
PCOPY 0, 2
|
||||||
SCREEN , , 1, 0
|
SCREEN , , 1, 0
|
||||||
|
updateMenuPanel%% = 0
|
||||||
|
parentMenuR = r
|
||||||
r = 1
|
r = 1
|
||||||
|
parentMenu = 0
|
||||||
|
parentMenuSetup%% = 0
|
||||||
IF idecontextualmenu = 1 THEN idectxmenuX = mX: idectxmenuY = mY: m = idecontextualmenuID
|
IF idecontextualmenu = 1 THEN idectxmenuX = mX: idectxmenuY = mY: m = idecontextualmenuID
|
||||||
|
IF idecontextualmenu = 2 THEN idectxmenuX = xx + w + 3: idectxmenuY = yy + r: parentMenu = m: m = ViewMenuShowLineNumbersSubMenuID
|
||||||
IdeMakeEditMenu
|
IdeMakeEditMenu
|
||||||
oldmy = mY: oldmx = mX
|
oldmy = mY: oldmx = mX
|
||||||
DO
|
DO
|
||||||
|
@ -4066,6 +4110,14 @@ FUNCTION ide2 (ignore)
|
||||||
IF i = menus - 1 THEN x = idewx - LEN(menu$(menus, 0)) - 1
|
IF i = menus - 1 THEN x = idewx - LEN(menu$(menus, 0)) - 1
|
||||||
NEXT: xx = x
|
NEXT: xx = x
|
||||||
LOCATE 1, xx - 1: COLOR 7, 0: PRINT " " + menu$(m, 0) + " "
|
LOCATE 1, xx - 1: COLOR 7, 0: PRINT " " + menu$(m, 0) + " "
|
||||||
|
ELSE
|
||||||
|
IF parentMenu > 0 AND parentMenuSetup%% = 0 THEN
|
||||||
|
parentMenuSetup%% = -1
|
||||||
|
backToParent.x1 = xx - 1
|
||||||
|
backToParent.x2 = xx + w
|
||||||
|
backToParent.y1 = 3
|
||||||
|
backToParent.y2 = backToParent.y1 + menusize(parentMenu)
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
COLOR 0, 7
|
COLOR 0, 7
|
||||||
'calculate menu width
|
'calculate menu width
|
||||||
|
@ -4080,7 +4132,7 @@ FUNCTION ide2 (ignore)
|
||||||
IF l > w THEN w = l
|
IF l > w THEN w = l
|
||||||
NEXT
|
NEXT
|
||||||
yy = 2
|
yy = 2
|
||||||
IF idecontextualmenu = 1 THEN
|
IF idecontextualmenu > 0 THEN
|
||||||
actual.idewy = idewy
|
actual.idewy = idewy
|
||||||
IF idesubwindow <> 0 THEN
|
IF idesubwindow <> 0 THEN
|
||||||
actual.idewy = idewy + idesubwindow
|
actual.idewy = idewy + idesubwindow
|
||||||
|
@ -4102,7 +4154,7 @@ FUNCTION ide2 (ignore)
|
||||||
ELSEIF LEFT$(m$, 1) = "~" THEN
|
ELSEIF LEFT$(m$, 1) = "~" THEN
|
||||||
m$ = RIGHT$(m$, LEN(m$) - 1) 'Remove the tilde before printing
|
m$ = RIGHT$(m$, LEN(m$) - 1) 'Remove the tilde before printing
|
||||||
IF r = i THEN LOCATE i + yy, xx - 1: COLOR 7, 0: PRINT SPACE$(w + 2);
|
IF r = i THEN LOCATE i + yy, xx - 1: COLOR 7, 0: PRINT SPACE$(w + 2);
|
||||||
LOCATE i + yy, xx
|
IF LEFT$(m$, 1) = CHR$(7) THEN LOCATE i + yy, xx - 1 ELSE LOCATE i + yy, xx
|
||||||
h = -1: x = INSTR(m$, "#"): IF x THEN h = x: m$ = LEFT$(m$, x - 1) + RIGHT$(m$, LEN(m$) - x)
|
h = -1: x = INSTR(m$, "#"): IF x THEN h = x: m$ = LEFT$(m$, x - 1) + RIGHT$(m$, LEN(m$) - x)
|
||||||
x = INSTR(m$, " "): IF x THEN m1$ = LEFT$(m$, x - 1): m2$ = RIGHT$(m$, LEN(m$) - x - 1): m$ = m1$ + SPACE$(w - LEN(m1$) - LEN(m2$)) + m2$
|
x = INSTR(m$, " "): IF x THEN m1$ = LEFT$(m$, x - 1): m2$ = RIGHT$(m$, LEN(m$) - x - 1): m$ = m1$ + SPACE$(w - LEN(m1$) - LEN(m2$)) + m2$
|
||||||
FOR x = 1 TO LEN(m$)
|
FOR x = 1 TO LEN(m$)
|
||||||
|
@ -4122,15 +4174,13 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
PRINT MID$(m$, x, 1);
|
PRINT MID$(m$, x, 1);
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
PCOPY 1, 0
|
PCOPY 1, 0
|
||||||
|
|
||||||
|
IF updateMenuPanel%% THEN GOTO menuChoiceMade
|
||||||
|
|
||||||
change = 0
|
change = 0
|
||||||
DO
|
DO
|
||||||
mousedown = 0: mouseup = 0
|
mousedown = 0: mouseup = 0
|
||||||
|
@ -4183,7 +4233,7 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mCLICK2 AND idecontextualmenu THEN 'A new right click in the text area repositions the contextual menu
|
IF mCLICK2 AND idecontextualmenu = 1 THEN 'A new right click in the text area repositions the contextual menu
|
||||||
IF mX > 1 AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN
|
IF mX > 1 AND mX < idewx AND mY > 2 AND mY < (idewy - 5) THEN
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
GOTO invokecontextualmenu
|
GOTO invokecontextualmenu
|
||||||
|
@ -4204,12 +4254,33 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mX < xx - 2 OR mX >= xx - 2 + w + 4 OR mY > yy + menusize(m) + 1 OR (mY < yy AND idecontextualmenu) THEN
|
IF parentMenu > 0 AND _
|
||||||
|
mX >= backToParent.x1 AND mX =< backToParent.x2 AND _
|
||||||
|
mY >= backToParent.y1 AND mY =< backToParent.y2 THEN
|
||||||
|
m = parentMenu
|
||||||
|
r = parentMenuR
|
||||||
|
parentMenu = 0
|
||||||
|
idecontextualmenu = 0
|
||||||
|
PCOPY 3, 2
|
||||||
|
_CONTINUE
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF mX < xx - 2 OR mX >= xx - 2 + w + 4 OR mY > yy + menusize(m) + 1 OR (mY < yy AND idecontextualmenu = 1) THEN
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
IF NOT mouseup AND NOT mousedown THEN 'Check if we're hovering on menu options
|
IF NOT mouseup AND NOT mousedown THEN 'Check if we're hovering on menu options
|
||||||
|
IF parentMenu > 0 AND oldmy <> mY AND oldmx <> mX AND _
|
||||||
|
mX >= backToParent.x1 AND mX =< backToParent.x2 AND _
|
||||||
|
mY >= backToParent.y1 AND mY =< backToParent.y2 THEN
|
||||||
|
m = parentMenu
|
||||||
|
r = parentMenuR
|
||||||
|
parentMenu = 0
|
||||||
|
idecontextualmenu = 0
|
||||||
|
PCOPY 3, 2
|
||||||
|
_CONTINUE
|
||||||
|
END IF
|
||||||
IF oldmy <> mY THEN
|
IF oldmy <> mY THEN
|
||||||
IF mX >= xx - 2 AND mX < xx - 2 + w + 4 THEN
|
IF mX >= xx - 2 AND mX < xx - 2 + w + 4 THEN
|
||||||
IF mY > yy AND mY <= menusize(m) + yy THEN
|
IF mY > yy AND mY <= menusize(m) + yy THEN
|
||||||
|
@ -4225,7 +4296,7 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
IF oldmx <> mX THEN
|
IF oldmx <> mX THEN
|
||||||
checkmenubarhover:
|
checkmenubarhover:
|
||||||
IF mY = 1 AND idecontextualmenu = 0 THEN 'Check if we're hovering on menu bar
|
IF mY = 1 AND idecontextualmenu <> 1 THEN 'Check if we're hovering on menu bar
|
||||||
lastm = m
|
lastm = m
|
||||||
FOR i = 1 TO menus
|
FOR i = 1 TO menus
|
||||||
x = CVI(MID$(MenuLocations, i * 2 - 1, 2))
|
x = CVI(MID$(MenuLocations, i * 2 - 1, 2))
|
||||||
|
@ -4233,6 +4304,7 @@ FUNCTION ide2 (ignore)
|
||||||
IF mX >= x AND mX < x2 THEN
|
IF mX >= x AND mX < x2 THEN
|
||||||
m = i
|
m = i
|
||||||
r = 1
|
r = 1
|
||||||
|
IF idecontextualmenu > 1 THEN idecontextualmenu = 0: PCOPY 3, 2
|
||||||
EXIT FOR
|
EXIT FOR
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
NEXT
|
||||||
|
@ -4245,7 +4317,6 @@ FUNCTION ide2 (ignore)
|
||||||
|
|
||||||
'top row
|
'top row
|
||||||
IF mY = 1 THEN
|
IF mY = 1 THEN
|
||||||
idecontextualmenu = 0
|
|
||||||
lastm = m
|
lastm = m
|
||||||
x = 3
|
x = 3
|
||||||
FOR i = 1 TO menus
|
FOR i = 1 TO menus
|
||||||
|
@ -4254,6 +4325,7 @@ FUNCTION ide2 (ignore)
|
||||||
m = i
|
m = i
|
||||||
r = 1
|
r = 1
|
||||||
IF lastm = m AND mousedown = 1 THEN PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: GOTO ideloop
|
IF lastm = m AND mousedown = 1 THEN PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: GOTO ideloop
|
||||||
|
idecontextualmenu = 0
|
||||||
EXIT FOR
|
EXIT FOR
|
||||||
END IF
|
END IF
|
||||||
x = x + x2
|
x = x + x2
|
||||||
|
@ -4271,8 +4343,31 @@ FUNCTION ide2 (ignore)
|
||||||
|
|
||||||
END IF 'mb
|
END IF 'mb
|
||||||
|
|
||||||
IF KB = KEY_LEFT AND idecontextualmenu = 0 THEN m = m - 1: r = 1
|
IF KB = KEY_LEFT AND idecontextualmenu = 0 THEN
|
||||||
IF KB = KEY_RIGHT AND idecontextualmenu = 0 THEN m = m + 1: r = 1
|
m = m - 1: r = 1
|
||||||
|
ELSEIF KB = KEY_LEFT AND idecontextualmenu > 1 THEN
|
||||||
|
idecontextualmenu = 0
|
||||||
|
PCOPY 3, 2
|
||||||
|
m = parentMenu
|
||||||
|
r = parentMenuR
|
||||||
|
parentMenu = 0
|
||||||
|
END IF
|
||||||
|
IF KB = KEY_RIGHT AND idecontextualmenu = 0 THEN
|
||||||
|
IF RIGHT$(menu$(m, r), 1) = CHR$(16) THEN
|
||||||
|
SELECT CASE LEFT$(menu$(m, r), LEN(menu$(m, r)) - 3)
|
||||||
|
CASE "#Line numbers"
|
||||||
|
idecontextualmenu = 2
|
||||||
|
GOTO showmenu
|
||||||
|
END SELECT
|
||||||
|
ELSE
|
||||||
|
m = m + 1: r = 1
|
||||||
|
END IF
|
||||||
|
ELSEIF KB = KEY_RIGHT AND idecontextualmenu > 1 THEN
|
||||||
|
idecontextualmenu = 0
|
||||||
|
PCOPY 3, 2
|
||||||
|
m = parentMenu + 1
|
||||||
|
r = 1
|
||||||
|
END IF
|
||||||
IF m < 1 THEN m = menus
|
IF m < 1 THEN m = menus
|
||||||
IF m > menus AND idecontextualmenu = 0 THEN m = 1
|
IF m > menus AND idecontextualmenu = 0 THEN m = 1
|
||||||
IF KB = KEY_ESC THEN
|
IF KB = KEY_ESC THEN
|
||||||
|
@ -4305,13 +4400,14 @@ FUNCTION ide2 (ignore)
|
||||||
x = INSTR(menu$(m, r2), "#")
|
x = INSTR(menu$(m, r2), "#")
|
||||||
IF x THEN
|
IF x THEN
|
||||||
a$ = UCASE$(MID$(menu$(m, r2), x + 1, 1))
|
a$ = UCASE$(MID$(menu$(m, r2), x + 1, 1))
|
||||||
IF K$ = a$ THEN s = r2: EXIT FOR
|
IF K$ = a$ THEN s = r2: updateMenuPanel%% = -1: EXIT FOR
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
NEXT
|
||||||
|
IF updateMenuPanel%% THEN r = r2: _CONTINUE
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF s THEN
|
IF s THEN
|
||||||
|
menuChoiceMade:
|
||||||
IF KALT THEN idehl = 1 ELSE idehl = 0 'set idehl, a shared variable used by various dialogue boxes
|
IF KALT THEN idehl = 1 ELSE idehl = 0 'set idehl, a shared variable used by various dialogue boxes
|
||||||
|
|
||||||
IF menu$(m, s) = "Comment (add ') Ctrl+R" THEN
|
IF menu$(m, s) = "Comment (add ') Ctrl+R" THEN
|
||||||
|
@ -4384,11 +4480,6 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF LEFT$(menu$(m, s), 16) = "~Decrease indent" OR menu$(m, s) = "~Increase indent TAB" THEN
|
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
|
||||||
GOTO ideloop
|
|
||||||
END IF
|
|
||||||
|
|
||||||
IF menu$(m, s) = "#Language..." THEN
|
IF menu$(m, s) = "#Language..." THEN
|
||||||
PCOPY 2, 0
|
PCOPY 2, 0
|
||||||
retval = idelanguagebox
|
retval = idelanguagebox
|
||||||
|
@ -4495,15 +4586,15 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF RIGHT$(menu$(m, s), 30) = "Save EXE in the source #folder" THEN
|
IF RIGHT$(menu$(m, s), 28) = "Output EXE to source #folder" THEN
|
||||||
PCOPY 2, 0
|
PCOPY 2, 0
|
||||||
SaveExeWithSource = NOT SaveExeWithSource
|
SaveExeWithSource = NOT SaveExeWithSource
|
||||||
IF SaveExeWithSource THEN
|
IF SaveExeWithSource THEN
|
||||||
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "TRUE"
|
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "TRUE"
|
||||||
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + "Save EXE in the source #folder"
|
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + "Output EXE to source #folder"
|
||||||
ELSE
|
ELSE
|
||||||
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "FALSE"
|
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "FALSE"
|
||||||
menu$(RunMenuID, RunMenuSaveExeWithSource) = "Save EXE in the source #folder"
|
menu$(RunMenuID, RunMenuSaveExeWithSource) = "Output EXE to source #folder"
|
||||||
END IF
|
END IF
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
|
@ -4812,6 +4903,65 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
IF menu$(m, s) = "#Line numbers " + CHR$(16) THEN
|
||||||
|
idecontextualmenu = 2
|
||||||
|
GOTO showmenu
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF menu$(m, s) = "#Show line numbers" THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
ShowLineNumbers = -1
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbers", "TRUE"
|
||||||
|
menu$(m, s) = "#Hide line numbers"
|
||||||
|
menu$(m, ViewMenuShowBGID) = MID$(menu$(m, ViewMenuShowBGID), 2)
|
||||||
|
menu$(m, ViewMenuShowSeparatorID) = MID$(menu$(m, ViewMenuShowSeparatorID), 2)
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF menu$(m, s) = "#Hide line numbers" THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
ShowLineNumbers = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbers", "FALSE"
|
||||||
|
menu$(m, s) = "#Show line numbers"
|
||||||
|
menu$(m, ViewMenuShowBGID) = "~" + menu$(m, ViewMenuShowBGID)
|
||||||
|
menu$(m, ViewMenuShowSeparatorID) = "~" + menu$(m, ViewMenuShowSeparatorID)
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF RIGHT$(menu$(m, s), 17) = "#Background color" THEN
|
||||||
|
IF LEFT$(menu$(m, s), 1) <> "~" THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
ShowLineNumbersUseBG = NOT ShowLineNumbersUseBG
|
||||||
|
IF ShowLineNumbersUseBG THEN
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersUseBG", "TRUE"
|
||||||
|
menu$(m, s) = CHR$(7) + "#Background color"
|
||||||
|
ELSE
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersUseBG", "FALSE"
|
||||||
|
menu$(m, s) = "#Background color"
|
||||||
|
END IF
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF RIGHT$(menu$(m, s), 15) = "Sho#w separator" THEN
|
||||||
|
IF LEFT$(menu$(m, s), 1) <> "~" THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
ShowLineNumbersSeparator = NOT ShowLineNumbersSeparator
|
||||||
|
IF ShowLineNumbersSeparator THEN
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersSeparator", "TRUE"
|
||||||
|
menu$(m, s) = CHR$(7) + "Sho#w separator"
|
||||||
|
ELSE
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "ShowLineNumbersSeparator", "FALSE"
|
||||||
|
menu$(m, s) = "Sho#w separator"
|
||||||
|
END IF
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
IF menu$(m, s) = "#Find... Ctrl+F3" THEN
|
IF menu$(m, s) = "#Find... Ctrl+F3" THEN
|
||||||
PCOPY 2, 0
|
PCOPY 2, 0
|
||||||
idefindjmp:
|
idefindjmp:
|
||||||
|
@ -5255,10 +5405,9 @@ FUNCTION ide2 (ignore)
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF LEFT$(menu$(m, s), 1) = "~" THEN 'Ignore disabled items (starting with "~")
|
IF LEFT$(menu$(m, s), 1) = "~" THEN 'Ignore disabled items (starting with "~")
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt: GOTO ideloop
|
_CONTINUE
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
||||||
SCREEN , , 0, 0
|
SCREEN , , 0, 0
|
||||||
CLS: PRINT "MENU ITEM [" + menu$(m, s) + "] NOT IMPLEMENTED!": END
|
CLS: PRINT "MENU ITEM [" + menu$(m, s) + "] NOT IMPLEMENTED!": END
|
||||||
END IF
|
END IF
|
||||||
|
@ -8148,7 +8297,7 @@ SUB ideshowtext
|
||||||
|
|
||||||
IF idecx < idesx THEN idesx = idecx
|
IF idecx < idesx THEN idesx = idecx
|
||||||
IF idecy < idesy THEN idesy = idecy
|
IF idecy < idesy THEN idesy = idecy
|
||||||
IF idecx - idesx >= (idewx - 2) THEN idesx = idecx - (idewx - 3)
|
IF (idecx + maxLineNumberLength) - idesx >= (idewx - 2) THEN idesx = (idecx + maxLineNumberLength) - (idewx - 3)
|
||||||
IF idecy - idesy >= (idewy - 8) THEN idesy = idecy - (idewy - 9)
|
IF idecy - idesy >= (idewy - 8) THEN idesy = idecy - (idewy - 9)
|
||||||
|
|
||||||
sy1 = ideselecty1
|
sy1 = ideselecty1
|
||||||
|
@ -8205,6 +8354,21 @@ SUB ideshowtext
|
||||||
LOCATE y + 3, 1
|
LOCATE y + 3, 1
|
||||||
COLOR 7, 1
|
COLOR 7, 1
|
||||||
PRINT CHR$(179); 'clear prev bookmarks from lhs
|
PRINT CHR$(179); 'clear prev bookmarks from lhs
|
||||||
|
|
||||||
|
IF ShowLineNumbers THEN
|
||||||
|
IF ShowLineNumbersUseBG THEN COLOR , 6
|
||||||
|
PRINT SPACE$(maxLineNumberLength);
|
||||||
|
IF l <= iden THEN
|
||||||
|
l2$ = STR$(l)
|
||||||
|
IF POS(1) - (LEN(l2$) + 1) >= 2 THEN
|
||||||
|
LOCATE y + 3, POS(1) - (LEN(l2$) + 1)
|
||||||
|
PRINT l2$;
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
IF ShowLineNumbersSeparator THEN LOCATE y + 3, 1 + maxLineNumberLength: PRINT CHR$(179);
|
||||||
|
COLOR , 1
|
||||||
|
END IF
|
||||||
|
|
||||||
IF l = idefocusline AND idecy <> l THEN
|
IF l = idefocusline AND idecy <> l THEN
|
||||||
COLOR 7, 4 'Line with error gets a red background
|
COLOR 7, 4 'Line with error gets a red background
|
||||||
ELSEIF idecy = l OR (l >= idecy_multilinestart AND l <= idecy_multilineend) THEN
|
ELSEIF idecy = l OR (l >= idecy_multilinestart AND l <= idecy_multilineend) THEN
|
||||||
|
@ -8218,7 +8382,7 @@ SUB ideshowtext
|
||||||
link_idecx = 0
|
link_idecx = 0
|
||||||
rgb_idecx = 0
|
rgb_idecx = 0
|
||||||
IF l = idecy THEN
|
IF l = idecy THEN
|
||||||
IF idecx <= LEN(a$) THEN
|
IF idecx <= LEN(a$) AND idecx >= 1 THEN
|
||||||
cc = ASC(a$, idecx)
|
cc = ASC(a$, idecx)
|
||||||
IF cc = 32 THEN
|
IF cc = 32 THEN
|
||||||
IF LTRIM$(LEFT$(a$, idecx)) = "" THEN cc = -1
|
IF LTRIM$(LEFT$(a$, idecx)) = "" THEN cc = -1
|
||||||
|
@ -8339,7 +8503,6 @@ SUB ideshowtext
|
||||||
|
|
||||||
a2$ = SPACE$(idesx + (idewx - 3))
|
a2$ = SPACE$(idesx + (idewx - 3))
|
||||||
MID$(a2$, 1) = a$
|
MID$(a2$, 1) = a$
|
||||||
'a2$ = RIGHT$(a2$, (idewx - 2))
|
|
||||||
ELSE
|
ELSE
|
||||||
a2$ = SPACE$((idewx - 2))
|
a2$ = SPACE$((idewx - 2))
|
||||||
END IF
|
END IF
|
||||||
|
@ -8525,9 +8688,16 @@ SUB ideshowtext
|
||||||
LOOP ' verifying the code and growing the array during the IDE passes.
|
LOOP ' verifying the code and growing the array during the IDE passes.
|
||||||
IF InValidLine(l) AND 1 THEN COLOR 7
|
IF InValidLine(l) AND 1 THEN COLOR 7
|
||||||
|
|
||||||
IF 2 + m - idesx >= 2 AND 2 + m - idesx < idewx THEN
|
IF ShowLineNumbers THEN
|
||||||
LOCATE y + 3, 2 + m - idesx
|
IF (2 + m - idesx) + maxLineNumberLength >= 2 + maxLineNumberLength AND (2 + m - idesx) + maxLineNumberLength < idewx THEN
|
||||||
PRINT thisChar$;
|
LOCATE y + 3, (2 + m - idesx) + maxLineNumberLength
|
||||||
|
PRINT thisChar$;
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
IF 2 + m - idesx >= 2 AND 2 + m - idesx < idewx THEN
|
||||||
|
LOCATE y + 3, 2 + m - idesx
|
||||||
|
PRINT thisChar$;
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
'Restore BG color in case a matching bracket was printed with different BG
|
'Restore BG color in case a matching bracket was printed with different BG
|
||||||
|
@ -8542,7 +8712,7 @@ SUB ideshowtext
|
||||||
IF sy1 = sy2 THEN 'single line select
|
IF sy1 = sy2 THEN 'single line select
|
||||||
COLOR 1, 7
|
COLOR 1, 7
|
||||||
x2 = idesx
|
x2 = idesx
|
||||||
FOR x = 2 TO (idewx - 2)
|
FOR x = 2 + maxLineNumberLength TO (idewx - 2)
|
||||||
IF x2 >= sx1 AND x2 < sx2 THEN
|
IF x2 >= sx1 AND x2 < sx2 THEN
|
||||||
a = SCREEN(y + 3, x)
|
a = SCREEN(y + 3, x)
|
||||||
|
|
||||||
|
@ -8566,10 +8736,10 @@ SUB ideshowtext
|
||||||
COLOR 7, 1
|
COLOR 7, 1
|
||||||
ELSE 'multiline select
|
ELSE 'multiline select
|
||||||
IF idecx = 1 AND l = sy2 AND idecy > sy1 THEN GOTO nofinalselect
|
IF idecx = 1 AND l = sy2 AND idecy > sy1 THEN GOTO nofinalselect
|
||||||
LOCATE y + 3, 2
|
LOCATE y + 3, 2 + maxLineNumberLength
|
||||||
COLOR 1, 7
|
COLOR 1, 7
|
||||||
|
|
||||||
FOR x = idesx TO idesx + idewx - 2
|
FOR x = idesx TO idesx + idewx - (2 + maxLineNumberLength)
|
||||||
PRINT MID$(a2$, x, 1);
|
PRINT MID$(a2$, x, 1);
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
@ -8606,7 +8776,7 @@ SUB ideshowtext
|
||||||
LOCATE idewy + idesubwindow, (idewx - 10) - LEN(a$)
|
LOCATE idewy + idesubwindow, (idewx - 10) - LEN(a$)
|
||||||
PRINT a$;
|
PRINT a$;
|
||||||
|
|
||||||
SCREEN , , 0, 0: LOCATE idecy - idesy + 3, idecx - idesx + 2: SCREEN , , 3, 0
|
SCREEN , , 0, 0: LOCATE idecy - idesy + 3, maxLineNumberLength + idecx - idesx + 2: SCREEN , , 3, 0
|
||||||
|
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
FindQuoteComment:
|
FindQuoteComment:
|
||||||
|
@ -13552,7 +13722,7 @@ SUB IdeMakeContextualMenu
|
||||||
a$ = idegetline(idecy)
|
a$ = idegetline(idecy)
|
||||||
a2$ = ""
|
a2$ = ""
|
||||||
x = idecx
|
x = idecx
|
||||||
IF x <= LEN(a$) THEN
|
IF x <= LEN(a$) AND x >= 1 THEN
|
||||||
IF alphanumeric(ASC(a$, x)) THEN
|
IF alphanumeric(ASC(a$, x)) THEN
|
||||||
x1 = x
|
x1 = x
|
||||||
DO WHILE x1 > 1
|
DO WHILE x1 > 1
|
||||||
|
|
Loading…
Reference in a new issue