1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-08-04 18:50:24 +00:00
Commit graph

659 commits

Author SHA1 Message Date
FellippeHeitor
58199f7c22 Implements Bracket Highlighting
When the cursor is on a an open "(" or closing ")" bracket, the matching pair, to the left or right, will be highlighted (as seen in modern IDEs, like https://blogs.msdn.microsoft.com/zainnab/2010/09/07/automatic-delimiter-highlighting/)

Also:
- Overall visual adjustments.
- Improved IDE Colors dialog (Options menu), which includes an option to disable bracket highlighting.
- Adds Ctrl+S as a shortcut for File->Save.
- Displays an * on the filename in the title bar below the menu bar when the source has been edited.
- Fixes an old bug that would color strings incorrectly when the source view was scrolled to the right.
- Enables block indent functionality in the Edit menu even when autoindent is on.
- Allows the View SUBs dialog (F2) to be invoked while focus is on the quick search bar.
2016-07-31 17:36:14 -03:00
FellippeHeitor
df50672e21 Mere indent/auto-format. No actual code change. 2016-07-23 21:26:06 -03:00
FellippeHeitor
a8d200164e Prevent whole-word selection to be triggered when selecting multilines. 2016-07-20 01:08:25 -03:00
FellippeHeitor
b29c90f293 Minor fix to whole word selection (double-click).
Variable wholeword.select failed to be reset properly before.
2016-07-20 00:25:42 -03:00
FellippeHeitor
01d3e06d73 Additional tweaks to whole-word selections (double-click + drag). 2016-07-20 00:07:47 -03:00
FellippeHeitor
1806d2ccbc Cancel selection after window is resized. 2016-07-19 19:45:54 -03:00
FellippeHeitor
637e524be8 Expand double-click whole word selection.
Double-click a word then drag left or right to keep selecting word for word.
2016-07-19 19:34:55 -03:00
FellippeHeitor
a7a13b52ee Fix for double-click whole word selection while compiling. 2016-07-19 18:10:58 -03:00
FellippeHeitor
a409f40826 Cosmetic: indicate subwindow focus (main, find or help). 2016-07-19 03:04:08 -03:00
FellippeHeitor
a65a0f42f8 Double-click on code to select a whole word at once. 2016-07-19 02:03:33 -03:00
FellippeHeitor
c3cb1acae9 Darken all IDE colors while compiling or running attached. 2016-07-17 20:12:59 -03:00
FellippeHeitor
a3c4bc4336 Darken the FG color too (while compiling with g++). 2016-07-17 17:40:10 -03:00
FellippeHeitor
94d1442060 Expand block indentation with TAB/Shift+TAB.
Block indentation is now allowed even with auto-indentation is on. A bit useless at first, as the IDE will override any custom indentation attempt while ideautoindent is on, but at least now TAB doesn't inadvertedly delete selection contents anymore.
2016-07-17 17:23:42 -03:00
FellippeHeitor
3020b7b631 Improved cursor behavior.
Expand cursor behavior to work even when auto layout/indentation are active, so that edition feels more natural.

Also:
- Improved cursor behavior when using backspace to collapse a line into the previous one (check out code comments for easier understanding).
2016-07-17 17:21:08 -03:00
FellippeHeitor
99e0b539af Cosmetic: Darken the interface while G++ is being run.
Uses _PALETTECOLOR to change the background of the IDE to a darker shade while external compilation is taking place, to give a sense of temporary unavailability.
2016-07-17 17:17:51 -03:00
FellippeHeitor
19ab48caec Add Ctrl+G as a shortcut to "Go to line". 2016-07-09 15:30:10 -03:00
FellippeHeitor
ef791afcb6 Make use of _INCLERRORFILE$ for more meaningful error messages.
Also:
- Improved messagebox (allows multiline messages with CHR$(10) terminated lines.
- Fixed a minor bug that could be triggered by right-clicking a selection that contained only sigils.
2016-07-09 15:04:42 -03:00
Fellippe Heitor
2f832cd15b Show selection length on the status bar 2016-07-02 03:48:58 -03:00
FellippeHeitor
6a26da51a5 QuickNav: minor change to "back" button wording. 2016-06-28 17:02:03 -03:00
FellippeHeitor
f0b9d0dadd QuickNav: minor change to "back" button wording. 2016-06-28 16:59:16 -03:00
FellippeHeitor
1e3cb88fc9 Allow Shift+ENTER to edit RGB values without the contextual menu. 2016-06-28 11:29:46 -03:00
FellippeHeitor
1ba7270cdb Supress "'Hit Shift+ENTER" message if _RGB is in a comment or quote. 2016-06-28 02:04:05 -03:00
FellippeHeitor
e28997f3f5 Quick Navigation "Back" button's hover behavior improved.
Upon hovering the Back button right below the menu bar, the next QuickNav location will be shown as "back to line ##".

Also:
- Fix label color in the "Google Android" dialog.
- Fix a bug that could occur when invoking the contextual menu with an empty selection.
- Relocate Undo/Redo to the top of the Edit menu.
2016-06-28 01:37:37 -03:00
FellippeHeitor
ba968213a5 Add an RGB color mixer for inputting/editing _RGB/32/A/A32 values.
Upon entering any _RGB statement, the IDE will offer to launch the mixer dialog, which can be done by hitting Shift+ENTER. Right-clicking existing statements allows triggering the mixer dialog from the contextual menu.
2016-06-28 01:34:06 -03:00
FellippeHeitor
1e99a91293 Allow closing the IDE via the X when only the menu bar is active. 2016-06-25 16:16:49 -03:00
FellippeHeitor
de6fd0a7a8 Allow closing the IDE via the X button while the menus are active. 2016-06-25 12:58:16 -03:00
FellippeHeitor
1ab3025ef3 Auto select the .exe when clicking the quick link to the output folder 2016-06-22 14:44:59 -03:00
Fellippe Heitor
5e7e37ea0b Save executable with source (Mac, probably Linux too) 2016-06-21 11:59:37 -03:00
FellippeHeitor
8f67d40330 Add "Save EXE in the source folder" to the Run menu.
(Windows only for now)
When active, this new setting will instruct the compiler to save the .EXE in the same folder as the source file. If the current program is not yet saved, the .EXE is placed in the same folder as QB64.EXE, as usual.

Also:
- When "Make EXE only (F11)" is used, the status area will show "Location: " and a link to the folder where the .EXE was saved. Clicking it launches Windows Explorer.
2016-06-21 03:38:42 -03:00
FellippeHeitor
86f79d8b29 Improved cursor behavior when auto indent is off.
When auto indent is turned off in Options->Code Layout, hitting ENTER to create a new line will cause the cursor to be aligned with the previous line start, making it easier to manually indent code.

Also:
- Hitting backspace when there's no text before the cursor will also cause it to jump back following the tab spacing set in the Code Layout dialog.
2016-06-21 01:31:42 -03:00
Fellippe Heitor
e5487b3124 Allow Shift+TAB to change focus in dialogs (Mac) 2016-06-14 01:29:33 -03:00
FellippeHeitor
4925dfd990 Minor fix to textboxes in dialogs being autoselected when empty. 2016-06-14 01:05:54 -03:00
FellippeHeitor
a0506884f8 Minor adjustments (cursor after pasted contents and textboxes in dialogs)
The setting to place the cursor after the pasted contents is now observed in textboxes (dialog boxes) and also in the quick search field.

Also:
- Textboxes are now always selected upon receiving focus in dialog boxes, in order to mimic modern OS's behavior.
2016-06-09 01:46:00 -03:00
FellippeHeitor
6f4231c86b Add a percentage bar to the status line while still compiling (F5/F11).
Also:
Progress has been grouped. No longer "Step 1/2" then "Step 2/2". It goes from 0% to 100% and that's that.
2016-05-24 21:35:30 -03:00
FellippeHeitor
64ca150f9c Supress progress indication if an error is found. 2016-05-24 02:10:33 -03:00
FellippeHeitor
546947d967 Show compilation progress (BASIC -> C++) in the status bar.
The only indication that the program was being compiled was the "..." on the status area. Now, if you hit F5 (or F11) and your program is still being compiled to C++, you will see a progress indicator on the bottom status line.

Also:
- Display "Start typing to search for text in this help page" upon invoking the help system (the search functionality is already built-in).
2016-05-24 01:35:28 -03:00
FellippeHeitor
218536343a Add "Cursor after pasted content" to Options menu.
Default behavior (which mimics Qbasic) is to keep the cursor in place even after pasting from the clipboard. This new option alters such behavior to act as modern systems, placing the cursor after the pasted content.

Also:
- Add visual indication that mouse buttons have been swapped (Options menu);
- Allows opening menus with a right-click (in case you forget you swapped mouse buttons);
- Minor tweaks to Code layout dialog box.
2016-05-07 01:38:52 -03:00
FellippeHeitor
a6d7a7ac5c Add sliders to the Colors dialog (for RGB values). 2016-04-28 03:22:29 -03:00
FellippeHeitor
c49272e64c Disable selection when Quick Navigation is used.
Previously, upon clicking the Quick Navigation button, the IDE could accidentally select all lines between the current and the destination line. Such behaviour has been fixed.
2016-04-28 00:09:30 -03:00
FellippeHeitor
1033468606 Adjust Color dialog size. 2016-04-21 23:33:29 -03:00
FellippeHeitor
fa63f1feef Color dialog: allow an empty field while editing RGB values. 2016-04-21 18:10:56 -03:00
FellippeHeitor
fa569c2fc4 Add a new dialog to allow changing of interface/code syntax colors. 2016-04-21 17:49:32 -03:00
FellippeHeitor
f00c584454 Fix to extra console window being shown when no COMMAND$ is provided.
A trailing empty space was the culprit.
2016-04-15 10:01:58 -03:00
FellippeHeitor
b243601d5a Add "Modify COMMAND$..." to Run menu.
Allows the user to set parameters to be sent to the current program when ran from inside the IDE using F5 or Ctrl+F5.
2016-04-15 00:47:26 -03:00
FellippeHeitor
336cfde4a0 Suggest a filename when first saving, based on _TITLE, if found. 2016-04-09 17:13:02 -03:00
FellippeHeitor
9c38822c13 Current line highlight properly identifies multilines (ending with _)
ALSO:
- Fix "back" button flickering while typing.
2016-04-06 23:39:54 -03:00
FellippeHeitor
490524628c Fix to active line color highlight. 2016-04-06 02:35:42 -03:00
FellippeHeitor
14ddb620b3 Highlight the current line with a darker shade of the bg color.
Can be overriden by making BackgroundColor2 = BackgroundColor in the config.txt file.
2016-04-06 02:26:23 -03:00
FellippeHeitor
022218f7a7 Add current line to navigation history before going to line with error.
Saves current line before focusing on the line that has an error indicated in the status area.
2016-04-06 01:59:38 -03:00
FellippeHeitor
12010a273c Add a "Back" button [<] to browse back after using Quick Navigation.
After using any Quick Navigation method (Search > Goto line, Right-click > Goto SUB/FUNCTION or Goto label, Bookmark navigation, SUB/FUNCTION selection box), a left facing arrow will show right under the File menu, allowing to browse to where you were before navigation.

ALSO:
- "Goto line" dialog box now remembers the last line number that was input.
2016-04-06 01:43:39 -03:00
FellippeHeitor
310eb662d0 Use the new _INCLERRORLINE to give more detailed error messages (IDE). 2016-03-23 11:22:22 -03:00
Luke Ceddia
773291198c Added a date and id stamp to appear in the About box.
This must be manually updated whenever you make a change to the code.
See source/global/version.bas for details.
2016-03-18 23:22:03 +11:00
SteveMcNeill
e9472743e5 Path to IDE Auto-position
Since _SCREENHIDE doesn't currently work on Linux, alterations were made
to the auto-position routine to keep the IDE from storing screen
positions when minimized and closed that would make it reopen off-screen
and impossible to move/position.
2016-03-04 14:51:08 -05:00
Fellippe Heitor
6af23d8039 Fix keyboard hotkey indicator in contextual menu.
When two 'Go to...' are shown (when label and procedure share the same name), the item that goes to procedure will have G highlighted and the item that goes to a label will have L highlighted.
2016-02-27 16:17:28 -03:00
FellippeHeitor
517f512c76 Add "Go to..." to contextual menu, for SUB/FUNCTION/Labels.
If a user right-clicks a SUB/FUNCTION name or a label name anywhere in the code, the contextual menu now offers to jump to the line where such procedure/label is defined, providing a quick way to navigate through code. Even if there are multiple identical labels in different procedures, scope is taken into consideration, leading you to the definition that's located inside the current procedure.
2016-02-26 22:01:03 -03:00
FellippeHeitor
ce0c8a4507 Add option to restore last window position at startup (Display dialog).
Setting already existed in config.txt and could be manually set (actual code to remember window position written by Steve).
2016-02-12 07:20:17 -02:00
FellippeHeitor
48c99d2247 Fix title alignment of manually positioned dialog boxes. 2016-02-12 06:49:26 -02:00
FellippeHeitor
4901270af3 Fix an error invoking the contextual menu.
If the ide window was too small (e.g. default size 80x25) and a subwindow was being shown (help window) drawing the contextual menu caused an error.
2016-02-07 18:01:43 -02:00
FellippeHeitor
ac333bb611 Minor customization specific for the SUBs list (external procedures).
- Change color of the external indicator (*) so that it looks less intrusive.
2016-01-17 12:03:25 -02:00
FellippeHeitor
7db635a043 Revert latest changes to SUBs sorting.
64 bit systems don't handle it at all. Will only be available in Windows and Linux 32bit.
2016-01-15 22:09:49 -02:00
FellippeHeitor
d86b5c84b6 Fix evaluation of current OS.
Tested under Windows, OS X El Capitan, Linux 32 and 64 bit.
2016-01-15 15:00:17 -02:00
FellippeHeitor
2381e9aa20 Reenable SUBs sorting under 32bit Linux. 2016-01-15 04:55:48 -02:00
FellippeHeitor
0075adde2c Shows Shift+TAB in menus only in Windows and OS X.
QB64 doesn't recognize Shift+TAB under Linux.
2016-01-15 04:33:51 -02:00
FellippeHeitor
02f63c2457 Remove SUBs sorting (F2) from Linux and Mac versions.
The sorting routine isn't compatible with these platforms. For now, it is Windows-only.
2016-01-15 04:10:30 -02:00
FellippeHeitor
10c53de173 Merge branch 'selective-indent-shortcuts' 2016-01-14 16:25:18 -02:00
FellippeHeitor
55035849fd Remove SUBs sorting under OS X, until it gets fixed.
After the addition of sorting to SUBs dialog, it stopped working under OS X.
2016-01-14 15:30:55 -02:00
FellippeHeitor
d684b6cf05 Fix Shift-TAB to decrease block indent on OS X.
In Linux, the option remains available only through Edit or contextual menu (right click).
2016-01-14 14:59:42 -02:00
FellippeHeitor
e2a202084a Fix never ending lines when down arrow kept being pressed
The issue was introduced after CTRL+UP/DOWN was implemented.
2016-01-14 13:53:54 -02:00
FellippeHeitor
fcf9334581 Internal: Make SUB Sort case insensitive.
A case backup array is no longer needed for sorting the SUBs list.
2016-01-14 11:41:44 -02:00
FellippeHeitor
2f2e93a276 Allow ESC to dismiss the "Are you sure you want to clear..." dialog. 2016-01-13 20:08:03 -02:00
FellippeHeitor
261d6fc97d Fix ESC deleting the current selection. 2016-01-07 00:20:29 -02:00
FellippeHeitor
96f450e2ff Small modification to Edit menu. 2016-01-06 23:28:22 -02:00
FellippeHeitor
8187641862 Add message box about the availability of manual block indent. 2016-01-06 23:14:58 -02:00
FellippeHeitor
acee40bf72 Add increase/decrease block indent with TAB/Shift+TAB.
- Available only when auto indent is turned off (Options/Code layout).
- Also available from Edit menu and contextual right-click menu.

Known issue: When auto spacing is on, if you try to indent the first line the file, it is immediately repositioned at the start of the line. Only happens to the first line.
2016-01-06 22:57:11 -02:00
FellippeHeitor
cc8f6605b5 Show a message box when no broken links are found. 2016-01-06 12:18:36 -02:00
FellippeHeitor
af4f9f3918 Update ide_methods.bas
Mere naming convention: invalid links --> broken links.
2016-01-06 02:32:58 -02:00
FellippeHeitor
6493409400 Add "Remove broken links" to recent files dialog. 2016-01-06 02:25:03 -02:00
FellippeHeitor
4f8bb2634d Add clean invalid links in recent files list.
- After a file error, the user is prompted to clean up the recent file list, removing invalid links.
2016-01-06 02:10:00 -02:00
FellippeHeitor
3b251e4e05 Add option to clear the list of recently opened files.
- Add an option to the "Recent..." dialog.
- Add a menu entry for when the list contains less than 4 items.
2016-01-06 00:58:08 -02:00
FellippeHeitor
11e33dd3cb Add disabled menu items and make Edit menu context-aware.
- Menu items starting with a tilde ("~") are displayed with COLOR 8 and without hotkeys highlighted. Clicking on them does nothing, but closes the menu.
- Edit menu is now context-aware. Cut, copy and clear are only enabled if there is a selection. Paste is only enabled if _CLIPBOARD$ is not empty.
2016-01-05 23:14:51 -02:00
FellippeHeitor
47d5a0a473 Limit contextual menu items to available ones.
- Hides cut/copy/clear if no selection available.
- Hides paste if _CLIPBOARD$ is empty
2016-01-05 22:12:51 -02:00
FellippeHeitor
07c9c5442a Fix to quick search bar.
- Fix updating the display after selecting an item in search history.
- Add the ability to click the search field and unselect/position the cursor (overrides previous double-click to erase behavior).
2016-01-05 20:05:57 -02:00
FellippeHeitor
79f1557986 Add "Clear search history..." to Search menu. 2016-01-05 18:57:03 -02:00
FellippeHeitor
59eb5b234c UP and DOWN arrows invoke search history.
- UP and DOWN arrow keys invoke search history in Find and Change dialogs.
- Fix idesearchedbox$ crashing when no search history is found.
2016-01-05 18:24:52 -02:00
FellippeHeitor
1ab0814e5e Fix to display and focus of quick search field 2016-01-05 15:09:00 -02:00
FellippeHeitor
8028998939 Fix display of search term after ENTER 2016-01-05 14:55:12 -02:00
FellippeHeitor
26a66813bc Add extended textbox functionality to the quick search field. 2016-01-05 14:38:19 -02:00
FellippeHeitor
aebb18088b Fix to dialog textboxes clipboard/selection behavior.
- Add Ctrl+A to select all.
- Add Ctrl+X to cut.
- Copy and Paste rewritten with selections in mind.
2016-01-05 01:29:21 -02:00
FellippeHeitor
ac1fc6c794 Main window improvements.
- Place cursor inside the help window when it's first invoked (allows for quick peek and ESC to close the help window).
- Allow ESC to close the dialog (named "Which?"), used to clarify the help context.
- Allow CTRL+UP or DOWN to scroll the window by one line at a time, without moving the cursor.

- Fix quick link feature (F2) to recognize FUNCTION names ending with single or multiple sigils.
- Fix external procedures being considered local and placed in front of program name.
2016-01-04 21:42:02 -02:00
FellippeHeitor
debc1e9792 Improvements to dialog boxes.
- Allow the spacebar to work like ENTER when a button has focus.
- Improve textbox behavior: allow selection, delete selection, replace selection when typing.
- Preselect textbox contents if it's preset when dialog is invoked (Save as, Find and Change dialogs)

- Fix: an asterisk sign will be only added to the valid searchable characters in a listbox if the user is explicitly searching for it.
2016-01-04 21:35:27 -02:00
FellippeHeitor
34e2f0593b Minor improvements to the search system.
- Move the quick search field to the status area.
- Add Ctrl+F to set focus to quick search field.
- Add Ctrl+F3 shortcut to invoke the Find dialog.
- Add Alt+UP or DOWN to invoke the recent searches dropdown list, if the focus is on the quick search field.
2016-01-04 21:26:15 -02:00
FellippeHeitor
2abab5a916 Add contextual menu and overall improvements to menu system.
- Show a contextual menu upon right-clicking on the text area. Includes the Edit menu options as well as contextual search and help.
- Add hovering to menus items.
- Adjust case of menu items (CTRL and Ctrl were being used interchangeably without a pattern).
2016-01-04 21:13:02 -02:00
FellippeHeitor
deb80bdec6 Improvements to the SUBs dialog.
- Add sorting, using Steve's sorting routine.
- Add a visual indicator (*) that a procedure is external.
2016-01-04 20:41:47 -02:00
Luke Ceddia
f8fea42a29 Incorporate additions to SUB list dialog (F2) and inner title bar, and fix ASCII picker.
-ASCII picker restores font upon exit
-SUB dialog preselects a sub if its name is selected by the cursor in the main window
2016-01-01 02:25:27 +11:00
FellippeHeitor
418e8aebcf Incorporated Luke's ASCII fix, to avoid going back in commits. 2015-12-31 10:28:34 -02:00
FellippeHeitor
ebde55ec7e Fixed a crash when filename is too long to fit the screen. 2015-12-31 09:59:46 -02:00
FellippeHeitor
1749254321 Temporarily remove comments in front of SUB/FUNCTION before adding to window title or SUBs dialog. 2015-12-31 02:44:50 -02:00
FellippeHeitor
cf05f689a4 Improves on listbox search, allowing for more than the first letter to be searched (repeatedly pressing the same letter still works as before). 2015-12-31 02:23:06 -02:00
Luke Ceddia
9c17efacf5 Removed non-ASCII characters and many hard tabs from source files, making it easier to use other text editors (special characters were being mangled in some cases). 2015-12-30 21:28:13 +11:00
FellippeHeitor
649d44b27e If the cursor is on a SUB/FUNC name, it is highlighted. 2015-12-29 16:56:58 -02:00
FellippeHeitor
24c65558f0 EDIT: Changed the code to also check that END SUB/END FUNCTION can be found after the current line, which eliminates the possibility of making the IDE believe that we are in a SUB/FUNCTION when we are actually just past the last one in the file. 2015-12-29 02:16:34 -02:00
FellippeHeitor
5846305079 Reworks main window title to look "Program.bas:CurrentSubFunc"
A quick current SUB/FUNCTION check was added to complement the program title with a colon and said SUB/FUNCTION name, exactly like it was done in QB4.5, for quick reference. Doesn't add much of a burden to the overall performance since FUNCTION ide2 already updates the main window title every main LOOP anyway.
2015-12-29 00:22:37 -02:00
FellippeHeitor
4037c9db3a A quick current SUB/FUNCTION check was added to complement the program title with a colon and said SUB/FUNCTION name, exactly like it was done in QB4.5, for quick reference. Doesn't add much of a burden to the overall performance since FUNCTION ide2 already updates the main window title every main LOOP anyway. 2015-12-29 00:12:22 -02:00
FellippeHeitor
dc00352274 Change to FUNCTION idesubs$, which now checks if the cursor is currently inside any SUB/FUNCTION to position the selection properly in the list. 2015-12-25 23:39:28 -02:00
Luke Ceddia
86acbbbcdd Indent code in SUBs and FUNCTIONs by one level, with the option to turn on/off.
Adds option IDE_IndentSUBs to the config file. Credit to Fellippe Heitor for
doing the research and writing on the bulk of this commit.
2015-12-14 11:19:26 +11:00
Galleondragon
accdaf1ce0 Added support for Android & Virtual Keyboards 2015-10-30 23:18:44 +11:00
SMcNeill
15649725e5 Patch to fix WriteConfigSetting from altering variables passed to it.
Fix to precompiler internal array allocation to prevent IDE Module Errors in some instances.
2015-08-05 17:44:43 -04:00
SMcNeill
eb69e62827 Fix to custom font error-checking routine which used an invalid variable name and always failed.
Made use of _SCREENHIDE function so we don't update the IDE position when the screen is hidden.
2015-08-05 04:56:49 -04:00
Galleon
91e7ace500 (Automated push) Update internal/source/* from qb64.bas 2015-08-02 05:12:44 -07:00