1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-05 21:40:25 +00:00
Commit graph

925 commits

Author SHA1 Message Date
FellippeHeitor dd686b4071 Store variable creation data after regid is called. 2021-07-21 09:48:52 -03:00
FellippeHeitor f09bea827b Refines variable collection code ($DEBUG). 2021-07-21 09:30:48 -03:00
FellippeHeitor b9e65ceca5 Center target line when searching (F3, Ctrl+F3, Alt+F3). 2021-07-21 08:55:49 -03:00
FellippeHeitor fc95dd4d9e Prevents endless loop with F8 key (start paused). 2021-07-21 00:13:55 -03:00
FellippeHeitor 1cad7db996 Prevents adding goto re:undefined vWatch labels. 2021-07-21 00:02:15 -03:00
FellippeHeitor fb94a16bfe Adds Ctrl+P to skip line; Ctrl+Shift+G to run to line. 2021-07-20 22:48:14 -03:00
FellippeHeitor 2097f35a8b Implements "Run To This Line". 2021-07-20 22:28:03 -03:00
FellippeHeitor b56ceb924d Fixes vWatch labels not being added. 2021-07-20 20:11:45 -03:00
FellippeHeitor ba7a0d91d4 Implements contextual menu for $DEBUG mode. 2021-07-20 20:11:29 -03:00
FellippeHeitor ec807702ce Fixes Next lines not being "steppable". 2021-07-20 17:28:02 -03:00
FellippeHeitor 2ca6cb7c9a Improves vWatch label injection ($DEBUG). 2021-07-20 17:12:00 -03:00
FellippeHeitor 603cc585e8 Prevents issues when deleting lines in normal mode. 2021-07-20 17:11:16 -03:00
FellippeHeitor dfb33206b4 Fixes duplicate SKIP labels in some scenarios. 2021-07-20 13:16:06 -03:00
FellippeHeitor fe4575a181 Allows empty procedures when $DEBUG is present. 2021-07-20 13:08:09 -03:00
FellippeHeitor 9ade4aea75 Declares *vwatch_local_vars when there are no local vars. 2021-07-20 12:50:17 -03:00
Fellippe Heitor 19d22d4c9f Renames ide to ideHost in vwatch.bm 2021-07-20 11:56:24 -03:00
Fellippe Heitor 5406492be8 Changes the shortcut to skip line to Shift+click.
Minor visual changes to breakpoint/skip line indicators.
2021-07-20 11:55:31 -03:00
FellippeHeitor fcc243f902 Moves breakpoints and line skips when deleting lines. 2021-07-20 03:11:16 -03:00
FellippeHeitor adf963b007 Allows toggling "Skip Line" before starting program.
Ctrl+Line number or
Debug->Toggle Skip Line
2021-07-20 03:02:29 -03:00
FellippeHeitor 5e53786255 Implements "Skip Line"
Ctrl+P to set line to skip.
Ctrl+Line Click to set line to skip with mouse.
2021-07-20 02:50:54 -03:00
FellippeHeitor aefde3eb55 Implements Set Next Line.
Allows arbitrarily changing the execution order from the IDE.
Ctrl+G in $DEBUG mode to launch the Set Next Line dialog.
2021-07-20 01:06:30 -03:00
FellippeHeitor 4d17873952 Allows END IF and END SELECT to be steppable. 2021-07-19 23:13:00 -03:00
FellippeHeitor 10ce193ba9 Prevents showing the call stack dialog when it's empty. 2021-07-19 22:55:03 -03:00
FellippeHeitor 655f1e3b19 Sends call stack to IDE when an error occurs. 2021-07-19 22:25:15 -03:00
FellippeHeitor d1249d25d5 Send the IDE data when the proram is closing via X button. 2021-07-19 18:08:04 -03:00
FellippeHeitor 328c5ec668 Handles the call stack data sent after a program closes. 2021-07-19 17:23:02 -03:00
FellippeHeitor bb032b6b75 Adds View->Call stack. 2021-07-19 17:12:48 -03:00
FellippeHeitor b389cc07e9 Adds "Start Paused" to Debug menu.
Shortcut is F8.
2021-07-19 16:46:42 -03:00
FellippeHeitor c27d20590f Allows navigating the code while in $DEBUG mode. Also:
- An arrow now indicates the line that will be run next when in Pause mode.
- F2 can trigger the SUBs dialog while in $DEBUG mode.
2021-07-19 14:55:27 -03:00
FellippeHeitor 403e45b2c4 Centers current line while debugging.
It now centers the current line when using QuickNav too.
2021-07-19 12:46:37 -03:00
FellippeHeitor 43c2dbc984 Keeps timers disabled when stepping ($DEBUG). 2021-07-19 02:30:40 -03:00
FellippeHeitor bfe081b421 Handles STOP as a regular breakpoint in $DEBUG mode. 2021-07-19 02:30:16 -03:00
FellippeHeitor 05d5086682 Prevents "ghost" variables from being added to watch list. 2021-07-19 02:29:13 -03:00
FellippeHeitor 6a1ec42b4d Keep call history in the debuggee; send per request.
Unless we had two channels, one to send the stack, another for real time commands, execution would be really slowed down.
2021-07-19 01:59:49 -03:00
FellippeHeitor de236d4a5f Uses ENVIRON to set send the port number to the debuggee. Also:
- Limits sending "call" info to the IDE (not to hog the communication channel)
- Add $INCLUDE info to call stack.
2021-07-19 00:59:54 -03:00
FellippeHeitor 2f61b9e541 Tweak to previous commit.
`id` can change from the initial line to the last on in this commit. These changes prevent issues with that.
2021-07-18 22:16:16 -03:00
FellippeHeitor 8d35b87fd1 Initial implementation of call stack ($DEBUG). 2021-07-18 22:02:41 -03:00
FellippeHeitor c59cef04d7 Allows sub/functions to be reported in $INCLUDEs.
Reorganizes source/utilities.
2021-07-17 17:25:48 -03:00
FellippeHeitor df691cc3f2 Adds code to send "end signal" even with $CHECKING:OFF. ($DEBUG) 2021-07-17 17:11:02 -03:00
Fellippe Heitor ee4b611056 Adds _EnvironCount 2021-07-17 12:15:00 -03:00
Fellippe Heitor ae887507c2 On error, report back to the IDE. ($DEBUG) 2021-07-16 23:18:46 -03:00
Fellippe Heitor 78fb2ff1b9 Reduces parameters in SUB_VWATCH()
Since `vwatch_linenumber` is a shared variable, it doesn't need to be 
passed to `SUB_VWATCH()`.
2021-07-16 18:51:35 -03:00
Fellippe Heitor 88e2a1fa83 Nooooow it seems proper. 2021-07-16 12:11:41 -03:00
Fellippe Heitor 8d29964587 Reenables detection of undefined arrays. 2021-07-16 12:06:06 -03:00
Fellippe Heitor 4e5c35bb7f Prevents 'fake' variables from showing up.' 2021-07-16 11:59:17 -03:00
Luke Ceddia 2b86bdcef2
Add local command (broken) 2021-07-16 22:47:52 +10:00
Fellippe Heitor af2de0f24e Merge development 2021-07-16 09:25:13 -03:00
Luke Ceddia 809c1fe016
Fix cast of vwatch_local_vars 2021-07-16 16:29:04 +10:00
Fellippe Heitor df56b030f1 Makes sure only vars and arrays are added 2021-07-16 02:26:14 -03:00
Fellippe Heitor e95e8a4825 Adds undeclared variables too 2021-07-16 01:23:46 -03:00
Fellippe Heitor 8109b81ef7 Adds Step Out 2021-07-16 01:09:27 -03:00
Luke Ceddia 8829518adf
Send var-address init code to maindata.txt instead of global.txt 2021-07-16 14:07:27 +10:00
Fellippe Heitor 74d2e0853a END and SYSTEM send a 'quit' signal to the IDE 2021-07-16 00:52:06 -03:00
Fellippe Heitor 0217fa2a5e Adds F10 to clear all breakpoints
Also, visual tweaks.
2021-07-16 00:34:23 -03:00
Fellippe Heitor b748f7b209 Allows toggling breakpoints while running. 2021-07-16 00:02:56 -03:00
Fellippe Heitor 16b2c82b2f New Debug menu
The IDE now offers to add  when the user attempts to set a breakpoint.
2021-07-15 23:57:54 -03:00
Fellippe Heitor 5f3075ec3e Allows setting breakpoints while running using the mouse 2021-07-15 20:29:33 -03:00
Fellippe Heitor f0751243ef Begins work for variable watching 2021-07-15 17:00:31 -03:00
FellippeHeitor eede761f97 Allows OPTION _EXPLICIT/_EXPLICITARRAY to be anywhere.
They can be duplicate now too. And coexist.
2021-07-15 03:34:08 -03:00
FellippeHeitor ad3ae35810 Allows $NOPREFIX to be placed anywhere.
Also allows it to play nice with $DEBUG.
2021-07-15 03:14:53 -03:00
FellippeHeitor 68eb0b649c Fixes #172. 2021-07-15 02:32:03 -03:00
FellippeHeitor aa3350ff27 Binds F7 to Step Over. 2021-07-15 01:50:48 -03:00
FellippeHeitor c2192f9340 Display breakpoint indicator when line numbers are hidden ($DEBUG). 2021-07-15 01:36:57 -03:00
FellippeHeitor f3cd0b08bb Bypasses $INCLUDE lines ($DEBUG Mode) 2021-07-15 01:14:33 -03:00
FellippeHeitor af454940e4 Adds TIMER ON control over the debuggee. 2021-07-15 01:13:50 -03:00
FellippeHeitor ea7c90c6c0 F8 now runs a full line if there are multiple statements. Also:
Consistent coloring of breakpoints in the side bar.
Breakpoints are hidden if $DEBUG is removed.
F9 only sets breakpoints if $DEBUG is active.
2021-07-15 00:32:35 -03:00
FellippeHeitor 9f8095a212 Allows pausing more statements.
IF, SELECT, END statements were initially excluded from stepping.
2021-07-15 00:08:36 -03:00
FellippeHeitor b54de08aa3 Implements Step Over for $DEBUG mode
Using Shift+F8 when stepping line by line when on a line of code that contains a SUB/FUNCTION call, the sub-procedure lines will be run without entering the block of code, and execution will resume in the next line of code after the SUB/FUNCTION call.
2021-07-14 21:56:17 -03:00
FellippeHeitor b5cdf1590e Allows $DEBUG to be added anywhere in the code. 2021-07-14 20:34:47 -03:00
FellippeHeitor ca11243112 Fixes "double pause" in $DEBUG mode.
When a breakpoint was reached, it'd be necessary to hit F8 twice to step into the next line.
2021-07-14 00:08:20 -03:00
FellippeHeitor 3e90e7ff45 Improves path resolution for $DEBUG mode. 2021-07-13 21:19:53 -03:00
Fellippe Heitor 6fed9ea250 Improves $DEBUG mode connection and operation. 2021-07-13 18:06:32 -03:00
Luke Ceddia d03207e955
Link with data even when using $console:only
Closes #151
2021-07-13 16:58:12 +10:00
Fellippe Heitor 88ab0369c0 Restores cursor position when navigating with QuickNav. 2021-07-13 00:40:11 -03:00
Fellippe Heitor f204d5685b Attempts to become host when $DEBUG is first detected.
Instead of waiting for F5.
2021-07-12 12:54:23 -03:00
Fellippe Heitor 5eb034eeef Tweaks to connection between IDE and program.
Also: makes it compatible with Option _Explicit
2021-07-12 12:45:05 -03:00
Fellippe Heitor a472d1aab9 Fixes not being able to add lines to a program. 2021-07-11 22:03:55 -03:00
Fellippe Heitor 19219dbfe5 $DEBUG mode now in working state.
F9 (or clicking a line number) will toggle a breakpoint; When running a 
program, F8 will pause/step line by line, F9 will still be usable to 
toggle breakpoints and F5 will continue execution. ESC exits $DEBUG 
mode.
2021-07-11 21:05:03 -03:00
Fellippe Heitor 7b853bf9f2 First attempt at implementing Step. 2021-07-11 12:55:49 -03:00
Fellippe Heitor b59aa4d7af Begins prototyping a $DEBUG metacommand. 2021-07-09 08:08:49 -03:00
Zachary Spriggs 272b68ddcf Automatically generate manifest file and link
Automatically generate and link manifest file to EXE if a version info value is set. The XML file will use CompanyName, ProductName, and FileDescription as values. This will allow for use of Common Controls v6.0 without keeping a manifest file in the same directory as the executable.
2021-07-07 23:20:38 -04:00
Fellippe Heitor 29d01706e2 Normalizes help references for internally handled commands. 2021-06-23 16:38:41 -03:00
Fellippe Heitor 89f695ea0b Makes Status bar command reference colorized 2021-06-23 14:03:40 -03:00
Fellippe Heitor 6181fe54e4 Adds "quick reference" look up for the IDE.
Shows a quick syntax reference once it detects what command one is 
trying to use
2021-06-20 00:04:08 -03:00
Luke Ceddia 7cc7618b8c
Revert 21984092 & 3c829db8 due to compiler failures introduced 2021-06-14 17:59:39 +10:00
Fellippe Heitor 219840929e Turns DEPENDENCY_... into variables instead of Consts 2021-06-03 00:04:02 -03:00
Fellippe Heitor 9d08c78dfc Prevent errors with literal string Consts 2021-05-27 20:08:45 -03:00
Fellippe Heitor fa7ad406f6 Prevents () in comments after SUBs from being displayed in Subs Dialog. 2021-05-23 12:20:34 -03:00
Fellippe Heitor 9d20796505 Prevents CONST errors with string functions.
CHR$ et al are not allowed in CONSTS. That's explicit now.
2021-05-21 21:02:20 -03:00
Zachary Spriggs 8484d0fb14 Revert "Fix bug with _BIT variables in functions"
This reverts commit b023f4074b.
2021-04-09 18:07:38 -04:00
Zachary Spriggs b023f4074b Fix bug with _BIT variables in functions
This fix references forum post https://www.qb64.org/forum/index.php?topic=3794.msg131521#msg131521

A C++ error would occur when using a `_BIT` variable as a function argument because our current handling of the translation would reinitialize the variable in the function. This is called shadowing a parameter. I have commented out the line that was causing the error. The code that was provided in the forum post works successfully with this fix.
2021-04-09 12:35:51 -04:00
Fellippe Heitor 7e3de309ce Fixes one more colorization issue
Scientific notation, again.
2021-03-19 11:46:52 -03:00
Zachary Spriggs 3062ca078a
fix indentation 2021-03-19 10:12:29 -04:00
Zachary Spriggs 92865ace3b
Makes $CONSOLE:ONLY set _Source to _Console
With v1.5 release, _Dest _Console would automatically be set but not _Source _Console. This change sets the _Source to _Console.
2021-03-19 10:11:31 -04:00
Doug Kearns f6f7de6d87 Fixes sloppy parsing of array sub arguments
The following now produces a syntax error for the missing closing
parenthesis of the parameter list.

E.g. sub foo(bar(): end sub
2021-03-14 20:30:15 +11:00
Fellippe Heitor bd0457e068 Merge branch 'development' of https://github.com/QB64Team/qb64 into development 2021-03-10 17:22:56 -03:00
Fellippe Heitor 532ade2d8e Makes strings.bas $includable by option _explicit projects 2021-03-10 17:22:37 -03:00
Fellippe Heitor 16109a1d42
Merge pull request #144 from dkearns/fix-missing-source-file-message [ci-skip]
Fixes whitespace of missing source file error message
2021-03-09 08:49:43 -03:00
Doug Kearns b8e43388da Fixes whitespace of missing source file error message 2021-03-09 22:35:11 +11:00
Fellippe Heitor 692e28b0da Indicates (options->display) that window pos isn't stored (lnx). 2021-03-07 11:39:05 -03:00
Luke Ceddia 7ab6b0ffd9
Merge pull request #143 from dkearns/fix-invalid-s-flag-return-code
Fixes the exit status for invalid -s args
2021-03-07 23:37:07 +11:00
Doug Kearns e21a84c170 Fixes the exit status for invalid -s args 2021-03-07 22:54:32 +11:00
Fellippe Heitor 6ada6a475d Fixes error in contextual menu.
Right-clicking a series of high-ascii characters would crash the ide 
when right-clicking to open the contextual menu.
2021-03-05 14:38:46 -03:00
Fellippe Heitor 45997e62e4 Changes version number to carry on with patches. 2021-03-05 11:09:42 -03:00
Doug Kearns 7d19a660dd Updates wiki parser to deal with PageAvailability wiki template 2021-03-06 00:35:19 +11:00
FellippeHeitor 30431161f9 Fixes Out of Memory error in Windows (SUBs dialog) 2021-02-28 15:23:57 -03:00
Fellippe Heitor f77a643042 Updates help files and version info for release. 2021-02-28 11:47:33 -03:00
Fellippe Heitor a7bdcfe053 Prevents CONST from being used between SUBs. 2021-02-26 00:51:07 -03:00
Doug Kearns c506f7f8fe Improves IDE highlighting of trailing $DYNAMIC/$STATIC metacommands
Only one of $DYNAMIC or $STATIC is processed, the last appearing in a
metacommand line, so highlight only that rather than the last appearance
of each.

Improves commmit af2752602f.
2021-02-23 00:15:13 +11:00
Fellippe Heitor af2752602f Indicates visually that only the last metacommand is valid.
Since multiple $INCLUDE, $DYNAMIC and $STATIC are valid in a comment 
line, but only the last occurrence is valid, the syntax highlighter now 
indicates that too.
2021-02-21 12:31:53 -03:00
Fellippe Heitor 716b984e94 Adapts sh to consider the last $include in a line valid. 2021-02-21 11:53:57 -03:00
Doug Kearns 45d1fed31f Changes metacommand parsing to match QuickBasic 4.5
QB45 allows multiple metacommands to appear in a single line and
$INCLUDE is not required to be the last.

Only the last appearance of $INCLUDE, and of $DYNAMIC or $STATIC, is
processed. Earlier appearances of metacommands are ignored.

E.g., the following includes only b.bas and configures static array
allocation
REM $INCLUDE:'a.bas' $DYNAMIC $INCLUDE:'b.bas' $STATIC
2021-02-21 23:45:24 +11:00
Fellippe Heitor 156996b4f9 Warns user that labels are not valid between subs. 2021-02-20 20:37:37 -03:00
Fellippe Heitor 774707c584 Properly colorizes 32BIT and 64BIT in $IF blocks. 2021-02-18 19:39:22 -03:00
Fellippe Heitor 7a26a4a5ba Fixes layout of $IF blocks with operators like >, <, etc. Also:
Colorizes internal special variables/values as part of the $IF 
metacommand. (DEFINED, UNDEFINED, WINDOWS, WIN, LINUX, MAC, MACOSX, 
32BIT, 64BIT, VERSION).
2021-02-18 15:07:07 -03:00
Fellippe Heitor 8ba61a7b57
Aligns template name with existing ones. 2021-02-17 09:40:39 -03:00
Doug Kearns 32b207b812 Updates wiki parser to deal with Parameters wiki template. 2021-02-17 18:13:08 +11:00
Fellippe Heitor 1272892425 Fixes $LET being incorrectly placed in the IDE while editing. 2021-02-15 21:22:57 -03:00
Fellippe Heitor 339b82d1b0 Reduces width of column Line Count (SUBs dialog) 2021-02-15 20:57:37 -03:00
Fellippe Heitor 3d4d5366bd Fixes number color not being reset at ESC (Ide Colors box). 2021-02-15 16:16:29 -03:00
Fellippe Heitor 9c3d8c827c Updates wiki parser to deal with new wiki templates. 2021-02-15 15:54:36 -03:00
Fellippe Heitor 0fa3447003 Hides line numbers BG when editing IDE color scheme. 2021-02-15 14:15:47 -03:00
Fellippe Heitor 6268140512 Improves column flexibility (SUBs dialog) 2021-02-15 13:46:10 -03:00
Fellippe Heitor 5778275cc0 Improves Sub line count (SUBs dialog). 2021-02-15 11:28:32 -03:00
Fellippe Heitor 24aafb4718 Fixes Sub arguments being trimmed prematurely (SUBs box). 2021-02-15 09:40:09 -03:00
Fellippe Heitor 057463104a Merge branch 'development' of https://github.com/QB64Team/qb64 into development 2021-02-15 04:54:23 -03:00
Fellippe Heitor 9cd5c17a22 Visual improvements to SUBs dialog. 2021-02-15 03:57:38 -03:00
FellippeHeitor 731e9cd0df Fixes low ASCII characters showing up in Warnings box. 2021-02-14 00:53:14 -03:00
Fellippe Heitor 0ecdc8fa91 Fixes wiki parsing.
Some tags were being left untouched.
2021-02-13 14:45:32 -03:00
Fellippe Heitor b71655d46c Fixes idesubs$ crashing when cursor is at symbol. 2021-02-13 06:22:14 -03:00
Fellippe Heitor 0a79540ce5 Fixes getWordAtCursor$ crashing at contiguous spaces. 2021-02-12 23:05:32 -03:00
Fellippe Heitor 968d8ad446 Allows Shift+ENTER to work like regular ENTER...
...if no special _RGB32() trick is at play.
2021-02-11 21:53:06 -03:00
Fellippe Heitor ccb9c2f74f Fine tunes status bar links. 2021-02-10 20:16:44 -03:00
Fellippe Heitor a08d90bd65 Fixes CONST names not maintaining case in STRING * const
DIM variable AS STRING * const would have CONST always turn capitals or 
camel case.
2021-02-10 18:18:41 -03:00
Fellippe Heitor 6f7c97db85 Improves contextual detection of help topic 2021-02-09 23:32:34 -03:00
Fellippe Heitor 7492260746 Fixes warning dialog showing weird characters. 2021-02-09 17:27:40 -03:00
Fellippe Heitor e5f8aa23ce Fixes selection of last character onscreen not looking selected. 2021-02-09 16:51:49 -03:00
Fellippe Heitor 35eac42235 Tries harder to find include files for double-clicking 2021-02-09 16:46:34 -03:00
Fellippe Heitor 1c5711f15e Retreats 'shift+enter to close block'.
Until a more efficient approach comes up, at least.
2021-02-08 10:58:02 -03:00
Fellippe Heitor 8c1b05f428 Fixes console colors during compilation (*nix).
Turns out the color palette isn't really the same as in Windows.
2021-02-08 07:56:43 -03:00
Fellippe Heitor 346b50d80a Reduces INI-Manager to the bare minimum. 2021-02-07 23:07:56 -03:00
Fellippe Heitor bada3e0a99 Rewords some messages. 2021-02-07 22:55:12 -03:00
Fellippe Heitor eac3074e30 Incorporates INI-Manager to deal with the settings file.
Allows for multiple IDE instances using the same config file by default.
2021-02-07 22:01:53 -03:00
Fellippe Heitor 4411386ac6 Replaces some more wiki garbage before rendering help. 2021-02-06 20:16:51 -03:00
Fellippe Heitor 765472a34d Adds _LIMIT to Update Help dialog. Updates help files. 2021-02-06 18:51:34 -03:00
Fellippe Heitor 249d0549eb Fixes highlighting of scientific notation numbers. Again. 2021-02-06 18:27:00 -03:00
Fellippe Heitor 796974c04d Adds commit number, if available, to error reports. 2021-02-06 15:04:07 -03:00
Fellippe Heitor baf8e70de4 Tweaks File menu to show more recent files.
With links (numbers) to open said recent files.
2021-02-06 05:22:53 -03:00
Fellippe Heitor 63b0bd777a Shows description of menu items in the status bar. 2021-02-06 03:44:31 -03:00
Fellippe Heitor 87053de3dc Makes the hotkey to Clear Recent (File menu) unique. 2021-02-06 01:16:54 -03:00