Commit Graph

78 Commits

Author SHA1 Message Date
Roy Qu bfd00957eb - Enhancement: Better support for macros. 2023-11-26 15:44:13 +08:00
Roy Qu aa12dcc4d1 - fix: Crash if #include a non-exist header file in the source. 2023-11-05 21:00:52 +08:00
Roy Qu 43dbbf798a optimize 2023-10-28 09:20:01 +08:00
Roy Qu 13d81b1134 reduce memory usage 2023-10-27 20:16:44 +08:00
Roy Qu 85ef5986bf Add debug info for macro expansion 2023-10-25 11:49:25 +08:00
Roy Qu 0bc361e1f9 - enhancement: Better support for expanding macros with complex parameters. 2023-10-25 00:19:05 +08:00
Roy Qu 4eca58b62a - enhancement: Basic support for parsing variadic macros. 2023-10-24 20:35:43 +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 85cd761e36 minor fix 2023-10-01 10:49:59 +08:00
Roy Qu 14ba74e705 - fix: Processing for #if/#elif/#else is not correct. 2023-10-01 10:45:43 +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 0e1332dd5e fix: "__max" in istream.tcc is wrongly expanded. 2023-07-03 18:21:33 +08:00
Roy Qu 362cf5701c - improve: Correctly expands multi-line macros when parsing;
- improve: Correctly eppands macros when real param string contains '(' or  ')'.
2023-07-01 18:06:39 +08:00
Roy Qu 19a85db1f9 - fix: '^' is not correctly handled as operator. 2023-05-24 13:42:46 +08:00
Roy Qu 7e3ee41546 - fix: foreach-loops are not correctly parsed. 2023-05-14 15:57:07 +08:00
Roy Qu 1470f58206 - fix: Crash when directive line ends with '\' and at the last line. 2023-03-18 10:34:37 +08:00
Roy Qu dab6a331b9 optimize parser 2023-03-13 00:13:23 +08:00
Roy Qu b220df600b - enhancement: Sort header completion infos by suffix-trimmed filename. 2023-03-11 19:30:56 +08:00
Roy Qu d29ec1ee0f refactor: make most expression evaluation funcs const 2023-03-11 17:32:57 +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 629a90d521 - enhancement: Simplified chinese translations for encoding names.
- fix: Crash when there are preprocessing directives like '#if 0/0' or '#if 0%0'
2023-01-26 11:07:46 +08:00
Roy Qu 61a5d9f94f minor optimization 2022-12-27 14:34:57 +08:00
Roy Qu a1af733a53 minor optimization 2022-12-27 14:29:49 +08:00
Roy Qu b1ca0bb600 - enhancement: Import FPS (free problem set) files. 2022-12-11 19:47:43 +08:00
Roy Qu f24c1e96db remove debug info 2022-11-08 22:12:33 +08:00
Roy Qu 4fad826899 - fix: macro defines parsed before not correctly applied in the succeeding parse. 2022-11-08 22:04:53 +08:00
Roy Qu 09c7b5e791 fix: "." and ".." in included header paths not correctly handled 2022-10-23 23:06:55 +08:00
Roy Qu d1d68758aa work done: refactor cpp parser for project 2022-10-22 19:33:20 +08:00
Roy Qu dbf34548d8 work save: clean up CppPreprocessor clear & reset 2022-10-22 10:59:39 +08:00
Roy Qu 6ba6030af7 work save: CppPreprocessor clean 2022-10-22 10:44:10 +08:00
Roy Qu 921a6b41c5 clean up CppPreprocessor::addDefinesInFile 2022-10-22 10:19:47 +08:00
Roy Qu eed7fdcf56 fix: click a non-existing header name will get an error 2022-10-18 23:22:29 +08:00
Roy Qu 29da40bb14 - fix: toggle block comment/delete to word begin/delete to word end are not correctly disabled when editor not open 2022-10-18 19:09:46 +08:00
Roy Qu a62910e1a3 - fix: editor tooltip for #include_next is not correctly calculated
- fix: ctrl+click on #include_next header name doesn't open the right file
  - enhancement: parser used for non-project C files won't find header files in C++ include folders.
2022-10-18 12:24:59 +08:00
Roy Qu c7e8ee6072 - enhancement: don't show cpp defines when editing c files 2022-07-28 13:51:38 +08:00
Roy Qu d034089214 5.12 compatibility fix 2022-07-24 03:19:11 +00:00
Roy Qu a6f334f837 remove all warnings 2022-07-04 11:39:06 +08:00
Roy Qu cd6e5719b7 fix: autolink calculation not stable 2022-06-04 14:44:50 +08:00
Roy Qu b0c8526d97 - fix: order for parameters generated by auto link may not correct 2022-03-19 14:19:32 +08:00
Roy Qu bb6a4ed9c8 qt 5.12 compatibility 2022-01-04 16:50:54 +08:00
royqh1979@gmail.com 317db42876 add license information 2021-12-26 23:18:28 +08:00
royqh1979@gmail.com 8b7d19f94e work save 2021-11-12 10:51:00 +08:00
royqh1979 b3e5ddc94c - enhancement: greatly reduces memory usage for symbol parsing ( memory needed for bits/stdc++.h reduced from 150m+ to 50m+)
- fix: currect compiler set not correctly updated when switch between normal file and project file
2021-11-12 02:20:13 +08:00
royqh1979 3529e8dfea - fix: can't correctly handle '&&' and '||' in the #if directive (and correctly parse windows.h header file) 2021-10-24 23:31:26 +08:00
royqh1979 a5acb077fc - fix: correctly handle integer with 'L' suffix in #if directives ( so <thread> can be correctly parsed )
- fix: correctly fill indents if it's not multiples of tab width
2021-10-20 20:15:16 +08:00
royqh1979 5c9ef2035e clean up compile warnings 2021-10-20 18:05:43 +08:00
royqh1979@gmail.com 3ed5701621 fix: #include_next processing 2021-10-04 22:32:34 +08:00
royqh1979@gmail.com 77e8eda8a3 - enhancement: support #include_next (and clang libc++) 2021-10-04 21:59:48 +08:00
royqh1979@gmail.com 8ebe9174bb - implement: symbol usage count
- implement: user code snippet / template
 - implement: auto generate javadoc-style docstring for functions
 - enhancement: use up/down key to navigate function parameter tooltip
 - enhancement: press esc to close function parameter tooltip
 - enhancement: code suggestion for unicode identifiers
2021-10-02 15:34:18 +08:00
royqh1979@gmail.com 7207994d57 work save: header completion suggestion done 2021-08-29 10:14:07 +08:00