Commit Graph

79 Commits

Author SHA1 Message Date
5481898ad9 feat: move std::filesystem::path related function to independent namespace.
- create FsPathPatch namespace to hold std::filesystem::path related functions.
- add corresponding testbench code for it.
2024-06-15 17:57:33 +08:00
e7b13768ec fix: rename function. update console function
- Update implementation of EnsureColorfulConsole.
	- previous implementation will exit if one of the process to stdout and stderr failed. so if it exit at the process of stdout, the process of stderr will not be run.
	- current implementation will always do process for both of stdout and stderr. the return value will be false if any process of them are failed.
- rename GetModuleName to GetModuleFileName and disable annoy Windows macro GetModuleFileName in WinImportSuffix.hpp.
2024-06-15 16:59:54 +08:00
d0a8733379 refactor: change 2 functions declarations in WinFctHelper
- update GetTempPath and GetModuleName function to let them more reliable.
2024-06-15 16:44:11 +08:00
c32806ea03 feat: add more output functions in console helper.
- add more output functions in console helper.
	* split output functions by format string and plain string as Format and Write.
	* add functions which output to stderr.
- improve document.
2024-06-14 11:59:08 +08:00
0ef1939e6e feat: update IO helper.
- add utf8 path to std::filesystem::path convertion function.
- add left-padding zero format string for printing pointer.
- update exception handler, but not finished because console helper need update.
2024-06-13 15:24:12 +08:00
015ff874f8 feat: add windows function helper
- add windows function helper namespace for some commonly used windows functions.
- add corresponding testbench for added code.
2024-06-13 11:18:25 +08:00
ab12268395 doc: add Doxygen build system
- add Doxygen build configuration file template and CMake list file.
- add option for building documentation.
- the content of documentation should be filled in future.
2024-06-12 15:48:20 +08:00
b6c53ac707 fix: fix console helper
- add annotations for console helper for better user experience.
- change build macro to allow using console helper in non-Windows platform. because console color macros is universal and should not be limited in Windows platform.
2024-06-11 11:40:09 +08:00
629a608133 feat: finish console input.
- finish console input function. add test for it.
- add Replace function in string helper.
2024-06-10 17:55:23 +08:00
1e990b74ae feat: update console output method
- remove the macros disable the warning and error of std functions in MSVC because YYCC has disable them in header.
- update console input output functions. provide CSharp-like interface for UTF8 console input output.
	- console output function is done by WriteConsoleW and WriteFile.
	- console input function still work in progress.
- rename console ASCII color macros
- add console ASCII color test.
- remove EnableUTF8Console because no longer needed.
- add a bunch of annotation to describe YYCC UTF8 console strategy.
- add UNICODE macro in CMakeLists.txt to order CMake generate Visual Studio solution with UNICODE charset enabled, not MBCS.
2024-06-09 21:34:28 +08:00
019034a9c2 chore: update CMakeLists.txt
- update CMakeLists.txt. Add an option to disable the generation of testbench.
- rename testbench name to YYCCTestbench.
- allow emoji test in code.
2024-06-06 13:16:55 +08:00
642db411f5 chore: update cmake build scripts
- update cmake build scripts
- the install part of build scripts may still have issues.
2024-06-03 14:24:05 +08:00
67bd445885 refactor: update ParserHelper
- update the implementation of ParserHelper from locale-based std::to_string, std::stod, std::stoull, to locale-independent function std::from_chars and std::to_chars.
- rename TerminalHelper to ConsoleHelper.
2024-05-31 12:12:48 +08:00
7044a0cff2 fix: fix utf8 output again.
- I write a wrong CMakeLists.txt so the generated utf8 string is wrong.
- Fixed in CMakeLists.txt. But still remove all utf8 string literal heading becasue it is not compatible with my code under C++ 20 standard.
2024-05-30 16:22:03 +08:00
e1e8a33c50 fix: fix utf-8 output error.
- I figure out how UTF-8 output bug happend, but I don't have any clues proving why this happend.
	- it seems that we can simply remove utf8 string literal heading to solve this issue (u8"" -> "")
	- the compiled string char array in executable application already is wrong.
	- compiler generated string bytes is `'original string'.encode('utf-8').decode(your pc encoding).encode('utf-8')`.
	- idk why, as the compromise, I remove all utf8 string literal heading to solve this issue.
	- I highly think this is a bug of MSVC. because everything is okey if I use MSVC native project file to build.
	- I have compared the build flags between native project and cmake generated project but I can't find any difference.
- add full testbench code for ParserHelper.
2024-05-30 14:53:46 +08:00
5726c81fdb chore: switch to CMake build system.
- switch to CMake build system and delete original project files because Visual Studio supports CMake project debugging.
- there is a UTF-8 bug for library after switching, but I don't know why it happends. maybe fixed in future.
2024-05-29 23:11:52 +08:00
72eb79ce1a feat: basically finish parser helper.
- basically finish parser helper, including TryParse, Parse and ToString.
- only Parse has been tested. other test should be filled in future.
2024-05-28 19:59:41 +08:00
d437ecc140 doc: add document for dialog helper 2024-05-27 21:21:39 +08:00
efcc371e31 fix: improve dialog helper
- remove template for CoTaskMemDeleter due to previous confusion.
- use std::remove_pointer_t instead of directly writting underlying type.
2024-05-27 19:48:25 +08:00
cebe2f004d feat: finish dialog helper.
- finish dialof helper.
- dialog helper still nned some annotation.
2024-05-27 14:27:11 +08:00
a9059013f0 feat: add some dialog code which can not work now.
- add common file dialog showcase code but all of them are not work now.
2024-05-26 20:20:59 +08:00
84228b5f8c feat: add some work
- add dialog parameter class for dialog helper. prepare to write real dialog popup function.
- refactor file filters class in dialog helper to make it no const syntax conflict.
- improve windows header import prefix and suffix header. remove the barrier limiting headers only can be imported once. fix define preprocessor usage bug.
- move crt warning and errors macro from project settings to internal headers.
- copy IronPad as ExceptionHandler but not adapted to this project.
2024-05-23 09:37:41 +08:00
359aff82ac feat: finish FileFilters class in dialog helper.
- finish FileFilters class representing the file types area in popup dialog.
2024-05-22 15:53:46 +08:00
b8a56efd7c feat: finish string helper.
- finish Split() in string helper.
- make complement to testbench test code.
2024-05-22 13:42:43 +08:00
9c943705de feat: finish string helper except Split()
- add string lower upper function in string helper.
- add join function in string helper.
- add split function in string helper but implementation is not perfect and should be imporved in future.
2024-05-21 10:24:05 +08:00
6ebb457bd1 finish terminal helper 2024-05-20 21:41:48 +08:00
7258c4c92b basically finish dialog helper 2024-04-29 15:48:10 +08:00
c9152bffa8 add shit 2024-04-26 15:37:28 +08:00
b6cffd8a97 first commit 2024-04-25 10:38:13 +08:00