1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-08-22 11:25:08 +00:00
Commit graph

177 commits

Author SHA1 Message Date
FellippeHeitor
bad8133d16 Command line improvements.
- Add -e for compiling with OPTION _EXPLICIT activated from the command line - even if the source file doesn't have the directive.
- Add -o for specifying a different output executable file name.
- More flexible syntax, as switches can come after the file name, making the following acceptable: qb64 filename.bas -x -e -o myprog.exe
2016-07-02 01:32:03 -03:00
FellippeHeitor
8fa49e0411 BuildNum$ update. 2016-06-30 23:41:44 -03:00
FellippeHeitor
e70f18178f Broader detection of OPTION _EXPLICIT in code.
- No two OPTION _EXPLICIT can be entered
- You can OPTION _EXPLICIT: DO OTHER STUFF 'and comment on the same line
- Extreme cases of bad formatting like OPTION        _EXPLICIT are fine.
2016-06-30 23:40:46 -03:00
FellippeHeitor
353838500e BuildNum$ update. 2016-06-30 05:25:45 -03:00
FellippeHeitor
7bb17d3d8d OPTION _EXPLICIT errors report the variable name.
Also:
Allow comments and empty lines before OPTION _EXPLICIT
2016-06-30 05:24:22 -03:00
FellippeHeitor
aec3d3b4dd Fix for relative paths (./ or .\) in LIBRARY declarations.
These were having issues when compiling via command line.
2016-06-30 03:58:20 -03:00
FellippeHeitor
b175c3f3b4 BuildNum$ update. 2016-06-30 03:12:00 -03:00
FellippeHeitor
a7a3b1663d Implements OPTION _EXPLICIT
When you use OPTION _EXPLICIT, all variables and arrays must be defined with DIM (or equivalent statement) before they can be used. QB64's case check already aids in avoiding mistakes on that front, but now you will run into a compiler error if a variable or array is used before being defined.
Because OPTION _EXPLICIT sets a compiler behavior, it must come before any other statements in your code.
As this is a non-QB4.5 feature, the keyword uses an underscore, in order to avoid conflicts with existing code.
2016-06-30 02:50:10 -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
5b7411a583 Minor fix to settings output. 2016-06-26 00:37:08 -03:00
Fellippe Heitor
7cf18f13ad Add -s (settings) to command line. 2016-06-26 00:06:34 -03:00
Fellippe Heitor
81a0e7a4b7 Fix to relative paths for console compilation. 2016-06-25 22:36:36 -03:00
FellippeHeitor
d8c01d89cb Properly check if the target .EXE can be replaced (no ide compilation). 2016-06-25 16:17:22 -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
FellippeHeitor
b3c7c03558 Fix for unnecessary terminal window showing up in Windows 2016-06-22 14:05:28 -03:00
FellippeHeitor
22a2115fe8 Fix for relative library paths in Windows. 2016-06-22 01:13:54 -03:00
FellippeHeitor
ee3f5f3d4a Version id update for latest edits. 2016-06-21 23:58:29 -03:00
Fellippe Heitor
b8b4b13302 Relative paths for external libraries
External libraries can now sit in the same folder as your source file without the need to specify a full path. You can use .libraryname or ./libraryname with DECLARE LIBRARY statement blocks.
2016-06-21 23:53:43 -03:00
Fellippe Heitor
5e7e37ea0b Save executable with source (Mac, probably Linux too) 2016-06-21 11:59:37 -03:00
FellippeHeitor
b7b6c760e1 Console mode compilation (-c, -x) also save EXE to source folder, if set. 2016-06-21 03:54:20 -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
4336d458f5 BuildNum$ update. 2016-04-15 00:55:55 -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
e40babc3a6 Build number update. 2016-04-09 17:33:43 -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
9aa08ce3cd BuildNum$ updated. 2016-04-06 02:28:54 -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
FellippeHeitor
fca4a96ef3 Remove unnecessary optional parameter in fix_error().
Also:
- "Unhandled error" message now only shows included line number when it's > 0.
- qb64.bas adds include line number to every evnt() call.
2016-03-23 08:29:32 -03:00
FellippeHeitor
398781b4af Build number increase. 2016-03-23 08:00:25 -03:00
FellippeHeitor
e891ce0891 Extended error reporting, pointing to included lines.
The "Unhandled error" message will now display "Line: #### (included line: ####)" with the line number in the included file that generated the error. 0 will be reported if the error wasn't in an included line.

Also:
- Add function _INCLERRORLINE, which returns a value greater than zero when _ERRORLINE points to an $INCLUDEd file.
2016-03-23 07:45:51 -03:00
FellippeHeitor
3557828e95 Fix $precompiler layout.
$ELSEIF FLAG THEN was being turned into $ELSEIF IF FLAG THEN THEN when a precompiler condition had already been met in an $IF block before the current $ELSEIF.
2016-03-20 22:19:35 -03:00
FellippeHeitor
8d459da508 Increase build number to mark Galleon's latest additions 2016-03-20 15:44:37 -03:00
Galleondragon
0ea631d375 Implements the _DIR$("desktop") function which returns OS specific paths.
Implements changes to allow programs to run on ARMBI-v7 Android devices which also provides a massive performance boost to but runtime and startup time.
Implements changes to allow programs to run on x86-based Android devices.
Fix to ensure variables allocated in the "stack" are aligned on appropriate boundaries which would have otherwise crashed on Android.
Fix to _DEVICES to ensure variables are aligned on appropriate boundaries which would have otherwise crashed on Android (includes some refactoring).
Added permissions to allow reading from/writing to external storage. Use the _DIR$(...) function to help locate appropriate paths.
2016-03-20 18:56:10 +11: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
9761af33d5 Fix to precompiler to work inside $INCLUDE files 2016-03-08 20:53:35 -05:00
SteveMcNeill
87b4783dd7 Fix so IDE will catch DO WHILE (nothing) syntax errors 2016-03-04 22:34:28 -05: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
SteveMcNeill
117f12e4d4 Patch to correct IDE error messages
IDE error messages would give invalid reports if the program encountered
an error on the automatically included QB64 virtual keyboard files.
This should correct that and have the IDE reporting the proper messages
once again.
2016-03-04 11:21:16 -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
Fellippe Heitor
95af7ff6a6 Improves the .command file generated to launch executables
The same improvements made to qb64_start_osx.command are now present in the .command file that is generated in OS X after a program is compiled into an executable. This way, Terminal is closed as soon as the program is launched.
2016-02-27 15:40:24 -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
2293beb692 Fix a leak when assigning values to an array of type STRING.
The issue happened with both fixed and variable length string arrays and variables with user defined types containing fixed string elements.
2016-02-22 08:19:54 -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