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
b1b811c57f
Apply clang-format
2022-06-26 11:04:23 +02:00
Martchus
9e036a3f72
Allow enabling virtual terminal processing under Windows
...
* or disable use of ANSI-escape codes if not possible
* See https://github.com/Martchus/syncthingtray/issues/132
2022-06-07 16:46:54 +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
df126ab51c
Use std::size_t consistently
2020-11-25 17:51:13 +01:00
Martchus
53b4cbd8e9
Make fake Qt arguments operations
2020-04-05 21:40:01 +02:00
Martchus
eadb261c56
Ignore file system errors when printing bash completion
2020-01-29 19:27:32 +01:00
Martchus
0f56d25251
Use consistent order for visibility attribute
2020-01-29 18:30:02 +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
ae2f25f3f4
Use consistent include guards for application utilities
2019-09-04 18:45:48 +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
eb34ce610d
Add domain to ApplicationInfo
2019-07-20 20:57:56 +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
f098a83a18
Fix namespace in Windows-specific macros
2019-06-20 22:55:29 +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
d9e498ba79
Remove DECLARE_ENUM and DECLARE_ENUM_CLASS
...
lupdate seems to be fixed since quite a while now.
2019-06-10 16:20:56 +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
6d2544b908
Return argument parents by reference
2019-06-04 19:08:46 +02:00
Martchus
6e75a293a8
Use override in Failure
2019-05-13 22:41:43 +02:00
Martchus
02bd9f7c06
Add new fields to ApplicationInfo
2019-05-05 18:35:40 +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
e9cc26478b
Don't mix building static and shared libraries
2019-04-22 20:42:48 +02:00
Martchus
6d7a6ab735
Don't pretent to add arguments implicitely
2019-04-13 20:33:39 +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
Marius Kittler
a7926951cb
Make firstPresentUncombinableArg() private
2019-04-13 20:33:39 +02:00
Martchus
f40a800107
Remove USE_NOTHROW and make ConversionException inline
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
115426c1bc
Fix linking test target against static library
2019-04-13 20:31:40 +02:00
Martchus
517ef59e14
Prevent livetime issue in ArgumentValueConversionError
...
Breaking API/ABI is ok since this is part of experimental
ValueConversion namespace.
2018-10-03 22:40:04 +02:00