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

581 commits

Author SHA1 Message Date
FellippeHeitor e777e8a94e Fix to QB4.5 binary fomat converter:
- Enabled token 0x08c;
- PCOPY parameters no longer being inverted;
2019-01-12 10:07:37 -02:00
FellippeHeitor 96ec183746 Merge branch 'development' into unusedvariables 2018-12-31 21:03:28 -02:00
FellippeHeitor 738fe6924d Improved detection of unused variables. 2018-12-31 21:00:16 -02:00
Luke Ceddia 8f9837c803 Take LEN correctly 2018-12-23 17:40:48 +11:00
Luke Ceddia fffd0f842c Free non-array variable udt on sub exit 2018-12-22 15:29:52 +11:00
FellippeHeitor 47685d82b0 Implements unused variables indicator
An arrow to the left of the line where a variable was defined will be shown after compilation to indicate that variable hasn't been used throughout the program.
2018-11-21 00:47:46 -02:00
FellippeHeitor 745c5bc77f Fixes F5 not working in *nix systems. 2018-11-02 19:32:02 -03:00
FellippeHeitor 7fa762750b Adds support for new _RGB32 syntaxes in CONST statements. 2018-11-02 18:47:55 -03:00
Luke Ceddia bc0a405de0 Move commid id outside qb64 source 2018-11-02 20:17:33 +11:00
FellippeHeitor 3575e98f61 Fixes F1 key bug when cursor is on some symbols. 2018-11-01 17:07:33 -03:00
SteveMcNeill 687cced581 Changes to CONST and Math Internals 2018-10-31 07:44:57 -04:00
FellippeHeitor 92c4a15735 Prevents ENTER from selecting a disabled menu item. 2018-10-30 01:01:54 -03:00
FellippeHeitor 62599774a1 Adds _SHR/_SHL to keywords list for syntax highlighting. 2018-10-30 00:35:12 -03:00
FellippeHeitor e311b9f6ae Fixes bug that would crash the IDE when selecting a disabled menu item.
As discussed in https://www.qb64.org/forum/index.php?topic=738.0
2018-10-30 00:34:23 -03:00
FellippeHeitor 369d522a98 Applies common naming convention and makes _SHL/_SHR functions inline. 2018-10-30 00:32:12 -03:00
Kobolticus 761c34a7f6
Added support for _SHR\_SHL functions 2018-10-29 22:53:36 -04:00
SteveMcNeill d9392d842a Fix for $IF/$LET, without breaking $INCLUDE as previous 2018-10-29 15:53:23 -04:00
FellippeHeitor ba5292c951 Revert "Fix for $LET/$IF"
This reverts commit 4787076573.

A regression was introduced that caused $IF blocks in $INCLUDE files to be ignored.
2018-10-29 11:17:06 -03:00
SteveMcNeill e2c250a42f Change to _WINDOWSHANDLE to return 64-bit offsets 2018-10-29 08:09:30 -04:00
Luke Ceddia 19f08b51f3 Merge branch 'varstrings_in_types' into development 2018-10-28 00:01:36 +11:00
Luke Ceddia b912bf09ee Disallow GET/PUT for variable UDTs 2018-10-28 00:00:29 +11:00
FellippeHeitor d01e3666d8 Merge branch 'development' of https://github.com/Galleondragon/qb64 into development 2018-10-25 10:07:09 -03:00
Luke Ceddia 4c94b54f10 redim _preserve 2018-10-23 21:23:13 +11:00
Luke Ceddia daf5cba518 Dynamic arrays (handles arrays in subs too) 2018-10-23 20:36:32 +11:00
Luke Ceddia 683e4f1920 Global static arrays 2018-10-23 12:53:38 +11:00
Luke Ceddia 0eb2b4307f Process nested UDT's 2018-10-22 18:35:20 +11:00
SteveMcNeill 67af468b7d Fix memory leak with PRINT USING
When USING follows another print in the same statement (such as PRINT
"123"; USING "###"; 456), it created a memory leak due to the temp
variable being created twice and only freed once.  This patch corrects
that issue.
2018-10-22 01:02:48 -04:00
SteveMcNeill 4787076573 Fix for $LET/$IF
Fix to the precompiler so $IF/$LET work as expected.  Adds ability to
see if a precompiler variable is DEFINED or UNDEFINED, to exclude
duplicate code in libraries and such.
2018-10-21 23:01:22 -04:00
Luke Ceddia 18bab24af1 Do element-wise assignment with string copy when necessary 2018-10-21 01:46:52 +11:00
Luke Ceddia 902868a7ee Allow assignment and access of variable length strings in TYPEs
To do:
 - arrays of UDT's
 - clone qbs on UDT copy
 - check for memory leaks
 - UDT's declared in subs/functions
2018-10-20 00:13:24 +11:00
FellippeHeitor 14e5866c4b Another tweak yo isnumber() 2018-10-02 23:31:43 -03:00
FellippeHeitor 78c4de7f6c Adapts isnumber() to recognize scientific notation. 2018-10-02 01:38:17 -03:00
FellippeHeitor b29a46d177 Undoes last commit; fix not as easy as initially thought. 2018-10-01 10:27:30 -03:00
FellippeHeitor f6c068ba19 Properly warns user when a non-_MEM var is used with _MEM functions.
Closes #47
2018-09-30 20:54:59 -03:00
FellippeHeitor bed68767e6 Detects if the last generated binary still exists at F5 or F11.
Closes #63
2018-09-30 19:27:05 -03:00
FellippeHeitor fc075a5242 Updates WikiParse sub for new wiki formatting (IDE).
Previous wiki software returned html entities instead of actual characters, but the new host has an updated version of mediawiki that does the contrary for some special characters.
2018-09-24 02:29:36 -03:00
FellippeHeitor fef142085b Minor rewording to Help->About. 2018-09-21 01:33:57 -03:00
FellippeHeitor 071bbad7a6 Merge branch 'development' of https://github.com/Galleondragon/qb64 into development 2018-09-20 12:15:52 -03:00
FellippeHeitor 2d261c8eb1 Removes deprecated Android references from settings. 2018-09-20 12:11:26 -03:00
Fellippe Heitor c58b5a2800
Update version.bas 2018-09-20 04:31:37 -03:00
FellippeHeitor fcf68e093b Fixes TAB before ELSE bug for the IDE. 2018-09-18 01:03:55 -03:00
FellippeHeitor 7068ce029e Adds Ctrl+T (toggle comment); Rewords Edit menu options. 2018-09-17 23:46:13 -03:00
FellippeHeitor d710b9acce Adds "Enable quick navigation" option in the Search menu. +
Allows disabling the Back arrow when navigating a program.
2018-09-17 22:19:10 -03:00
FellippeHeitor 1b7867fd1d Makes ShowLineNumbers default to true when not found in settings. 2018-09-17 21:45:40 -03:00
FellippeHeitor a4a2b4f6db Fixes $INCLUDE duplication bug when resizing the IDE while compiling. 2018-09-17 21:13:58 -03:00
Fellippe Heitor 1a5a8b97cc
Swap qb64.net and qb64.org as wiki page source.
QB64.net is kept as alternative source for now.

Closes #62.
2018-08-17 18:15:40 -03:00
FellippeHeitor 09085b614b New attempt at adding drag/drop to the IDE. 2018-08-01 02:02:07 -03:00
FellippeHeitor 2b0dfb7381 Reverts last broken commit.
Compilation worked fine locally; another attempt will be done later.
2018-08-01 01:52:09 -03:00
FellippeHeitor 5e0ff36205 Adds _ACCEPTFILEDROP as a function to return true (-1) if active/enabled.
Returns 0 otherwise.
2018-07-31 22:23:34 -03:00
FellippeHeitor ce2d3d4a2f Improves dragging a file onto the IDE when the Open dialog is showing. 2018-07-31 22:08:17 -03:00
FellippeHeitor 9a1b8450aa Enables the IDE to accept files via drag/drop (Windows-only). 2018-07-31 21:59:31 -03:00
FellippeHeitor 975408e2ef _DROPPEDFILE$ now takes an optional index parameter.
- Allows using _DROPPEDFILE as an array ranging from 1 TO _TOTALDROPPEDFILES.
- Using _DROPPEDFILE as an array doesn't reset _TOTALDROPPEDFILES (unlike when reading _DROPPEDFILE$ sequentially with no parameter), so it's necessary to call _FINISHDROP after working with the list of dropped files so it'll be reset.
2018-07-31 10:24:52 -03:00
FellippeHeitor c83b15eb95 Implements Drag/Drop of files onto a program's window (Windows-only).
New statement:
    _ACCEPTFILEDROP [{ON|OFF}]
    Enables a program to accept files being dropped from a folder.

New functions:
    _TOTALDROPPEDFILES
    Returns the number of files that have been received via drag/drop.

    _DROPPEDFILE$
    Returns the list of files that have been dropped. The function sequentially returns the file list and decreases _TOTALDROPPEDFILES with every read.
2018-07-31 00:23:36 -03:00
FellippeHeitor ed28f453f0 Adds _TRIM$ (both left and right TRIM). 2018-07-17 02:35:17 -03:00
FellippeHeitor 024f27a5b5 Indentation work (.bas files). No actual code changes. 2018-07-17 00:01:23 -03:00
FellippeHeitor bc6b427a99 Implements _INSTRREV, to search for the last occurence of a substring.
The statement works as INSTR does but starts from the end of the passed string (or from the specified position) and looks for the passed substring while moving backards.

Takes after VBScript's InStrRev: https://www.w3schools.com/asp/func_instrrev.asp

Closes #51
2018-07-15 16:43:12 -03:00
Fellippe Heitor a846fdbc4d
OFF/_OFF allowed for _FULLSCREEN and _ALLOWFULLSCREEN (#50)
Closes #49
2018-07-13 18:03:00 -03:00
FellippeHeitor 19fda93caf Adds .overloaded and .minargs to idstruct.
Allows more functions to be overloaded in the future, like _RGB32.
2018-07-03 00:33:37 -03:00
FellippeHeitor 6ee70f1afa Makes _RGB32 more flexible and powerful.
Existing syntax:
colour~& = _RGB32(red, green, blue)

New possible uses:
- Instead of passing identical rgb values to achieve a shade of gray, pass only 1 parameter for all color components:

    colour~& = _RGB32(51) 'same as _RGB32(51, 51, 51)

- _RGB32 can now take an optional alpha parameter, which makes _RGBA32 obsolete (although it still exists for retrocompatibility):

    colour~& = _RGB32(255, 0, 255, 30) 'same as _RGBA32(255, 0, 255, 30)

- If you want a shade of gray and also to specify the alpha level, you can pass just two parameters:

    colour~& = _RGB32(51, 30) 'same as _RGBA32(51, 51, 51, 30)

In summary:

    - 1 parameter  = red, green and blue simultaneously set.
    - 2 parameters = red, green and blue simultaneously set plus alpha level.
    - 3 parameters = red, green and blue as usual.
    - 4 parameters = red, green and blue plus alpha level (same as _RGBA32).
2018-07-01 21:46:08 -03:00
FellippeHeitor 4264666130 Adds _SMOOTH function to return current fullscreen antialiasing setting.
Returns true (-1) if enabled.
2018-06-30 17:09:29 -03:00
FellippeHeitor 729a1dd465 Adds new keywords to syntax highlighter. 2018-06-29 12:14:08 -03:00
FellippeHeitor d911e3d01e Implements _ALLOWFULLSCREEN to set how ALT+ENTER behaves. Closes #22.
Syntax:
    _ALLOWFULLSCREEN [{_STRETCH|_SQUAREPIXELS|_OFF|_ALL}][,{_SMOOTH|_OFF|_ALL}]

Existing _FULLSCREEN statement is not bound by _ALLOWFULLSCREEN's settings, only the ALT+ENTER key combo.
2018-06-29 11:30:14 -03:00
Luke Ceddia c4674e10eb Make internal/temp if it doesn't exist (closes #45) 2018-06-28 22:17:18 +10:00
FellippeHeitor 688e31c0f3 Introduces _ECHO, which will output a string to the console.
_ECHO is more of a macro than a new statement, as it'll perform the following actions:

1- Save current _DEST;
2- Switch to _CONSOLE;
3- Print the passed string (only strings accepted);
4- Switch back to previous _DEST.

None of the PRINT features such as USING, numeric variables, retaining the cursor are implemented/planned for this statement.

Closes #29
2018-06-27 23:51:09 -03:00
FellippeHeitor 83bea5ad25 Makes F5 run detached as default.
Running a compiled program in standard "attached" mode had no real use as it had been planned (as once stated by Galleon) to allow future integration of a debug mode that never came to be. It is not practical as is. This change makes F5 (and consequently the Start option in the Run menu) start the program automatically in "detached" mode (equivalent to Ctrl+F5 in previous versions), which means that the resulting binary will be run with SHELL _DONTWAIT instead of simply SHELL, allowing the newly launched process to be independent from the IDE.
2018-06-19 22:00:18 -03:00
Fellippe Heitor 16a9a88dec
Merge pull request #46 from ebourg/split-string-functions
Separate source file for string manipulation functions
2018-06-17 21:21:42 -03:00
FellippeHeitor 7f075c4779 Adds _CONNECTIONADDRESS without [$] to the syntax highlighter list. 2018-05-30 19:14:01 -03:00
Emmanuel Bourg 1253c208c7 Moved the string manipulation functions into a separate source file 2018-05-25 10:47:42 +02:00
Emmanuel Bourg 648d16a2c0 Also support GNU style -h and --help options 2018-05-22 23:48:39 +02:00
Fellippe Heitor 306ad0f676
Merge pull request #41 from ebourg/master
Typo in wiki_methods.bas
2018-05-22 16:57:17 -03:00
Emmanuel Bourg 7b54c9962d Fixed a typo in wiki_methods.bas 2018-05-22 21:50:12 +02:00
Ashish Kushwaha 4624cb942d
Fixed a typo in opengl_methods.bas 2018-05-22 19:36:49 +05:30
FellippeHeitor 3d0e216d88 Color orphan brackets with red background. 2018-04-20 02:25:34 -03:00
FellippeHeitor 77cfd7ea9d Adds Ctrl+Shift+G shortcut to jump to line with error. 2018-04-12 11:30:05 -03:00
FellippeHeitor cd8318c6dc Add new preset color scheme "CF Dark". 2018-03-11 18:00:12 -03:00
FellippeHeitor d10f01819f Restore ideroot$ retrieval and set idepath$ to _STARTDIR$. 2018-03-11 17:21:46 -03:00
FellippeHeitor 8ba19d11fb Enhancement: IDE starts looking in _STARTDIR$ for File->Open dialog. 2018-03-10 16:30:50 -03:00
FellippeHeitor 887c0039a1 Properly highlight sub/func with "." in their names. Addresses issue #28. 2018-03-04 17:41:08 -03:00
FellippeHeitor 363509210c Sort file list in Open dialog (Linux). Addresses issue #31 2018-02-28 10:23:02 -03:00
FellippeHeitor 90b3e7c14d Update build number to incorporate development into master. Also:
- Add www.qb64.org/wiki as an alternative server for the help system when .net is down or temporarily unreachable.
2018-02-28 08:47:53 -03:00
Luke Ceddia e3aec0c97a Merge branch 'development' 2018-02-02 16:40:36 +11:00
Luke Ceddia a58fb4f824 Fix parsing of some file paths 2018-01-27 01:16:41 +11:00
FellippeHeitor e02a206a67 Fix: alignment of first comment line of a TYPE or DECLARE LIBRARY block.
Addresses issue #25.
2018-01-23 11:52:00 -02:00
Luke Ceddia 61cb34f635 Remove some SDL stuff that was dead weight 2018-01-16 20:56:45 +11:00
Luke Ceddia 3a0e1ae320 Move all executable code out of common.cpp; rename to common.h 2018-01-05 21:22:36 +11:00
Luke Ceddia 8917bf0e52 Merge remote-tracking branch 'refs/remotes/origin/master' 2018-01-03 22:42:53 +11:00
FellippeHeitor fc607aa613 Add Line Number options to submenu in View menu. Also:
- Adds submenus.
- Renamed "Save EXE in the source folder" to "Output EXE to source folder" in Run menu.
- Changed behavior of disabled menu items; instead of closing the menu, do nothing.
2018-01-02 03:11:08 -02:00
FellippeHeitor 99352ea125 Merge remote-tracking branch 'remotes/origin/idetweaks'
# Fixed Conflicts:
#	source/ide/ide_global.bas
2018-01-01 18:24:31 -02:00
Luke Ceddia 8151a0b8b8 Add -p switch for purging precompiled content 2017-12-31 00:33:36 +11:00
Luke Ceddia 267a45a2af Version 1.2! 2017-12-30 01:10:37 +11:00
Luke Ceddia 82be9a35d7 Remove Android menu items 2017-12-30 01:09:43 +11:00
FellippeHeitor b8526c502a Fix "IDE_SortSUBs" setting not being properly saved/restored at startup. 2017-11-14 10:51:06 -02:00
FellippeHeitor e81a771963 Update icon.rc 2017-11-10 12:48:32 -02:00
FellippeHeitor 00c80f91ca Fixes alt+gr not working in dialogs. 2017-11-10 12:17:50 -02:00
FellippeHeitor 0a854f10d1 Build number update. 2017-11-05 17:29:11 -02:00
FellippeHeitor 9481dbcd16 $INCLUDE linking now points to the line number that caused the last error. 2017-11-05 17:03:26 -02:00
FellippeHeitor caaafda7ec Fix retrieval of ideindentsubs setting. 2017-11-05 13:52:05 -02:00
Luke Ceddia 9696cc9ff8 Build number update 2017-11-05 13:51:47 +11:00
Luke Ceddia 9b720f3aef Fix AltGr 2017-11-05 02:26:15 +11:00
FellippeHeitor 2a51fa6c0e Allows Shift+Click to select area from cursor. 2017-10-31 19:43:22 -02:00
FellippeHeitor 40da21aacd Add tweaks to Line Numbers in config.txt.
- ShowLineNumbersSeparator will separate the line numbers panel from the main text are with CHR$(179);
- ShowLineNumbersUseBG will use the same color assigned to current line highlight in the line numbers panel.
2017-10-31 04:35:20 -02:00
FellippeHeitor fb9a54a210 Mouse input adapted to work when line numbers are visible. Also:
Line numbers use the same color assigned to "line highlight".
2017-10-31 03:51:19 -02:00
FellippeHeitor 867f62bcc7 Makes possible to edit/navigate with line numbers turned on (keyboard). 2017-10-31 01:00:15 -02:00
FellippeHeitor e5b7327533 Double-clicking an include file name opens the IDE at the error line.
When an error in an include file is reported, the IDE also shows what line inside the external file caused the error. Double-clicking the include line will open the file in a second instance of the IDE and position the cursor in the line that caused the last error.
2017-10-30 11:23:37 -02:00
FellippeHeitor 6b5cba468f Fix retrieval of ideindentsubs from config.txt 2017-10-30 11:23:28 -02:00
FellippeHeitor c096896105 Adds -l:line# command line switch to start the ide at a certain line. 2017-10-30 11:23:15 -02:00
FellippeHeitor 88d6911ec9 Add option to toggle Line Numbers from View menu. Also:
- Align line numbers to right;
- Highlight line number of current line;
2017-10-30 11:22:33 -02:00
FellippeHeitor a4fe64329f Fixes condition that wouldn't allow "null" as a var name is some cases.
Declaring a variable called "null" was ok, but passing it to a sub was not.
2017-10-26 21:36:43 -02:00
FellippeHeitor ce9a0c07c6 First attempt at line numbers.
So far:
- Line numbers show (they still get stuck if you create a new empty file).
- Text is shifted right accordingly.
2017-10-26 10:20:19 -02:00
FellippeHeitor e0b58b155a Build number update. 2017-10-24 10:07:04 -02:00
FellippeHeitor 5fb0bc3050 "Double-click to launch $INCLUDE file" now waits for new window to close.
- The IDE will wait until the second instance is closed, check if the file was changed and recompile accordingly.
- Interface lights dim while the second instance is being used.
2017-10-23 10:19:08 -02:00
FellippeHeitor 5a84de731f Fix to C++ errors due to empty parameters passed to FUNCTIONS.
- QB64 now warns users of syntax errors in cases such as a& = _RGB32(255, , 255)
2017-10-23 10:16:06 -02:00
FellippeHeitor 3f7a0a59d4 Bypass saving invalid window coordinates at first run. 2017-10-22 20:40:37 -02:00
FellippeHeitor 498f189754 Build number update. 2017-10-22 19:36:32 -02:00
Luke Ceddia 8956a1ee4f Merge branch 'errorlogging' 2017-10-23 08:19:26 +11:00
FellippeHeitor 1113a11107 And now we try to please *nix systems. 2017-10-22 17:40:59 -02:00
FellippeHeitor f223cfe028 Restore SUB Build's "count separators" method to please Windows XP. 2017-10-22 17:16:54 -02:00
Fellippe Heitor 50b1002aa4 Remove reference to undeclared identifier preventing compilation (macOS)
Details at http://www.qb64.net/forum/index.php?topic=14553.msg126181#msg126181

Signed-off-by: Fellippe Heitor <fellippeheitor@gmail.com>
2017-10-18 19:48:17 -02:00
FellippeHeitor 959307033e Avoid moving the IDE window to 0,0 in the first run (Windows). 2017-10-17 02:29:47 -02:00
FellippeHeitor 0761c1f20f Minor IDE nuisances fixed (i).
- Fixes CTRL+letter being inserted in the text area even after combos were processed.
- Fixes CTRL+letter activating menu items.
- Fixes a menu being preselected when activated with ALT if the mouse was hovering it (hovering still works *after* the menu is launched)
2017-10-17 02:07:47 -02:00
FellippeHeitor 23406bc4d4 Reset compfailed to 0 when the source is edited again. 2017-10-15 20:00:12 -03:00
FellippeHeitor 677f5cd2ea Adds link to compilelog.txt in the Status area when compfailed = 1. 2017-10-15 19:46:16 -03:00
Luke Ceddia 1eef0d29e5 Add c++ error logging for windows too 2017-10-15 18:56:59 +11:00
FellippeHeitor fc02c623c8 Write new window position as soon as it's detected. 2017-10-14 20:07:35 -03:00
FellippeHeitor b62e39b9f9 Tweak to auto-position (IDE) - allows coordinates (0, 0). 2017-10-14 19:52:32 -03:00
FellippeHeitor cff8ae7561 Make AutoPosition setting default to true. 2017-10-14 17:34:33 -03:00
FellippeHeitor c8a219bb70 Restore "OK" in the status bar after translation to C++ is done. 2017-10-14 14:33:38 -03:00
Luke Ceddia ecd1897c44 Log C++ errors to temp/compile.log for Linux/OSX 2017-10-15 01:03:38 +11:00
FellippeHeitor f971af8328 Resizing the IDE while a menu is open now works as expected. 2017-10-14 04:21:50 -03:00
FellippeHeitor 292dbbf49d Add "Show compilation errors immediately" to Options menu.
By unchecking the new switch in the Options menu, the IDE won't warn and "red-light" every single mistake until you tell it to start compilation with F5.

Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
2017-10-14 04:09:54 -03:00
FellippeHeitor 9ab94215db Custom keywords highlighting (SUB/FUNCTION/custom dictionary).
- SUBs and FUNCTIONs names will be highlighted throughout the code.
- The same color assigned to metacommands is used for custom keywords.
- A custom dictionary can also be added to internal/config.txt.
- SUBs and FUNCTIONs in $INCLUDEd files also get highlighted, as long as there aren't any errors preventing compilation.

Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
2017-10-14 01:15:09 -03:00
FellippeHeitor 0f9207ccda Build number update. 2017-10-10 02:26:54 -03:00
FellippeHeitor 623f733d69 Updated list of keywords. 2017-10-10 01:38:56 -03:00
FellippeHeitor 5ba4cde9ac Tweak to previous commit "close menus when IDE loses focus". 2017-10-10 00:19:50 -03:00
FellippeHeitor ce201095a7 Build number update. 2017-10-08 22:49:06 -03:00
FellippeHeitor 749ec5222f Improved copy/paste; Improved "cursor after pasted content" behavior.
Empty lines now get properly copied/pasted.
2017-10-08 22:48:34 -03:00
FellippeHeitor 18a43777e7 Improved focus detection behavior (Windows-only).
Menus are closed when the IDE loses focus.
2017-10-08 22:47:42 -03:00
FellippeHeitor 83c1afdb52 Add IDE cursor start and end values to config.txt.
Default cursor height for non-insert mode is LOCATE , , , 8, 8. Start and End values can now be customized in the config.txt settings file (values range from 0 to 31).
2017-10-08 22:46:35 -03:00
FellippeHeitor a16c9a4093 Makes bracket highlight/multi-selection highlight color customizable. Also:
- Minor improvements to syntax highlighter;
- Hides cursor and line highlight when window loses focus (Windows-only);
2017-10-08 22:44:40 -03:00
FellippeHeitor f5bb8a90bd Adds ENDIF to valid keyword for highlight. 2017-10-08 22:38:59 -03:00
FellippeHeitor 7d842c9927 Allow ? to be highlighted even if immediately followed by another "word".
Cases like ?myVar% get properly highlighted.
2017-10-07 03:35:51 -03:00
FellippeHeitor 70fd9d872e Allow multihighlight for var.element items. Also:
- Improved number detection (negatives, decimals, trailing type suffixes);
- Properly clear the status area before showing "converting..." message for QB45BIN.
2017-10-07 03:16:46 -03:00
FellippeHeitor e8e1da2987 Add ENDIF (no space) and ? (question mark) to valid keywords. 2017-10-07 03:08:43 -03:00
FellippeHeitor 65c87a0da8 Prevent "Erase" confirmation from closing "IDE Colors" dialog. 2017-10-06 03:42:06 -03:00
FellippeHeitor d54a5cc2e3 Allows non-destructive retrieval of version 1.1 color schemes.
Version 1.1 color schemes contained only 6 colors. This patch allows users to maintain their existing schemes while adding keyword and number highlight colors to them. Also:

- Invalid schemes are now just skipped, instead of destroyed.
- Scheme selection arrows and "Save"/"Erase" buttons are more visible/distinguishable between active/hovered/inactive states.
- Confirmation dialog before erasing user schemes.
2017-10-06 03:15:49 -03:00
FellippeHeitor a1f22afa22 Prevent IDE colors from reverting back to default when resizing. 2017-10-05 22:57:25 -03:00
FellippeHeitor d8ea561736 Fix color of inactive menu items. 2017-10-04 23:08:51 -03:00
FellippeHeitor 35105dc9c1 New preset theme: 'Dark side'.
'Classic QB4.5' theme fixed.
2017-10-04 04:06:27 -03:00
FellippeHeitor 1f6b88e7f5 Numbers highlight. 2017-10-04 03:42:39 -03:00
FellippeHeitor 6caa67261c Tweak to bracket highlight and multi-highlight selection. 2017-10-04 01:36:59 -03:00
FellippeHeitor 7c383a05a7 Add SMOOTH and STRETCH to keywords list. Fixes $IF block highlighting. 2017-10-04 00:50:49 -03:00
FellippeHeitor 8e68dd06d4 Cleaned up list of keywords. Minor tweak to $END IF colorization. 2017-10-03 23:43:47 -03:00
FellippeHeitor 68a2ec44f9 Fixes sticky ALT key in Windows.
Minor tweak to Dark blue preset theme.
2017-10-03 23:13:08 -03:00
FellippeHeitor 997d2bb734 Improved highlighting of metacommands in comments. 2017-10-03 21:12:22 -03:00
FellippeHeitor b60fdb780a Fine adjustments to syntax highlighting. 2017-10-03 11:52:03 -03:00
FellippeHeitor 739aaef7ac Improves syntax highlighter with Keyword Highlight. 2017-10-02 01:16:35 -03:00
FellippeHeitor 19bbf5fde6 Build number update. 2017-10-01 19:06:46 -03:00
FellippeHeitor e6a265f0e4 Integrates qarnos's QB45BIN.
Upon attempting to load a binary file, the IDE will detect that the file type is a QuickBASIC 4.5 binary file and offer to convert it to plain text using qarnos's QB45BIN utility.
2017-10-01 17:51:28 -03:00
FellippeHeitor 89f2e12cc8 Remove references to DEPENDENCY_USER_MODS from subs_functions.bas. 2017-09-27 22:04:40 -03:00
FellippeHeitor 204ad079c9 Tweak to multihighlight.
Highlights only full matches.
2017-09-27 11:53:05 -03:00
FellippeHeitor 0e7b1c41af Window resizing improved (changes apply in real time). Also:
- Disable resizing when the help system is open and when dialogs are displayed.
- Minor fix to multi-highlighting to also allow it to hightlight instances of the same text seleted in the current line.
2017-09-27 10:10:04 -03:00
Luke Ceddia bdc3250b89 Resolved the issue of user mods not working for $console:only programs 2017-09-25 21:56:24 +10:00
FellippeHeitor 1330f8fa14 Make the "Change" dialog stay out of the way when "Find and verify"ing. 2017-09-25 03:11:38 -03:00
FellippeHeitor 37ab5feb0e Minor adjustments to menu shortcuts; Also:
- Fix to ALT+Key entering text in textboxes (dialogs).
2017-09-25 02:50:13 -03:00
FellippeHeitor 5f822f21ce Adds multi-highlight.
When a a single-line selection is made, every instance of the same "word" on the current screen gets highlighted. Can be disabled in Options->IDE colors.
2017-09-25 02:30:40 -03:00
FellippeHeitor 0a7099be53 Make sub indenting and "cursor after pasted content" default. 2017-09-25 02:29:18 -03:00
FellippeHeitor f0692d55b2 New IDE shortcuts.
- Ctrl+N = New file
- Ctrl+O = Open file
- Ctrl+R = Comment selection (add ')
- Ctrl+Shift+R = Uncomment selection (remove ')
2017-09-25 02:28:41 -03:00
SteveMcNeill 4f23fd9b7b Add function _AUTODISPLAY so user can get display/autodisplay staus 2017-09-24 18:41:00 -04:00
FellippeHeitor 5922d112bf Adds _WINDOWHANDLE, _WINDOWHASFOCUS and _TITLE$ (function).
- _WINDOWHANDLE exposes the current window's handle (Windows-only).
- _WINDOWHASFOCUS returns true (-1) when the program is the foremost window (Windows-only). Always returns -1 in other OSes.
- _TITLE$ (function) returns the last title set using the _TITLE statement.
2017-09-24 08:12:13 -03:00
SteveMcNeill d3a2424b73 Added right and middle button support for _SCREENCLICK with Windows 2017-09-24 01:08:29 -04:00
FellippeHeitor 887aff63dd Build number update. 2017-09-21 23:55:59 -03:00
FellippeHeitor 70ec5930a3 Build number update. 2017-09-11 10:30:49 -03:00
FellippeHeitor 8fe5804fa2 Sets the proper dependency (DEPENDENCY_SCREENIMAGE) for clipboard features.
Using $CONSOLE:ONLY without the above causes compilation fails.
2017-09-11 10:29:45 -03:00
FellippeHeitor f337403cd5 Build number update. 2017-09-09 13:18:34 -03:00
FellippeHeitor 8af68290e9 $EXEICON now automatically sets the window's _ICON.
Previously you'd have to call _ICON right after $EXEICON.

Old code that call _ICON after $EXEICON doesn't need to be adapted.
2017-09-06 11:21:39 -03:00
FellippeHeitor e3bb55da1a Add _CLIPBOARDIMAGE (statement and function)
- Fetch an image from the clipboard with handle& = _CLIPBOARDIMAGE
    - If there isn't an image in the clipboard, handle& will be -1.

- Copy a valid image to the clipboard (All screen modes, except 0) with _CLIPBOARDIMAGE = handle&
2017-09-06 11:19:54 -03:00
FellippeHeitor 862aacdeac Fix TAB + ELSE bug for command line compilation.
A line starting with a TAB character and an ELSE clause would be incorrectly regarded as having a syntax error when compiling via command line interface. This fixes that issue.
2017-08-22 00:30:44 -03:00
FellippeHeitor 34d6b239bf Build number update. 2017-08-17 23:15:30 -03:00
FellippeHeitor 2f217fce6b Function _BLINK returns -1 if blinking is enabled; 0 if disabled. 2017-08-16 00:40:37 -03:00
FellippeHeitor 2c153b3db0 Adds _BLINK {ON|OFF} to disable blinking in SCREEN 0 for colors 16-31.
Thanks to _vince for finding the right spots where blinking was set. Or flashing, you choose the naming.
2017-08-16 00:11:31 -03:00
Luke Ceddia 8238feba75 Squash annoying message from openal on quit 2017-08-11 21:47:05 +10:00
Luke Ceddia 2089a95b8b Separate left/right audio channels for stereo audio files.
No _SNDRAW or PLAY yet. Also removed need for sound capability strings.
2017-08-10 22:05:16 +10:00
FellippeHeitor b3afefe0dc Adds the ability to show contextual help (syntax) for SUB/FUNCTIONs. 2017-08-04 10:59:11 -03:00
SteveMcNeill dc22c6e5a8 Print Output Simplification
Minor change to simplify and clean up the output which QB64 creates with
PRINT statements with multiple print segments such as PRINT "A"; "B";
"C".
2017-08-02 21:40:32 -04:00
SteveMcNeill 78d4b607bd Minor change to mem structure
Change to mem.TYPE from LONG variable type to OFFSET.  This prevents
4-bytes padding from throwing off values for mem.ELEMENTSIZE and
mem.IMAGE on 64-bit systems.

Patch should work on Mac, Linux, and Windows; both 32-bit and 64-bit
versions, giving the correct results for mem.ELEMENTSIZE and mem.IMAGE
from now on.
2017-08-02 01:00:01 -04:00
FellippeHeitor 47437d28d0 Update version.bas
Build number update following commit b75eed2
2017-07-24 15:54:21 -03:00
FellippeHeitor f01d7252c2 Build number update (following changes introduced in cf99f38). 2017-06-28 22:48:47 -03:00
FellippeHeitor cf99f38bcf Add _CONTINUE, to jump to the end of FOR..NEXT/DO..LOOP/WHILE..WEND blocks. 2017-06-28 22:47:17 -03:00
FellippeHeitor fa75937aad Build number update (following changes introduced in 4a950c7). 2017-05-22 11:34:01 -03:00
FellippeHeitor 4a950c7c94 Implements multiple temp folders for Linux/macOS. 2017-05-18 01:08:06 -03:00
FellippeHeitor 60e4054aa5 Double-clicking on an $INCLUDE statement opens the file in a new window. 2017-05-14 23:10:47 -03:00
FellippeHeitor 0b9f507565 Add "Web" as a valid key for $VERSIONINFO 2017-04-29 17:41:04 -03:00
FellippeHeitor 8d961597d9 Implements $VERSIONINFO metacommand.
Allows embedding meta information on the final binary (Windows only).
2017-04-29 04:09:20 -03:00
FellippeHeitor d3fd0be2a4 [minor] Fix the status message for $EXEICON. 2017-04-29 00:34:16 -03:00
Luke Ceddia 380c7bc15e Restore SUB/FUNCTION sorting 2017-02-14 09:27:49 +11:00
FellippeHeitor 665dd67641 Remove SUB sorting in the SUBs dialog. 2017-01-20 22:56:50 -02:00
Luke Ceddia 2d065c3681 Add files for building via Travis 2016-11-09 15:23:02 +11:00
Luke Ceddia e3e1bde227 Update Buildnum$ 2016-10-10 23:21:02 +11:00
Galleondragon bb46b6d75c Updated version number to 1.1 2016-09-10 17:19:49 -07:00
FellippeHeitor b9ff7ce9b7 Proper embedding of qb64.ico into the Windows binary.
Changes made to the setup batch file used internally.
2016-09-04 12:12:30 -03:00
Luke Ceddia 01a697689b Revert "Add QB64's icon to the Windows binary."
This reverts commit cca11e8f90.

This and previous reverts remove ICON-related changes, which were
simply too questionable (in stability terms) this close to a planned
release.
2016-09-04 23:31:28 +10:00
Luke Ceddia 9a0bc93473 Revert "Make $EXEICON errors only a warning when compiling via command line."
This reverts commit 6ac4f79294.
2016-09-04 23:30:59 +10:00
Luke Ceddia 2655a35b3c Revert "Bring back the $EXEICON for Windows binaries."
This reverts commit 2e2a3de2be.
2016-09-04 23:30:50 +10:00
FellippeHeitor 2e2a3de2be Bring back the $EXEICON for Windows binaries. 2016-09-03 14:13:34 -03:00
FellippeHeitor 6ac4f79294 Make $EXEICON errors only a warning when compiling via command line. 2016-09-03 08:46:22 -03:00
FellippeHeitor cca11e8f90 Add QB64's icon to the Windows binary. 2016-09-03 00:53:21 -03:00
FellippeHeitor b4d71085bd BuildNum$ Update. 2016-09-01 23:43:11 -03:00
FellippeHeitor f829b4b640 Temporary remedy for confusing error messages after internal errors.
Bringing back the old "Compiler error (check for syntax errors)" message.
2016-09-01 23:37:37 -03:00
FellippeHeitor e6425a5f11 Give proper error message when 'internal' folder can't be found. 2016-09-01 21:38:24 -03:00
FellippeHeitor d93a2812bf Fix OPTION _EXPLICIT ignoring variables created with SHARED in SUBs.
Also:
- When a "variable not defined" error is triggered, the expected type is now also reported.
2016-08-27 15:09:15 -03:00
FellippeHeitor 366636e584 Fix to precompiler parser deleting $LET statements in SUBs. 2016-08-24 09:08:42 -03:00
FellippeHeitor 1146ca18bd Minor tweak to F1 key behavior.
F1 for contextual help previously required the cursor to be inside the keyword. Now it can be to the right of the word, just like in QB4.5.
2016-08-20 00:17:07 -03:00
FellippeHeitor 51b6fda556 Improved Backspace behavior (deletes a whole word at a time with CTRL)
Windows and Mac only.

Also: Improved behavior of Delete key when joining lines.
2016-08-18 23:45:43 -03:00
FellippeHeitor 26a6c94f63 Tweaks to $EXEICON implementation
No error message if not Windows, proper error message if icon.o can't be generated.
2016-08-18 07:25:56 -03:00
FellippeHeitor 127c4acd88 Add $EXEICON, which allows to embed an icon in the exe (Windows only).
Also:
- Revamp _ICON so it'll use the embed icon if it's called without parameters. The default QB64 icon is still used otherwise.
- Fix "Creating .EXE..." being printed in the wrong coordinates (IDE)
- Fix the new error message (when Debug is <> 0) so it'll show properly when compiling with -x.
2016-08-18 01:12:08 -03:00
Luke Ceddia 3f3016da6d Make DarkenFGBG a function so it gets treated as an array when IDE support is not compiled in. 2016-08-15 20:58:11 +10:00
Luke Ceddia a6ad741acf Fix scroll wheel on Linux (again). 2016-08-13 00:16:56 +10:00
Luke Ceddia e5226905bc Update buildnum$ 2016-08-12 12:14:14 +10:00
Luke Ceddia de14c256d9 When Debug is set, any QB errors will now trigger a more helpful error handler 2016-08-12 11:59:11 +10:00
Luke Ceddia 3a0c8ea521 Stop ide() throwing a silent IFC on startup 2016-08-11 21:41:40 +10:00
Luke Ceddia fc05f7d925 Fix parsing of corner-case negative exponents, such as 1-(1+r) ^ -y 2016-08-11 21:40:23 +10:00
FellippeHeitor 2576cbc7f4 Fix incorrect colorization of lines ending with '_
An underscore in the end of a line was being considered as a multiline indicator even if it was in a comment. That's fixed now.
2016-08-11 01:15:15 -03:00
Luke Ceddia b17fda7a61 Stop STATIC arrays in subroutines from segfaulting on Linux 2016-08-10 23:44:27 +10:00
FellippeHeitor 4bec88a288 Update BuildNum$
Matching build num update to the latest common.cpp alterations.
2016-08-07 21:13:57 -03:00
Luke Ceddia 84e542ef32 Fix evaluation of some boolean conditionals
Commit 7855219 introduced a regression which caused some IF
statements involving boolean operators and strings to
give a C++ compilation error.
2016-08-03 17:18:20 +10:00
FellippeHeitor 3045f6d7f5 Add preset color schemes and ability to create user defined schemes. 2016-08-02 03:17:15 -03:00
FellippeHeitor 073ab7e790 Fix stubborn textfield not letting you edit font size (Display dialog). 2016-07-31 20:36:34 -03:00
FellippeHeitor 2e89bed958 BuildNum$ update 2016-07-31 17:39:56 -03:00
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 b8fa2ba18d BuildNum$ update 2016-07-19 20:46:21 -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 cedd2c6a47 Replace _KEYCLEAR so that script setup will work on OS X.
Probably for Linux too.
2016-07-18 12:03:29 -03:00
FellippeHeitor 41937222b5 Buildnum$ update. 2016-07-17 22:06:44 -03:00
FellippeHeitor c3cb1acae9 Darken all IDE colors while compiling or running attached. 2016-07-17 20:12:59 -03:00
FellippeHeitor c00c92e4a2 Fix to ignore input while the IDE is waiting for execution to end.
Previously, if the IDE had focus while a compiled program was being run (F5), any input on the window would later be processed, messing up the source code sometimes. That's been fixed.
2016-07-17 17:41:30 -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
FellippeHeitor 90923af3db Add _INCLERRORFILE$, which reports the included file that last errored.
Also:
Change qb64.bas to produce C code that reports INCLUDE file names.
2016-07-08 22:48:00 -03:00