Commit Graph

251 Commits

Author SHA1 Message Date
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
Roy Qu c56a020781 - enhancement: can debug files that has non-ascii chars in its path and is compiled by clang
- fix: when debugging project, default compiler set is wrongly used
2022-05-15 17:14:22 +08:00
Roy Qu ba29839cc4 fix: compiler arguments widget can't correct load settings 2022-05-14 20:27:21 +08:00
Roy Qu a3946b6015 - enhancement: add compiler commandline argument for "-E" (only preprocessing)
- enhancement: auto set output suffix to ".expanded.cpp" when compiler commandline argument for "-E" is turned on
  - enhancement: auto set output suffix to ".s" when compiler commandline argument for "-S" is turned on
2022-05-14 16:43:59 +08:00
Roy Qu 086dfd0865 finish: redesign compiler command line arguments 2022-05-14 11:21:59 +08:00
Roy Qu 58b7c55cd6 work save 2022-05-13 20:22:16 +08:00
Roy Qu 9867d0d931 update compiler set options 2022-05-12 15:28:08 +08:00
Roy Qu 45744b43f0 - change: highlight whole #define statement using one color
- enhancement: don't highlight '\' as error
  - enhancement: hide add charset  option in project options dialog's compiler set page, when project compiler set is clang
  - fix: When generating project's makefile for clang, don't add -fexec-charset / -finput-charset command line options
2022-05-02 21:47:01 +08:00
Roy Qu ffaa8086d1 compatible with qt 5.12 2022-04-28 19:02:34 -07:00
Roy Qu 845427b747 - fix: correctly parse link error message for clang 2022-04-27 19:13:38 +08:00
Roy Qu 945ba4ce73 - fix: use utf8 as the encoding for clang's error output 2022-04-27 15:26:13 +08:00
Roy Qu f16d015fdd - fix: gcc compiler set name is not correct in Linux
- enhancement: hide add charset option when the currect compiler set is clang
  - enhancement: auto check the c project option in the new project dialog
  - change: use "app.ico" as default name for the project icon file
  - fix: c file should use CC to build in the auto generated makefile
2022-04-25 21:48:04 +08:00
Roy Qu 784d94c541 - fix: don't add non-project header files to makefile's object rules 2022-04-09 09:35:17 +08:00
Roy Qu 39a0f87b94 - fix: can't build project that has source files in subfolders
- fix: can't build project that has custom object folder
  - fix: buttons in the project option dialog's output page don't work
2022-04-08 22:14:18 +08:00
Roy Qu f0c0197380 - fix: auto syntax check fail, if the file is not gbk and includes files encoded with utf8
- fix: running programs with input redirected can't exit at once.
2022-03-31 09:56:49 +08:00
Roy Qu 17516c8111 - fix: error in auto generate makefile under linux 2022-03-30 19:50:55 +08:00
Roy Qu 7bc5a2ee7a - fix: can't stop a freeze program that has stdin redirected.
- enhancement: context menu for problem cases table
2022-03-30 19:28:46 +08:00
Roy Qu a1614cef68 - enhancement: display problem case running time
- enhancement: set problem case input/expected output file
  - enhancement: auto position cursor in expected with output's cursor
2022-03-29 18:06:24 +08:00
Roy Qu facdb59c66 msvc compatibility 2022-03-29 09:43:24 +08:00
Roy Qu ac54496aeb - fix: auto syntax check use wrong charset, if a file in editing is not encoded with ANSI encoding
- enhancement: timeout for problem case test in
2022-03-27 11:44:52 +08:00
Roy Qu 090cccc033 refactor: remove ProjectUnit's mEditor field 2022-03-21 09:08:05 +08:00
Roy Qu 14d99711f8 linux:
- fix: if there is a Red Panda C++ process running program, other Red
Panda C++ processes can't run program correctly.
2022-03-16 20:39:11 +08:00
Roy Qu c67e196e72 - fix: if there is a Red Panda C++ process running program, other Red Panda C++ processes can't run program correctly. 2022-03-16 20:08:39 +08:00
Roy Qu 664922a301 - fix: convert to encoding setting in compiler set option not correctly handled
work save:
  git repository class
2022-02-15 00:01:50 +08:00
Roy Qu 62e51d166c Merge branch 'master' into git
# Conflicts:
#	NEWS.md
2022-02-11 21:55:20 +08:00
Roy Qu 71e885f941 - fix: huge build size for c++ files 2022-02-11 14:04:18 +08:00
royqh1979@gmail.com 4e16a2e186 - change: rename "compile log" panel to "tools output"
- fix: debug panel can't be correctly show/hide
  - enhancement: redesign tools output's context menu, add "clear" menu item
  - update translations
2022-02-10 12:03:56 +08:00
Roy Qu 0099aa436a - fix: when running problem cases, the output textbox might be wrongly cleared. 2022-02-04 19:14:10 +08:00
royqh1979@gmail.com 425b4a4e96 fix: crash while delete headers created by new header dialog 2022-02-01 16:17:28 +08:00
royqh1979@gmail.com a9f7cdd0e6 add timeout for flushing output buffer when running problem cases 2022-01-28 08:21:56 +08:00