Commit Graph

302 Commits

Author SHA1 Message Date
Roy Qu 16053882d4 minor fix 2024-02-25 11:27:25 +08:00
Roy Qu 7ac35a86b8 Painter optimization
ligature support
2024-02-25 11:22:49 +08:00
Roy Qu effecc80f9 fix: can't redo input char 2024-02-25 10:18:09 +08:00
Roy Qu 3b28894d51 Work save: 2024-02-24 21:14:19 +08:00
Roy Qu 322c4bba4f work save:
Optimization for text render
2024-02-24 15:05:46 +08:00
Roy Qu cb2b119e46 Done:
- Caret move
- Delete current char / last char
Fix:
- Selection not correctly drawn
2024-02-24 11:25:41 +08:00
Roy Qu 06b8850970 work save 2024-02-23 21:43:58 +08:00
Roy Qu 3eadbafe25 work save: support don't force fix-width 2024-02-23 17:51:38 +08:00
Roy Qu aa17ec785c work save 2024-02-23 12:41:13 +08:00
Roy Qu cf994d2ac6 work save: can display glyphs with code points > 0xFFFF now 2024-02-22 22:51:48 +08:00
Roy Qu 2489148da6 work save 2024-02-22 19:00:47 +08:00
Roy Qu cb1d2594da work save 2024-02-22 18:03:07 +08:00
Roy Qu d6fa17cdd9 work save 2024-02-22 14:24:29 +08:00
Roy Qu d2b8e8de0f work save 2024-02-21 18:30:43 +08:00
Roy Qu 6592b9cd73 Merge branch 'master' into emoji 2024-02-21 11:14:15 +08:00
Roy Qu 15c5956e1e minor change 2024-02-21 10:01:15 +08:00
Roy Qu e49f815119 Improve raw string syntax color 2024-02-21 09:58:18 +08:00
Roy Qu f9d8212712 - Enhancement: New option for compiler set "Don't localize gcc output messages" 2024-02-20 21:47:12 +08:00
Roy Qu 522722c418 - Enhancement: Improved Raw string support 2024-02-20 17:25:37 +08:00
Roy Qu 0faea6ac69 - Enhancement: Don't auto-indent in raw string. 2024-02-20 12:51:01 +08:00
Roy Qu f0c01e03aa - Fix: Can't goto definition/declaration into files that not saved. 2024-02-20 10:31:12 +08:00
Roy Qu 5953696beb work save 2024-01-20 21:08:46 +08:00
Roy Qu e78bb8db7e work save 2024-01-20 10:37:59 +08:00
Roy Qu 8ce58344db work save 2024-01-20 09:38:14 +08:00
Roy Qu 4a190ec873 work save 2024-01-19 21:36:54 +08:00
Roy Qu 14913d664e basic works 2024-01-19 19:41:45 +08:00
Cyano Hao 2b561729f3
Add xmake as alternative build system (#181)
* add xmake as alternative build system

* add feature matrix test
2024-01-19 09:25:21 +08:00
Cyano Hao 1394e6c135
Add Lua-based theme add-ons (#165)
* import Lua 5.4.6 as subproject

* Lua-based theme

* Lua theme showcase - random light

* add “Inky dark” (墨落) theme

* add copyright notice

* add feature flag for Lua-based add-on
2023-12-22 18:03:29 +08:00
Roy Qu a6b9d282cf - fix: Click on the line begin may toggle breakpoint. 2023-11-19 16:53:29 +08:00
Roy Qu 49237ebf03 - change: Use qt.conf to use freetype font engine. User can use the windows default font engine by remove this file. 2023-11-19 16:41:36 +08:00
Roy Qu 1c23010408 - change: Set mouse cursor to hand pointing when it's on gutter.
- fix: mouse cursor doesn't change when move back to editor.
2023-10-23 21:46:13 +08:00
Roy Qu 00736ea73b - change: Ensure the line just below caret is visible while moving caret. 2023-10-23 17:36:10 +08:00
Roy Qu e0b9bfb4c8 minor cleanup 2023-10-22 20:04:21 +08:00
Roy Qu 30cabe2faa - enhancement: Parse files that contains C++ 20 'concept' keyword. (No code suggesion for concepts now)
- enhancement: Parse files that contains C++ 20 'requires' keyword.
  - fix: Code suggestions in namespace.
  - enhancement: Code suggestions for namespace alias.
  - fix: Correctly handle statements like 'using xxx::operator()'.
2023-10-22 13:19:03 +08:00
Cyano Hao a62acc2eb0
Add Windows XP support (#146)
* improve Qt 5.6 support

* switch registry API to Windows XP compatible Unicode API

* update docs

* add comment for `CONFIG += c++14 c++17` in qmake .pro files

* fix logic for lockFile
2023-10-21 13:38:12 +08:00
Roy Qu 38a55dcdb4 - ehhancement: Show selected char counts in status bar.
- enhancement: Differentiate /* and /** when calculate auto indents.
2023-10-18 14:37:31 +08:00
Roy Qu 814f3a28db - enhancement: After compiler settings changed, run/debug current file will auto recompile. 2023-10-15 16:28:55 +08:00
Roy Qu 526e73d27a Use QRecursiveMutex instead of QMutex in CppParser 2023-10-10 19:59:39 +08:00
Cyano Hao 7cf5d21b48
Add runner args abstraction and fix shm on macOS/BSD (#134)
* add runner args abstraction to allow different args patterns in various terminal apps; fix macOS shm IPC

* extend platform support from Linux to XDG desktop

* update build docs for Unix

* improve terminal args pattern migration for macOS
2023-09-05 19:14:08 +08:00
Roy Qu 257b81ca3f - fix: "move selection up/down" of whole lines selection are no correctly handled. 2023-08-23 22:37:43 +08:00
Roy Qu aa03dfc01d update Simplified Chinese translation 2023-08-11 14:10:04 +08:00
Roy Qu 0f7b4b8ce5 - fix: Wrong code suggestion while inputing numbers in assembly files.
- fix: Defines in all files are wrongly cleared when reparsing.
2023-08-09 22:35:25 +08:00
Roy Qu d3760db7ec - enhancement: Press left/right arrow will move caret to the begin/end of the selection.
- enhancement: Press up/down arrow will move caret up/down from the begin/end of the selection.
2023-08-03 15:11:46 +08:00
Roy Qu 2e4de7db07 - fix: Autoindent for "{" is not correct. 2023-07-12 17:13:56 +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 45c191bae4 - enhancement: correctly highlight multiline string literals that has empty lines. 2023-07-11 21:02:40 +08:00
Roy Qu 7ad6a64150 - fix: "Toggle breakpoint " in the editor gutter's context menu doesn't work.
- fix: Click editor's gutter won't toggle breakpoint in KDE debian 12
2023-07-08 19:47:48 +08:00
Roy Qu 4f23c35808 - enhancement: Correctly reformat C++ three-way comparision operator "<=>" 2023-07-06 20:41:54 +08:00
Roy Qu 595156e80f - enhancement: Folder mode in "File in files" dialog.
- enhancement: When open a file, test if it contains binary contains.
2023-07-05 15:02:39 +08:00
Roy Qu 377a379554 fix: highlight for #define is not correct 2023-07-04 17:19:29 +08:00
Roy Qu e5e322dea4 - enhancement: correctly highlight multiline raw string literals.
- change: remove "Assembly" color scheme item (it's not used anymore).
2023-06-30 10:53:58 +08:00
Roy Qu b85b70bb4b - fix: Can't copy by ctrl+dray&drop to current selection's begin/end 2023-06-26 09:00:08 +08:00
Roy Qu 5e78c0aa62 - fix: Goto definition/Goto declaration/Info tips can't be correctly triggered when mouse pointer is at the last half character of current word. 2023-06-15 16:40:47 +08:00
Roy Qu 2114206e76 - fix: Double-clicking on touchpad can't select current word. 2023-05-11 21:59:57 +08:00
Roy Qu ba218fb8b8 - fix: Horizontal scroll by touchpad is inversed. 2023-04-13 21:50:53 +08:00
Roy Qu 98989f34c1 - fix: Horizontal scroll with touchpad is not working. 2023-04-13 20:05:28 +08:00
Roy Qu 63be630a16 - fix: Octal numeric escape sequences is not correctly syntax highlighted. 2023-04-01 16:50:55 +08:00
Roy Qu a51ac2fb63 - fix: File's real encoding is not correctly calculated when save it using system default encoding. 2023-03-27 10:53:25 +08:00
Roy Qu 7a8a239dfc - fix: Reformat code when select contents in column mode will mess up the document.
- enhancement: Add "save as" icon to the toolbar.
  - enhancement: Use key sequences as shortcut to actions in the options dialog's environment->shortcut page.
  - change: Use ctrl+shift+S as the shortcut for "save as".
  - change: Use ctrl+K,ctrl+S as the shortcut for "save all".
2023-03-25 10:16:49 +08:00
Roy Qu 9cfc892e3f add comment 2023-03-24 18:25:21 +08:00
Roy Qu 584b970aec fix: last line not removed when it's not used in the Drag&Drop 2023-03-24 18:24:48 +08:00
Roy Qu 6be2b79e01 - enhancement: Drag the selection beyond the end of the document, and move/copy it beyond the last line. 2023-03-24 18:09:23 +08:00
Roy Qu 0730aa6c22 - enhancement: Drag the selection beyond the end of the document, and move/copy it beyond the last line.
- enhancement: Open Containing folder will auto select the file in windows file explore.
2023-03-23 22:33:04 +08:00
Roy Qu 0fdac532b2 - fix: Crash when drag the selection beyond the end of the document. 2023-03-23 17:04:23 +08:00
Roy Qu 6eded18fd6 - fix: Crash when drag the selection beyond the end of the document. 2023-03-23 15:56:07 +08:00
Roy Qu e9247f6476 - fix: Can't undo & save after copy by drag with mouse. 2023-03-10 09:12:22 +08:00
Roy Qu 45578a2603 refactor: formatter interface for qsynedit 2023-03-09 20:35:15 +08:00
Roy Qu 3a0d3f684a - enhancement: If no selection, Ctrl+C (Copy) auto selects the current line and put the cursor to the beginning. 2023-03-09 11:19:57 +08:00
Roy Qu 79b3f91006 - enhancement: Shift+Up in the first line will expand selection to the beginning of the line.
- enhancement: Shift+Down in the last line will expand selection to the end of the line.
2023-03-09 10:33:37 +08:00
Roy Qu 9c04759602 - enhancement: Syntax color support for binaray integer literals.
- enhancement: Syntax color support for suffix in integer/float literals.
2023-03-08 13:23:47 +08:00
Roy Qu d295ff8d11 remove null deleter 2023-03-07 17:18:35 +08:00
Roy Qu ff109d5b58 stream line c/c++ number syntax color processing 2023-03-06 08:23:26 +08:00
Roy Qu 27d993e500 - fix: Hex number with 'f' in not is not correctly colored. 2023-03-05 18:08:08 +08:00
Roy Qu 00431c0979 fix qt 5.12 compatibility 2023-03-04 11:51:27 +00:00
Roy Qu b82336e176 - enhancement: Add X86_64 AVX/AVX instruction descriptions to asm syntaxer.
- enhancement: Update to the newest x86 Assembly manual.
2023-03-04 12:47:49 +08:00
Roy Qu 989f1a892d - fix: Hex float point literal is not correctly colored. 2023-03-03 18:11:06 +08:00
Roy Qu c96209cc42 - fix: Icons for buttons in the cpu info dialog is not correctly set.
- enhancement: Add cfi directives for asm syntaxer in linux.
2023-03-01 19:39:09 +08:00
Roy Qu 68dea2c86a add cfi directives for asm syntaxer 2023-03-01 18:03:14 +08:00
Roy Qu d3fde7ab53 - change: Merge search and replace to one dialog.
- fix: Search dialog's "Match whole word" option doesn't work with "Use Regular expresion".
  - fix:Search dialog's "Close after search" option doesn't work.
  - change: Fill the search dialog with the current selection if it's available.
2023-02-28 16:17:56 +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 6f9a8f552f update description for cmov/set byte/jump instructions 2023-02-28 09:06:53 +08:00
Roy Qu ca0e1b5593 work save 2023-02-27 20:08:24 +08:00
Roy Qu cc7106b4ab work save 2023-02-27 10:41:46 +08:00
Roy Qu c9bb03350d - enhancement: Show descriptions mouse tip for assebmly instructions. (editor / cpu info dialog)
- fix: When completing resigter names, an extra '%' is wrongly added.
2023-02-26 17:50:03 +08:00
Roy Qu 511b6c679b - enhancement: Auto close other search/replace dialogs when start to search/replace.
- change: Remove "prompt when replace" in the replace.
  - fix: Search/replace with regex is not correctly handled.
2023-02-26 08:31:13 +08:00
Roy Qu 12983f5ae0 - fix: Word on the last line's end can't be searched. 2023-02-25 22:30:34 +08:00
Roy Qu e5c6ea1a43 - Enhancement: New file templates for C / C++ / GAS files 2023-02-22 22:18:21 +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 a91dc12519 - enhancement: Reduce flicker when editing big files. 2023-02-18 07:09:19 +08:00
Roy Qu f4b239e15d - enhancement: Greatly reduce time to open/edit big files. 2023-02-17 23:56:13 +08:00
Roy Qu 766bf62c04 show "..." instead of "...}" when folding #if/#endif 2023-02-17 18:29:23 +08:00
Roy Qu 4b54d3799a fix: Fold area is not correctly calculated after editing. 2023-02-17 17:33:48 +08:00
Roy Qu 9f036d0d70 - enhancement: Correctly handle high-precision mouse wheel / touchpad in editors. 2023-02-17 16:16:57 +08:00
Roy Qu fcd086ebb5 - enhancement: Show "..." instead of "...}" when folding #if/#endif 2023-02-17 15:47:53 +08:00
Roy Qu dbdf098b94 - enhancement: Limit max speed for mouse scroll (and touch pad?) 2023-02-17 15:33:33 +08:00
Roy Qu a8d9550632 - enhancement: Toggle comment for asm/makefile/lua files. 2023-02-17 07:40:12 +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 da3bcf1c6a - enhancement: Basic code completion for xmake.lua. 2023-02-16 17:49:55 +08:00
Roy Qu 46dd637770 - enhancement: Syntaxer for lua. 2023-02-16 12:26:35 +08:00
Roy Qu 0bedb63fa2 - fix: Wrong selection position after delete in column mode. 2023-02-15 20:49:42 +08:00
Roy Qu 6068f70d61 - enhancement: New "Hello GAS" and "GAS and C" templates for linux and win64. 2023-02-15 17:50:14 +08:00
Roy Qu 25d0f5b782 - fix: Can't parse enum values.
- fix: Can't correctly show enum values in the class browser.
  - fix: Can't correctly create project, if template's encoding setting is not valid.
  - enhancement: Add "embed assembly" template.
2023-02-15 16:24:24 +08:00
Roy Qu a31bc6ef17 more keywords for asm 2023-02-13 21:49:19 +08:00
Roy Qu d484c790a2 minor change 2023-02-13 11:14:28 +08:00
Roy Qu 57cbf3a49a - fix: New non-saved filenames is wrongly saved in the last openfiles list.
- fix: File is parsed before editor is fully created.
  - enhancement: New GAS File in the File Menu
  - change: rename "New File" to "New C/C++ File"
2023-02-12 22:33:34 +08:00
Roy Qu 02b64497d5 - enhancement: Keyword completion for asm/GAS files. 2023-02-12 18:13:24 +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 a6cae34a99 add more keywords for asm syntaxer 2023-02-11 15:46:51 +08:00
Roy Qu 7b52eff40d - enhancement: Code folding for #if/#endif
- enhancement: When folding "if", don't fold "else";
2023-02-10 22:27:36 +08:00
Roy Qu f91e35192f - fix: preprocessors is not correctly suggested.
- fix: javadoc-style docstring is not correctly suggested
  - enhancement: Better syntax color for asm files.
2023-02-09 21:01:01 +08:00
Roy Qu aac17beb85 fix: folding range calculation error when open file 2023-02-08 10:23:34 +08:00
Roy Qu 5d3a933932 - enhancement: Change the way to calculate execution time. 2023-02-07 20:27:31 +08:00
Roy Qu dd5df6912c - enhancement: Improve auto indent. 2023-02-07 19:05:39 +08:00
Roy Qu 48788a189b - enhancement: Simplified chinese translations for encoding names. 2023-01-25 10:51:59 +08:00
Roy Qu 0ccec06f33 add project encoding 2023-01-24 11:31:30 +08:00
Roy Qu e1e60d2f64 qt 5.12 compatibility 2023-01-15 13:38:36 +00:00
Roy Qu 0f746957a5 - fix: rename project file will wrongly set it's encoding to 'ASCII';
- fix: can't make project
2023-01-15 15:47:08 +08:00
Roy Qu aa62f95cad - enhancement: Auto backup editing contents. (Save editing contents 3 seconds after input stopped. Auto delete when editor successfully closed)
- enhancement: Add "Auto backup editing contents" option in options/editor/auto save
2023-01-15 13:32:33 +08:00
Roy Qu edeb47d2c2 Let user choose if continue to save, if backup file creation failed. 2023-01-15 09:43:54 +08:00
Roy Qu ac20a2c458 - enhancement: Create a temporary copy of the current file when saving files (it's removed after the saving sucessfully finished). 2023-01-14 22:52:04 +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 d8fae209c6 - enhancement: set caret to the corresponding line in the editor after "run"/"generate assembly"
- fix: syntax highlighting for cpp style line comment is not correct.
2023-01-12 21:58:04 +08:00
Roy Qu ea26548835 - enhancement: Add "Open files in editor" in the search panel
- enhancement: Auto disable the "in project" option in the "search in files" dialog, if no project is opened.
  - enhancement: Auto disable the "search again" button in the search panel if the current search history item is search in the project, and no project is opened.
2023-01-12 16:53:00 +08:00
Roy Qu 93a37a2bc6 rename symbol/batch replace correctly support undo 2023-01-12 13:46:09 +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 06a528313d refactor 2023-01-11 17:06:32 +08:00
Roy Qu a80b9b855b linux compatibility 2023-01-11 16:31:39 +08:00
Roy Qu feb93ced5a refactor 2023-01-11 16:23:19 +08:00
Roy Qu 1761c66456 refactor 2023-01-11 16:22:26 +08:00
Roy Qu abf4a5985f - fix: In column mode, selection that contain lines with different length will cause error. 2023-01-11 11:05:34 +08:00
Roy Qu 9a5f97cc7a - fix: Function parameters that is pointer,reference or array can't be correctly parsed. 2023-01-11 09:51:05 +08:00
Roy Qu 7324475277 - fix: alt+shift+left/right can't select
- fix: Input any content will exit column mode.
2023-01-10 16:52:39 +08:00
Roy Qu b01a51ab91 - enhancement: Print current selection can be used in the print dialog.
- enhancement: Print syntax colored content.
  - enhancement: Correctly handle tab in the exported RTF.
2023-01-06 11:41:04 +08:00
Roy Qu 89ee9d8914 - fix: Crash when find occurrences in a project that has missing files.
rename FileEndType to NewlineType
2023-01-04 11:01:34 +08:00
Roy Qu 4f2fb8f540 - enhancement: Let encoding options in the statusbar more explicit.
change FileEndingType names
  applySettings shouldn't be called every time show event triggered.
2023-01-04 09:08:58 +08:00
Roy Qu 892b987894 - enhancement: "Line Spacing" in options / editor / font
- enhancement: "Show whitespaces" in options / editor / font
2022-12-20 20:38:02 +08:00
Roy Qu ed89690f7a - fix: Icon size not correct under macOS high DPI / zoom factor settings.
- enhancement: "Icon zoom" in options / environment / appearance
2022-12-20 11:01:04 +08:00
Roy Qu 0e9278e98a qt 5.11 compatibility 2022-12-19 09:35:48 +08:00
Roy Qu ff336ad5c3 work save 2022-12-16 01:44:20 +08:00
Roy Qu 16db14e761 - enhancement: "Remove trailing spaces" in options / editor / misc
- enhancement: show special chars
2022-12-16 01:03:57 +08:00
Roy Qu 13f0be3154 - fix: Crash when scroll file which has more than 65535 lines.
- fix: Can't scroll to lines greater than 65535.
2022-12-14 09:20:53 +08:00
Roy Qu 4093f29ac4 - Fix: Crash when scroll file which has more than 65535 lines. 2022-12-14 09:12:37 +08:00
Roy Qu b1ca0bb600 - enhancement: Import FPS (free problem set) files. 2022-12-11 19:47:43 +08:00
Roy Qu d07e9aeda0 remove no use code 2022-12-10 21:48:36 +08:00
Roy Qu c4a41403bc refactor highlighters 2022-12-10 21:23:49 +08:00
Roy Qu d0732b9989 refactor highlighters 2022-12-10 20:58:04 +08:00
Roy Qu 81d88fb5bd work save: refactor Highlighter 2022-12-10 20:45:13 +08:00
Roy Qu 51743799c8 refactor Highlighters 2022-12-10 20:41:07 +08:00
Roy Qu 5d0c49a0bc refactor: block start / end calculation 2022-12-10 18:48:48 +08:00
Roy Qu 263cece0ce import makefile highlighter 2022-12-08 10:46:39 +08:00