Commit Graph

280 Commits

Author SHA1 Message Date
Roy Qu 6b2a800d37 - enhancement: Support SDCC Project. 2023-08-17 19:24:49 +08:00
Roy Qu d720421830 - enhancement: Better layout for compiler options page. 2023-08-15 11:57:32 +08:00
Roy Qu 72883cf8fb streamline codes 2023-08-15 10:57:03 +08:00
Roy Qu 08693b81ec - enhancement: Use sdcc to generate bin files without linking sdcc startup codes. 2023-08-15 00:29:48 +08:00
Roy Qu c2c2e3c9b1 fix: Options are lost when compiling using sdcc 2023-08-14 18:03:25 +08:00
Roy Qu b16a85d033 - Retrieve sdcc predefined macros (hacking).
- Stop compiling if ihx file is not correct created.
 - Run/Debug/Generate assembly actions are correctly diabled.
2023-08-14 12:22:24 +08:00
Roy Qu acc1fbd4aa support compile sdcc file 2023-08-13 18:58:04 +08:00
Roy Qu bfc1b03ae3 use sdcc to create hex/bin files 2023-08-13 18:53:48 +08:00
Roy Qu 707358817c - enhancement: Autowrap tool output text. 2023-08-13 15:41:17 +08:00
Roy Qu d2b0653504 - enhancement: Autowrap tool output text. 2023-08-13 15:10:33 +08:00
Roy Qu 738faf0c90 - fix: Crash if close file while auto syntax checking.
- enhancement: support sdcc compiler.
2023-08-13 14:46:53 +08:00
Roy Qu d86f98b0ee update chinese translations 2023-08-12 22:25:30 +08:00
Roy Qu f462d6708d - fix: Crash if close file while auto syntax checking. 2023-08-12 13:51:35 +08:00
Roy Qu dfbdf604fb - fix: Filename in the gcc 13.1 error messages when building project is using wrong encoding. 2023-08-08 12:44:46 +08:00
Roy Qu d629a496ff - fix: Shouldn't auto indent lines starts with "\\".
- enhancement: When problem case's expected output is not too large (<= 5000 line), highlight text in the first different line in the expected output.
  - enhancement: Highlight text in the first different line using the error color.
  - enhancement: Add the option "redirect stderr to the Tools output panel" in the options dialog -> executor -> problem set page.
2023-07-12 12:08:26 +08:00
Roy Qu 48e6dbc024 - fix: Replace panel should be hidden after finding occurrencies. 2023-07-02 23:41:32 +08:00
Roy Qu 89cc44bcf6 - enhancement: support -std=c++2d gcc parameter
- fix: vertice shader(.vs) and fragment shader(.fs) files can't be openned by double click in the project browser.
2023-05-30 11:33:41 +08:00
AlexN-114 d253f7e83e
Update projectcompiler.cpp (#111)
Fixes a problem with generating "Makfile.win"
2023-04-13 10:20:30 +08:00
Roy Qu 7bc4365573 - change: Remove the compiler set option "Syntax error when object larger than" 2023-04-04 08:27:22 +08:00
Roy Qu 7a64538982 - change: Change compiler set option "Syntax error when object larger than" to "Syntax error when function frame larger than"
- fix: Projects created by some templates are not correct when editor's default encoding is not utf8.
2023-03-31 17:39:08 +08:00
Roy Qu 5f1aa5f620 minor change 2023-03-27 08:41:12 +08:00
Roy Qu a8695a96d0 - enhancement: Options in compiler set settings, to generate protection code for stack smashing attack. (Enable for Debug settings by default)
- enhancement: Options in compiler set settings, to enable address sanitizer. Not available in windows.(Enable for Debug settings by default)
2023-03-14 10:02:23 +08:00
Roy Qu 99ca9796b1 fix typos. 2023-03-13 22:00:55 +08:00
Roy Qu 436a047821 - enhancement: Options in compiler set settings, to generate syntax error for large stack objects. 2023-03-13 21:57:15 +08:00
Roy Qu 16e45f1b9c - change: Remove compiler set options that's rarely used. 2023-03-13 09:15:05 +08:00
Roy Qu d29ec1ee0f refactor: make most expression evaluation funcs const 2023-03-11 17:32:57 +08:00
Cyano Hao bdfa4c066b
Linux package: bundled terminal in AppImage and minor adjustment (#104)
* AppImage: build Alacritty with from-scratch build environment

* enrich compatible terminal list; fix Linux terminal determination

* Linux: get rid of libicu
2023-03-04 18:44:39 +08:00
Roy Qu 34fc0d75d2 minor change 2023-03-02 18:34:42 +08:00
Roy Qu 4ab15c2ee1 - enhancement: When first display two editor panes, auto make them the same width
- change: Don't rebuild the whole project when run/debug, if only
contents of project unit file is modified.
- fix: rebuild may not work, if project's parallel build option is
enabled.
2023-03-02 18:15:31 +08:00
Roy Qu 56972d168e - fix: Can't correctly parse function pointer var definition. 2023-03-01 22:53:14 +08:00
Roy Qu e7013cff1a - fix: Project files that not in the project folder is not correctly handled in makefile.
- enhancement: Improve support for function pointer typedefs.
2023-03-01 11:29:30 +08:00
Roy Qu 78739e388a - enhancement: Add "Languages" page group in the options dialog.
- enhancement: Add "ASM Generation" page in the options dialog.
  - change: Move "Custom C/C++ keywords" from group "Editor" to "Lanauges" in the options dialog.
  - change: Rename "Folder" page to "Folder / Reset default settings" in the options dialog.
  - enhancement: Generate asm with/without SEH directives.
  - enhancement: Generate asm using intel style/att style.
  - enhancement: make description for jump/cmov/setb instructions more explicit. (used for signed or unsigned)
2023-02-28 10:49:50 +08:00
Roy Qu a768d74116 - enhancement: Syntax check for assembly files.
Don't show debug tips in cpu info dialog
2023-02-27 08:53:39 +08:00
Roy Qu a7c73200d5 - enhancement: Keep project compile warning & error infos in the issues table, before project file is edited. 2023-02-24 12:17:30 +08:00
Roy Qu 8ad1915acd - change: Don't stop debug when breakpoint can't be set 2023-02-22 10:39:20 +08:00
Roy Qu 5bd1d92d53 remove no use code 2023-02-20 16:37:58 +08:00
Roy Qu 96aa836040 - enhancement: Auto create project custom executable folder if not existing. 2023-02-18 12:54:28 +08:00
Roy Qu 24734bfb28 - enhancement: If executable doesn't have symbol table, inform user and stop.
- enhancement: If breakpoint is setted but executable doesn't have debug info ,inform user and stop.
  - enhancement: If current compiler set has "strip addition infos(-s)" enabled, inform user and stop.
2023-02-18 12:08:03 +08:00
Roy Qu 3f971b34bb - enhancement: Improve auto indent for embedding no-brace statements like for-for-if. 2023-02-16 22:27:04 +08:00
Roy Qu a31bc6ef17 more keywords for asm 2023-02-13 21:49:19 +08:00
Roy Qu 08fdeca219 - fix: Can't compile files with chinese characters in filenames using winlibs mingw gcc 2023-02-13 19:21:11 +08:00
Roy Qu 9976ee248a - enhancement: If GAS source file has "_start" label, compile it with "-nostartfiles". 2023-02-12 18:15:41 +08:00
Roy Qu 382da1d747 add -nostdlib when compile assembler program that has _start 2023-02-12 15:13:04 +08:00
Roy Qu 23d5bb85b6 Linux fix 2023-02-12 14:22:45 +08:00
Roy Qu 0e3441e604 - fix: Crash when debug project that has nasm files.
- enhancement: Generate debug info for nasm files in Linux/MacOS.
  - enhancement: Compile/Run/Debug GAS source files.
  - enhancement: Compile/Debug GAS source files in project.
2023-02-12 12:53:14 +08:00
Roy Qu cc1e42193d - enhancement: Add "assembler" tab in the project options dialog's custom compiler parameters. 2023-02-09 16:33:25 +08:00
Roy Qu 78ff319a75 - enhancement: Support compile asm files using nasm in the project. 2023-02-08 21:07:41 +08:00
Roy Qu 62737d6716 - fix: Correctly handle files whose name contains spaces in the generated makefile.
- fix: Correctly handle custom obj folder in the generated makefile.
2023-02-08 17:32:52 +08:00
Roy Qu 5d3a933932 - enhancement: Change the way to calculate execution time. 2023-02-07 20:27:31 +08:00
Roy Qu 0ccec06f33 add project encoding 2023-01-24 11:31:30 +08:00
Roy Qu c77a25f109 - enhancement: Save project files' real encoding;
- enhancement: Use project files' real encoding information when generating the makefile.
2023-01-19 20:04:05 +08:00
Roy Qu 4456772fa7 - enhancement: Code Completion now respect compiler set's language standard settings. 2023-01-19 11:08:32 +08:00
Roy Qu 6072944c23 - fix: Save may crash app if the encoding codec is failed to load.
- enhancement: support open and save utf-16/utf-32 BOM files. (but gcc can't compile)
2023-01-14 21:51:55 +08:00
Roy Qu bc1b22ad25 - enhancement: Rename symbols won't remove all breakpoints/bookmarks
- enhancement: Batch replace won't remove all breakpoints/bookmarks
  - enhancement: Execute parameters can be used in debug.
2023-01-12 12:07:22 +08:00
Roy Qu 2041f813de - fix: Can't set project icon to "app.ico" in the project folder, if the project doesn't has icon.
- fix: Resource compilation items is missing in the auto generated makefile, if the project's icon is removed and re-added.
2022-12-30 19:48:12 +08:00
Roy Qu babecbd3bc change "ConsolePauser.exe" to "consolepauser.exe" in all codes 2022-12-30 09:06:39 +08:00
Roy Qu 988afaac7a - enhancement: Add "Resources" in project option's dialog's custom compiler parameter page 2022-12-26 22:55:00 +08:00
Roy Qu 0af113e2a1 auto remove a.exe generated by tcc 2022-12-25 12:00:09 +08:00
Roy Qu dde47e0226 - fix: Makefile error when "Use precompiled header" is enabled in the project option dialog. 2022-12-22 22:01:55 +08:00
Roy Qu 4cb432da74 Improve the layout of the makefile auto generated. 2022-12-21 09:17:27 +08:00
Roy Qu e232ce77c9 - enhancement: Auto add "lib" to the output of static/dynamic library projects, if project name don't start with "lib". 2022-12-21 09:15:39 +08:00
Roy Qu fc07b4dcd4 - enhancement: Don't add "-g3" option when generate assembely.
- enhancement: Generate assembly is not correctly disabled when current file is not C/C++.
2022-12-17 17:20:33 +08:00
Roy Qu 492345b939 - enhancement: "Trim trailing spaces" in code menu
- change: Don't auto disable compile and debug buttons.
  - enhancement: Better error messages for missing compile/debug/make programs.
  - enhancement: "Show special chars" in options / editor / font
  - fix: Lost compiler set settings if a compiler set's bin dirs is empty.
  - enhancement: Better error message when trying to debug with Release compile set.
2022-12-16 11:10:46 +08:00
Roy Qu b6b046b0e2 warning user when make program no exists. 2022-12-16 09:10:39 +08:00
Roy Qu 02e6748db5 - fix: Buttons in options -> compiler -> compiler set -> programs are not usable.
- enhancement: Don't check existence of gcc/g++/make/gdb at startup.
  - enhancement: Auto disable "compile" button if gcc doesn't exist.
  - enhancement: Auto disable "debug" button if gdb doesn't exist.
  - enhancement: Auto disable "compile" button for project if make doesn't exist.
2022-12-13 15:58:27 +08:00
Roy Qu 2520ddf8f5 - enhancement: Show memory usage for problem cases. 2022-12-13 08:49:20 +08:00
Roy Qu b1ca0bb600 - enhancement: Import FPS (free problem set) files. 2022-12-11 19:47:43 +08:00
Roy Qu f9fb966c38 - enhancement: Add "Generate Assembly" in "Run" Menu
- enhancement: Improve highlighter for asm
2022-12-01 22:10:44 +08:00
Roy Qu 82564239b9 - enhancement: project's custom compile include/lib/bin directory is under folder of the app, save them using the path relative to the app 2022-11-16 09:24:42 +08:00
Roy Qu 052f4610ee - fix: crash when alt+mouse drag selection 2022-11-10 09:05:34 +08:00
Roy Qu 93751d1b23 - fix: When start parsing and exit app, app may crash
- enhancement: add "Allow parallel build" option in project option dialog's custom compile options page
  - fix: crash when rename project file
  - fix: When remove project file, symbols in it not correctly removed from code parser
  - fix: infos in class browser (structure panel) not correctly updated when add/create/remove/rename project files
2022-11-06 22:51:14 +08:00
Roy Qu 01c1e96aeb - change: Don't turn on "Show some more warnings (-Wextra)" option by default for DEBUG compiler set
- fix: Changes mainwindows's compiler set combobox not correctly handled for project
  - change: Don't localize autogenerated name for new files and new project (new msys2 gcc compiler can't correctly handle non-ascii chars in filenames)
2022-10-30 11:58:42 +08:00
Roy Qu 819d217708 - change: Don't turn on "Show some more warnings (-Wextra)" option by default for DEBUG compiler set 2022-10-29 20:51:31 +08:00
Roy Qu 0c1402a386 - change: remove "Optimize for the following machine" and "Optimize less, while maintaining full compatibility" options in the compiler setting panel, which are obseleted.
- change: escape spaces in the executabe path under linux.
2022-10-29 17:21:38 +08:00
Roy Qu 3cbd323f97 fix: syntax check issues for new file not correctly parsed 2022-10-26 08:12:00 +08:00
Roy Qu 5edcad104e - enhancement: before run a project'executable, check if there's project file newer than the executable 2022-10-25 19:09:46 +08:00
Roy Qu 2e7391d870 - enhancement: auto locate current open file in the project view panel 2022-10-24 20:01:46 +08:00
Roy Qu 55b63a4f95 - enhancement: refresh project view for git status won't redraw project structure
- enhancement: auto save project options after the compilerset option for project resetted
  - enhancement: "." and ".." in paths of issues not correctly handled
  - enhancement: auto locate the last opened file in the project view after project creation
  - enhancement: separate compiler's language standard option for C / C++
  - fix: compiler settings not correctly handled when create makefile
2022-10-24 19:23:43 +08:00
Roy Qu 6d2ce9035d - reduce memory usage when deciding file types
- enhancement: refresh project view for git status won't redraw project structure
  - enhancement: auto save project options after the compilerset option for project resetted
  - enhancement: "." and ".." in paths of issues not correctly handled
2022-10-24 17:23:37 +08:00
Roy Qu 012628aef3 - fix: editor & class browser not correct updated when editor is switched but not focused
- fix: when invalidating a c/c++ source file, statements that not declared in it are wrongly removed.
2022-10-23 10:40:00 +08:00
Roy Qu 93ce54d688 remove debug info 2022-10-21 09:58:19 +08:00
Roy Qu 382ffffdc8 minor fix: uninitialized variable 2022-10-21 09:56:14 +08:00
Roy Qu 7883397409 - enhancement: set compilation stage in the options / compiler set pages
- enhancement: set custom compilation output suffix in the options / compiler set pages
2022-10-12 19:48:35 +08:00
Roy Qu f67628863f - fix: minor memory leaks when set itemmodels
- fix: thread for parsing doesn't correctly released when parsing finished ( so and the parser)
2022-10-10 18:05:18 +08:00
Roy Qu 39c56aeff2 - change: clear tools output panel when start to compile
- change: don't show syntax check messages in the tools output panel
2022-10-10 07:11:59 +08:00
Roy Qu e557a31848 refactor project 2022-10-01 08:54:44 +08:00
Roy Qu 58a8b7e6dd - fix: when "cleary symbol table of hidden editors" is turned on, content in the editor reshown is not correctly parsed 2022-09-27 18:53:42 +08:00
Roy Qu 15bbf15d38 work save 2022-09-26 12:01:45 +08:00
Roy Qu 71a728a868 work save 2022-09-25 17:43:31 +08:00
Roy Qu 00ea7ee773 create QSynedit namespace 2022-09-25 09:55:18 +08:00
Roy Qu 17eb0c1f94 - enhancement: add select current word command in the Selection menu
- change: add Selection menu
  - enhancement: add memory view rows/columns settings in the settings dialog -> debugger -> general panel
  - enhancement: add "Go to Line..." in the Code menu
2022-07-21 15:28:07 +08:00
Roy Qu b2585f567a - enhancement: autolink add "force utf8" property (mainly for raylib) 2022-06-23 19:07:48 +08:00
Roy Qu 20690b7e51 - enhancement: add the option "Set Encoding for the Executable" to project's compiler options
- fix: can't correctly compile when link params are seperated by line breaks
2022-06-22 17:08:35 +08:00
Roy Qu 5c2c2bead2 - fix: when messages panel is docked at right, its width not correctly restored when restart. 2022-06-17 18:18:12 +08:00
Roy Qu 3d6d3c5210 - fix: when run/debug the executable, add current compiler set's bin folders to path
- fix: when open in shell, add current compiler set's bin folders to path
2022-06-16 21:34:31 +08:00
Roy Qu d01a60e88f - fix: c files added to a project will be compiled as c++ file. 2022-06-10 08:41:52 +08:00
Roy Qu cd6e5719b7 fix: autolink calculation not stable 2022-06-04 14:44:50 +08:00
brokencuph a96af19f2e make behavior consistent in adding compiler bindirs to Path
When running the compiled user program, current compiler's
binary directories should be added to the beginning of the
Path environment variable instead of the end, in order to
avoid loading other user-installed versions of
MinGW libraries (such as libstdc++).

Previously, in openShell of mainwindow.cpp the behavior has already
been updated, but in executablerunner.cpp and ojproblemcasesrunner.cpp,
the behavior is different. Now they have been changed to be
consistent with the one in openShell.
2022-05-30 16:01:28 +08:00
Roy Qu e920d230df - fix: "run current cases" dosen't correctly display real output 2022-05-26 21:22:07 +08:00
Roy Qu 06ee536431 - fix: tab icon not correct restore when hide and show a panel
- fix: the hiding state of the tools output panel is not correctly saved
2022-05-21 10:44:39 +08:00