1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-26 17:10:38 +00:00
Commit graph

629 commits

Author SHA1 Message Date
FellippeHeitor f279839a7b Reduces number of commands to get a variable's value. 2021-08-17 00:47:13 -03:00
FellippeHeitor eeff3207d6 Preliminary work to watch arrays (native types).
Strings not working yet.
2021-08-16 01:32:07 -03:00
FellippeHeitor c2ce0df83f Allows searching for variables using multiple terms (watch list). 2021-08-15 22:53:54 -03:00
FellippeHeitor 1b5c21817b Allows jumping to the line that called a procedure (call stack). 2021-08-15 21:16:26 -03:00
FellippeHeitor 3c775df2a4 Fixes Watch List coming out incomplete when a filter was active. 2021-08-15 20:21:06 -03:00
FellippeHeitor e728e28e3b Fixes next line indicator not showing with line numbers turned off. 2021-08-15 20:02:37 -03:00
FellippeHeitor ecfb439ff0 Changes communication protocol so it doesn't rely on end markers.
The message length precedes the message, so no <END> marker is required anymore.
2021-08-15 13:56:22 -03:00
FellippeHeitor bfed027740 Minor visual tweaks. 2021-08-14 22:30:40 -03:00
FellippeHeitor a15d6622d3 Darkens screen while waiting for INPUT/LINE INPUT ($DEBUG). 2021-08-14 22:11:11 -03:00
FellippeHeitor 2af2f4e2a1 Improves handling/signaling of INPUT/LINE INPUT in $DEBUG mode. 2021-08-14 21:28:21 -03:00
FellippeHeitor d2cf042c45 Makes vwatch.bm try harder to send its own hWnd. 2021-08-14 21:27:57 -03:00
FellippeHeitor f7fe97390a Changes resize handle on vWatch panel to chr$(254) again. 2021-08-14 15:26:57 -03:00
FellippeHeitor ea09964163 Properly indicates that compilation with F7/8 has been requested. 2021-08-14 15:24:10 -03:00
FellippeHeitor 5756e31371 Requests only elements, shows the variable preset. 2021-08-14 11:36:26 -03:00
FellippeHeitor b4a7ca03c4 Display internal error when trying to watch an invalid UDT. 2021-08-13 11:51:52 -03:00
FellippeHeitor 4fed87994b New prototype for manually entering UDT elements to watch.
Allows user to type element to watch; uses `udtreference()` to fetch the element offset to access.
Non-functional yet, just shows a messagebox with the result.
Looks promising.
2021-08-13 10:21:15 -03:00
FellippeHeitor cca1593f79 Switches focus to IDE automatically when breakpoint is reached.
Windows-only.
2021-08-12 23:00:43 -03:00
FellippeHeitor f9ab61ad51 Improves insertion of $Debug automatically (F7/F8). 2021-08-11 01:35:29 -03:00
FellippeHeitor 670dfe6da8 Makes "wait for compilation" message a status message. 2021-08-11 00:39:55 -03:00
FellippeHeitor 2e3f987c8e Prototype of dialog to select UDT elements. 2021-08-09 00:57:32 -03:00
FellippeHeitor 934e555cf5 Fixes behavior of repeat search shortcuts. 2021-08-09 00:18:48 -03:00
FellippeHeitor 757ee19f2b Allows Ctrl+\ to be used as a shortcut to repeat search. 2021-08-08 13:31:16 -03:00
FellippeHeitor 4ce6e3017c Reinstates legacy clipboard shortcuts in dialogs.
Ctrl+Insert, Shift+Insert and Shift+Delete as alternatives to Ctrl+C, Ctrl+V and Ctrl+X in dialogs.
2021-08-08 13:16:11 -03:00
FellippeHeitor 17bb0ffaca Prevents "Purge C++ libraries" from triggering recompilation. 2021-08-07 19:26:00 -03:00
FellippeHeitor da76d340c9 Improves on management of watch list (arrays).
`variableWatchList$` now contains:
- MKL$(length of the longest var name)
- MKL$(index in usedVariableList) + MKL$(array index) (= 0 if not an array)
- ...
2021-08-07 01:38:42 -03:00
FellippeHeitor 08954e0039 Prevents toggling items with accidental double-clicks (Watch List). 2021-08-06 23:11:17 -03:00
FellippeHeitor 445f192848 Simplifies array range selection (Watch List). 2021-08-06 22:59:08 -03:00
FellippeHeitor faf6b2dcdd Begins work to fetch array indexes. 2021-08-05 01:56:19 -03:00
FellippeHeitor e23f7f6905 Aligns array types properly in Watch Llist dialog. 2021-08-05 01:51:20 -03:00
FellippeHeitor 4df2ada743 Adds interface to select which array indexes to watch. 2021-08-05 01:27:57 -03:00
FellippeHeitor 600fa69786 Allows setting fixed-length strings from the IDE.
Displaying them was buggy too, due to them having CHR$(0) before being initialized.
2021-08-03 15:14:18 -03:00
FellippeHeitor e737219d75 Allows $Debug to work ok with $NoPrefix data types. 2021-08-03 04:18:42 -03:00
FellippeHeitor c57eab997e Allows sending variable data even before reading addresses. 2021-08-03 04:08:58 -03:00
FellippeHeitor 359aa7ab2d Merge branch 'var-export' of https://github.com/QB64Team/qb64 into var-export 2021-08-03 00:37:45 -03:00
FellippeHeitor 01a3c56685 Allows setting any length string variables from the IDE. 2021-08-03 00:36:21 -03:00
Fellippe Heitor 542c72fc2c Prevents disconnection on macOS
Need to check if in Linux it was disconnecting randomly too.
2021-08-02 15:00:00 -03:00
FellippeHeitor e84dffbc27 Allows both F7 and F8 to start paused. 2021-08-01 20:28:03 -03:00
FellippeHeitor 1573e2aa47 Minor visual tweaks to Watch List dialog. 2021-08-01 20:09:44 -03:00
FellippeHeitor b49d2e7326 Fixes "set address" 2021-08-01 19:15:37 -03:00
FellippeHeitor cad9e407d8 First attempt at "set address". Nonworking state. 2021-08-01 18:14:14 -03:00
FellippeHeitor 00baa348e0 Allows CTRL+C to copy the variable watch list to clipboard. 2021-08-01 13:27:40 -03:00
FellippeHeitor 16841c56f1 Clears most recent value of variables when out of scope. 2021-08-01 12:08:16 -03:00
FellippeHeitor f1eb6787a9 Allows filtering variables in Watch List dialog.
Filter works for name, type and scope.

Also: Begins work to allow sending variable data.
2021-08-01 03:35:48 -03:00
FellippeHeitor fdf332b3e5 Checks whether execution is in a sub/function before F6 acts. 2021-08-01 01:51:51 -03:00
FellippeHeitor f682815ca3 Fixes status word wrapper error. 2021-08-01 01:23:53 -03:00
FellippeHeitor f527d9058b Reworks some internals of listbox controls (dialogs). 2021-08-01 00:56:29 -03:00
FellippeHeitor c0ed807aa6 Show current sub name in Watch List. 2021-07-31 20:07:24 -03:00
FellippeHeitor 5e4c3baa4b Adds Copy button to call stack log dialog. 2021-07-31 19:47:12 -03:00
FellippeHeitor 304a33f404 Fixes loading file names beginning with numbers. 2021-07-31 19:34:32 -03:00
FellippeHeitor 6451133f3c Prevents showing variable list before compilation ends.
Also: rewords message box titles.
2021-07-31 19:12:26 -03:00
FellippeHeitor 56a61321d1 Adds word-wrapping to status area error messages. 2021-07-31 19:11:53 -03:00
FellippeHeitor 0f82c6320f Detects when the debuggee closes (connection lost). 2021-07-31 17:44:58 -03:00
FellippeHeitor 96c7c08b22 Swaps F7 and F8. 2021-07-31 03:11:45 -03:00
FellippeHeitor f56f85323a Prevents terminal from showing up when launching wiki. 2021-07-31 02:53:01 -03:00
FellippeHeitor a1ca1f4746 Fixes path changing routine in file dialog. 2021-07-31 02:28:56 -03:00
FellippeHeitor adf4d50f6e Fixes issue causing problems with multiple instances of the IDE.
For future generations: STATIC array in a SUB/FUNCTION has something broken. So broken it breaks other stuff with it. Requires investigation.
2021-07-30 19:30:06 -03:00
FellippeHeitor 755bc2f260 Finishes reverting b8e6d29959 2021-07-30 14:37:56 -03:00
Fellippe Heitor 3480d74d32 Reduces preventable errors (IDE). 2021-07-30 12:03:49 -03:00
Luke Ceddia b8e6d29959
Use _cv/_mk for passing _offsets 2021-07-31 00:46:10 +10:00
Fellippe Heitor cade46d545 Prevents Watch List from showing before compilation ends 2021-07-29 15:08:04 -03:00
Fellippe Heitor 132cae7f72 Requests variable values as soon as they're added to watch list. 2021-07-29 12:24:50 -03:00
Fellippe Heitor f816013e8d Adjusts status message colors. 2021-07-29 12:07:31 -03:00
Fellippe Heitor 9ad93c183f More work on menus.
Debug menu gets a `Purge` option for C++ libraries and the Advanced 
dialog gets moved there too.
2021-07-29 02:34:54 -03:00
Fellippe Heitor f140d3e830 Reworks dialogs to take up less screen space.
Dialogs that present lists were being sized to take up the whole IDE area. This makes them more content-aware.
2021-07-29 01:47:51 -03:00
Fellippe Heitor 9a2922fb67 Reorganizes some Debug-related menu items. 2021-07-29 01:46:34 -03:00
Fellippe Heitor 45a2d443b3 Fixes Recent Files dialog (*nix) 2021-07-29 01:44:00 -03:00
Fellippe Heitor 896ac750fd Bottom panel is now interactive/adaptive to window Width 2021-07-28 19:39:45 -03:00
Fellippe Heitor 5495e4d3ba Resets variable values from previous run. 2021-07-28 18:00:19 -03:00
Fellippe Heitor f086aaec95 Allows inspecting _offset variables (watch list). 2021-07-28 14:36:30 -03:00
Fellippe Heitor 93308fef39 One less error in the IDE (SUB idegotoline) 2021-07-28 14:28:41 -03:00
Fellippe Heitor fa96640624 Adjusts " View on Wiki " link.
Fixes launching of urls with some special characters.
2021-07-28 13:47:18 -03:00
Fellippe Heitor 8de0ca17f6 Improves on scroll bar behavior (watch panel) 2021-07-28 12:07:02 -03:00
Fellippe Heitor e2e8ea16ea Adjusts wiki linking feature (help panel). 2021-07-28 02:46:05 -03:00
FellippeHeitor 6773a82924 Adds "View on Wiki" button to help panel. 2021-07-28 02:25:27 -03:00
FellippeHeitor bad61fd840 Adds horizontal scroll bar to Watch List panel. 2021-07-28 01:45:06 -03:00
FellippeHeitor c3c2a7e374 Adds new red "x" button to close the Help Panel. 2021-07-28 01:44:19 -03:00
FellippeHeitor 5829744cc4 Adds vertical scrollbar to Watch List panel. 2021-07-28 00:23:35 -03:00
FellippeHeitor 014add19d7 Adjusts resizing, dragging and scrolling (mousewheel) of var panel. 2021-07-27 19:15:48 -03:00
FellippeHeitor 023518ea21 Adds variable watch panel. 2021-07-27 17:50:23 -03:00
FellippeHeitor 6a04700026 F4 now pauses execution before showing the var watch dialog. 2021-07-27 13:40:20 -03:00
FellippeHeitor 5e2f40c4f1 Ignores local variable requests when out of scope. 2021-07-27 12:18:50 -03:00
FellippeHeitor 96ce163800 Mere code auto-layout. 2021-07-27 08:52:13 -03:00
Luke Ceddia 7e4a5b9799
Add support for inspecting string variables 2021-07-27 17:09:28 +10:00
FellippeHeitor a2a49cef01 Allows local variables to be watched (still a bit broken). 2021-07-27 00:28:03 -03:00
FellippeHeitor 426b26b002 Watches INTEGER, UINTEGER, LONG, ULONG, SINGLE, DOUBLE variables.
Only in the main module for now.
2021-07-26 23:56:48 -03:00
FellippeHeitor 84b5bb3055 Wishful attempt at getting var export to work. Failed. 2021-07-26 17:34:44 -03:00
FellippeHeitor cedff4ef5a Groundwork for variable requesting from the IDE (nonworking state).
The _MEMGET part needs extra work.
m is of type _MEM, but it's never assigned - does that have something to do with it?
Should we have something on the C++ side to access those memory blocks?
2021-07-26 14:52:14 -03:00
Fellippe Heitor 3523208b3c Fixes navigation (file dialog) 2021-07-25 22:20:28 -03:00
FellippeHeitor 62878630b5 Improves on Add Watch dialog prototype.
Can select individual variables (double-click to toggle), add all, remove all.
2021-07-25 00:19:55 -03:00
FellippeHeitor 37d1868630 Initial draft for Add Watch dialog. 2021-07-24 19:32:28 -03:00
FellippeHeitor 5886488b72 Allows F3, Ctrl+F3, Ctrl+F to invoke the search box ($DEBUG). 2021-07-23 13:46:57 -03:00
FellippeHeitor 898c0ffedb Begins folder reorganization (internal/support).
For .bas/.bm/.bi files that are required at compilation time, as opposed to `source`, which is not required for normal operation.
2021-07-22 18:39:20 -03:00
FellippeHeitor 33ec83d0fb Adds Clear All Skips, Set TCP port. 2021-07-22 15:23:37 -03:00
FellippeHeitor 997285994d Replaces "Status" with "$DEBUG MODE" when appropriate. 2021-07-22 13:54:16 -03:00
FellippeHeitor e64984d5fa Properly redraws the interface for help on user keywords (F1) 2021-07-22 11:55:35 -03:00
FellippeHeitor 84fb639626 Visually indicates the line where the search term was found.
In normal operation, the line already gets highlighted. This commit makes the search result more visible/easily spotted when repeating search with F3 or when the search bar has focus.
2021-07-22 11:40:03 -03:00
FellippeHeitor 4efd95201d Fixes improper navigation (open/save dialogs). 2021-07-22 03:07:01 -03:00
FellippeHeitor 2fc0515d2e Adjustments to dialogs.
SUBs, Call Stack, Languages will no longer take up the whole window.
2021-07-22 03:05:54 -03:00
FellippeHeitor d3807589ca Properly clears the mouse queue after dialogs are closed. 2021-07-22 03:05:00 -03:00
FellippeHeitor 231400f309 Properly obeys a click to exit (x button) 2021-07-22 03:04:23 -03:00
FellippeHeitor f286e6b1d9 Removes unused variables in IDE code. 2021-07-21 14:22:37 -03:00
FellippeHeitor e3d65b3559 Centers target line with warning. 2021-07-21 12:41:41 -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 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 ba7a0d91d4 Implements contextual menu for $DEBUG mode. 2021-07-20 20:11:29 -03:00
FellippeHeitor 603cc585e8 Prevents issues when deleting lines in normal mode. 2021-07-20 17:11:16 -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 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 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 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 8d35b87fd1 Initial implementation of call stack ($DEBUG). 2021-07-18 22:02:41 -03:00
Fellippe Heitor ae887507c2 On error, report back to the IDE. ($DEBUG) 2021-07-16 23:18:46 -03:00
Fellippe Heitor 8109b81ef7 Adds Step Out 2021-07-16 01:09:27 -03: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 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
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 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 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 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
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 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 fa7ad406f6 Prevents () in comments after SUBs from being displayed in Subs Dialog. 2021-05-23 12:20:34 -03:00
Fellippe Heitor 7e3de309ce Fixes one more colorization issue
Scientific notation, again.
2021-03-19 11:46:52 -03:00
Fellippe Heitor 692e28b0da Indicates (options->display) that window pos isn't stored (lnx). 2021-03-07 11:39:05 -03: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
FellippeHeitor 30431161f9 Fixes Out of Memory error in Windows (SUBs dialog) 2021-02-28 15:23:57 -03:00