Martchus
d31092b7d9
Apply clang-format
2024-04-08 12:33:57 +02:00
Martchus
f97320816a
Change Bash completion code for dirs/files to new coding style
2023-12-29 16:34:26 +01:00
Martchus
6f924da4f0
Make code for processing escaping in Bash completion more generic
2023-12-29 16:30:55 +01:00
Martchus
b3b7166812
Fix bash completion when path contains round brackets
2023-12-29 16:09:55 +01:00
Martchus
66b6fff0f2
Fix greediness of greedy arguments if they have sub arguments
...
Even sub arguments (e.g. `--help`) should be treated as values to be passed
to a nested argument parser (as documented). The sub arguments are only
added in this case to appear in the help.
2023-05-29 18:09:34 +02:00
Martchus
5bfce4235e
Fix typo
2023-05-29 18:05:11 +02:00
Martchus
d8c38699ba
Avoid warning about unqualified std cast
2022-11-04 16:50:13 +01:00
Martchus
0cf59b654b
Make `isEnvVariableSet()` public API
2022-10-08 22:29:32 +02:00
Martchus
0c6fa07b53
Add `Argument::addSubArguments()` and improve related documentation
2022-08-06 19:14:02 +02:00
Martchus
8f4ca38c69
Update documentation of argument parser
2022-06-26 11:45:13 +02:00
Martchus
3c769fa242
Add greedy-flag for argument parser
...
This is useful if one needs to pass subsequent arguments as-is to another
nested argument parser.
2022-06-26 11:24:36 +02:00
Martchus
cf510f0397
Use macros from cstdlib instead of hard-coding exit codes
2022-05-21 12:37:36 +02:00
Martchus
b3ebe5ce38
Fix typos found via `codespell --skip .git -w`
2021-07-03 19:07:49 +02:00
Martchus
1ac1104535
Add workaround for Windows-specific console problems
...
* Allow disabling the hack for creating a console for
a GUI application via `ENABLE_CONSOLE=0` to workaround
downsides of this hack (pipes not working, possibly
spawns an additional console)
* Set the console's character set to UTF-8 by default
because this actually seems to work now and
non-ASCII characters are displayed correctly. There
is still an opt-out via `ENABLE_CP_UTF8=0`.
* Note that with mintty it just works anyways so using
that terminal emulator is still the best workaround.
2021-05-28 19:15:09 +02:00
Martchus
b22a600e77
Fix broken code in ArgumentParser::printBashCompletion() leading to crashes
...
See https://github.com/Martchus/cpp-utilities/issues/19#issuecomment-839758443
2021-05-12 17:52:36 +02:00
Martchus
f30947cc75
Fix plural of parameter
2021-03-30 20:48:05 +02:00
Martchus
f109d36ad2
Add Argument::firstValueOr() for conveniently accessing the first value with a fallback
2021-01-01 18:30:17 +01:00
Martchus
eadb261c56
Ignore file system errors when printing bash completion
2020-01-29 19:27:32 +01:00
Martchus
d76d78ae71
Fix childs -> children
2019-12-30 22:52:23 +01:00
Martchus
23b774e374
Update ArgumentParser::parseArgs()/readArgs() documentation
2019-09-14 20:53:25 +02:00
Martchus
9cc6be4d4c
Suppress "Available top-level options:" if none available
2019-09-14 20:52:35 +02:00
Martchus
ecdebebab8
Exclude private structs from documentation
2019-09-04 18:51:17 +02:00
Martchus
b693c72eb1
Fix old namespaces being mentioned in the documentation
2019-09-04 18:45:28 +02:00
Martchus
43d2d280e1
Fix Bash completion for dirs when not using actual dir
2019-09-04 18:26:37 +02:00
Martchus
780ba7bc18
Show description in --help
2019-07-22 18:17:39 +02:00
Martchus
1be20da35a
Make use of std::filesystem optional
...
It is not available under Android yet and only used for
Bash completion. So make it optional to support Android by
disabling that part of the Bash completion which is not
useful under Android anyways.
2019-07-02 18:40:25 +02:00
Martchus
fd531bdd6a
Prefix most of the macros in global.h
2019-06-12 20:34:25 +02:00
Martchus
4e2539548d
Remove FALLTHROUGH macro
...
Since this is requiring C++17 anyways there's no need for
it anymore.
2019-06-12 20:33:43 +02:00
Martchus
b48b2f5c06
Have everything in one top-level namespace
2019-06-10 21:56:46 +02:00
Martchus
4c1b733290
Rework ArgumentParser::parseArgs()
...
* Remove "ext()" and "orExit()" versions
* Exit by default (might be intrusive but it is the most
common use)
* Rename Failure to ParseError
2019-06-10 16:03:27 +02:00
Martchus
1ad90eb770
Use std::filesystem in argumentparser.cpp
2019-06-05 23:49:35 +02:00
Martchus
b0b92ff1bf
Allow marking argument as deprecated
2019-05-04 23:14:43 +02:00
Martchus
6d4e13f2dc
Use struct to store global application info
2019-05-04 22:49:57 +02:00
Martchus
80fba8b6d4
Reduce indentation in argumentparser.cpp
2019-05-04 22:35:00 +02:00
Martchus
04a8ef02d5
Remove deprecated dependencyVersions
2019-05-04 21:44:25 +02:00
Martchus
497826f634
Prevent warnings in argumentparser{,tests}.cpp
2019-05-04 21:44:25 +02:00
Martchus
151a3ae9e5
Apply clang-format
2019-05-04 20:58:23 +02:00
Martchus
cfdfc302db
Use exit function passed to argument parser
2019-04-13 20:33:39 +02:00
Martchus
57c896b547
Store boolean properties of Argument as flags
2019-04-13 20:33:39 +02:00
Martchus
bc8ea407bc
Prevent use of static variables in ArgumentParser
...
Have --no-color and --help added by default rather
so argument parser is in control over them and don't
has to use static functions.
2019-04-13 20:33:39 +02:00
Martchus
3d3378c878
Improve experimental value conversion for arg parser
...
* Fix issues and handle conversion errors
* Add tests
2018-09-22 17:04:23 +02:00
Martchus
89a4c2f33a
Skip suggestions for pre-defined values if none assigned
2018-05-11 18:13:14 +02:00
Martchus
b69b841fa3
Prevent huge memory allocation for Damerau-Levenshtein algo
2018-05-11 16:15:16 +02:00
Martchus
5e8d8cb7d1
Show dashes in suggestions
2018-05-11 16:15:02 +02:00
Martchus
24720bbbc1
Fix passing cursor position to findSuggestions()
2018-05-11 15:51:30 +02:00
Martchus
5eb3e2aa75
Fix suggestion if only one available
2018-05-11 15:29:10 +02:00
Martchus
f0b777207e
Fix dependency version under GCC 8
2018-05-08 00:35:41 +02:00
Martchus
8ef92cbf47
Use Levenshtein algo to provide suggestions if arg not found
2018-05-07 21:59:23 +02:00
Martchus
44f0206a13
Refactor ArgumentReader::read()
...
* Use return-code for error handling
* Improve documentation/comments
* Improve const correctness
2018-05-07 20:04:30 +02:00
Martchus
0e8dcbecae
Refactor value completion in ArgumentParser::printBashCompletion()
2018-05-06 00:36:37 +02:00