Commit Graph

60 Commits

Author SHA1 Message Date
Martchus 46bfbdd829 Allow initialization of values for shell completion in callback
Use case is implementing completion for syncthingctl also for
device and folder IDs.
2017-09-30 18:42:21 +02:00
Martchus b7b218c831 Wrap strings which are likely long when printing help
to preserve indentation
2017-09-29 21:00:49 +02:00
Martchus 027e784f1c Only make extra newline before example for top-level args 2017-09-29 20:56:13 +02:00
Martchus 8750e385f1 Improve doc for ArgumentParser::parseArgs()/readArgs() 2017-09-29 17:15:39 +02:00
Martchus 2f5f197b95 Add ArgumentParser::parseArgsOrExit()
to reduce boilerplate code for error handling when
parsing CLI arguments.
2017-09-29 17:14:57 +02:00
Martchus 1c450d43a2 Add method to find specified operation 2017-09-26 16:46:17 +02:00
Martchus 12be122d66 Improve printing argument info 2017-09-17 21:37:24 +02:00
Martchus d7cf4312bf bash completion: Fix case when no current word index specified 2017-07-28 18:24:52 +02:00
Martchus 1af88c964e bash completion: Show values for implicit args
So eg. `tageditor get [tab][tab]` also suggests specifying
field names directly instead of only via --fields.
2017-07-28 17:32:16 +02:00
Martchus 59e20b1043 Apply clang-format 2017-05-01 03:13:11 +02:00
Martchus 91e5a8b0b0 Show version of used libraries in --help
* Include only own libraries and Qt 5 modules
  so far
* First step to implement
  https://github.com/Martchus/tageditor/issues/13
2017-04-15 01:10:38 +02:00
Martchus 7c189b18e1 Allow nested operation arguments
eg. syncthingctl pwd rescan
2017-04-06 00:04:30 +02:00
Martchus 864605f5c8 Only assert unique names within same level
It might make sense to 'hide' arguments from
higher level if those wouldn't be combinable
anyways.
2017-04-06 00:01:56 +02:00
Martchus c30011fe09 Fix missleading error message
Unknown arg is treated is causing fatal
error in this case and hence not ignored.
2017-04-05 23:45:56 +02:00
Martchus 71231c29da Fix behavior on empty completion request 2017-04-05 22:56:01 +02:00
Martchus 0327049b99 Don't compare signed and unsigned 2017-03-20 23:00:23 +01:00
Martchus c4d73b0d7d Use C++14 string literal 2017-02-06 18:32:27 +01:00
Martchus 1ace53533a string builder: Remove unused code 2017-01-30 00:40:31 +01:00
Martchus 33d368397f Make use of newly introduced string builder 2017-01-27 18:51:54 +01:00
Martchus 28d2063d33 Fix Bash completion for abbreviations 2016-12-24 16:07:43 +01:00
Martchus cab332bcad Refactor reading arguments
Replace ArgumentParser::readSpecifiedArgs() with
ArgumentReader class to simplify argument list
2016-12-23 22:40:33 +01:00
Martchus 82b5bf3f1d Fix Bash completion when last pre-defined value matches 2016-11-26 00:14:45 +01:00
Martchus 70869f24a8 Add method to reset arguments recursively 2016-11-26 00:11:48 +01:00
Martchus 9f3ca443e4 Make ArgumentParser::verifyArgs() more strict 2016-11-15 22:02:40 +01:00
Martchus bbb884da30 Don't imply args which can't be combined
Leads to more useful error messages if an unknown
argument has been specified.
2016-11-15 21:44:23 +01:00
Martchus 4c0a1d1169 Fix minor mistake in argument parser 2016-11-14 22:38:21 +01:00
Martchus a1189d3c3b Allow specifying custom exit() function 2016-10-30 00:37:28 +02:00
Martchus 438ca48cbb Improve doc 2016-10-30 00:30:54 +02:00
Martchus 5119bb5c6a Improve ArgumentParser::readSpecifiedArgs()
- Fix minor issues
- Add further test cases
2016-10-29 23:54:30 +02:00
Martchus 72426e2d4c Fix bash completion when dir/file contains single quote
Also a few other improvements in bash completion code
2016-10-22 20:52:08 +02:00
Martchus 4c40004f0b Improve CLI utils
- Add ArgumentParser::readArgs()
- Add Indentation
- Fix eraseLine()
2016-10-02 21:53:58 +02:00
Martchus ed527021f9 Improve logging when testing applications 2016-08-05 01:43:46 +02:00
Martchus df8d942e1c Improve argument parser
- Fix completion of values already containing '='
- Fix completion when current word contains '='
- Improve formatting of help
- Fix typo
2016-07-31 23:20:31 +02:00
Martchus a3e9174476 Remove findArg 2016-07-17 01:27:42 +02:00
Martchus 23346e1a8e Add convenience method to get first value 2016-07-17 01:26:34 +02:00
Martchus d749ba7cc2 Provide complete occurance info (callbacks) 2016-07-04 23:18:49 +02:00
Martchus 03094a1f61 Add support for bash completion 2016-07-04 02:46:54 +02:00
Martchus e6dfe28149 Skip empty args 2016-06-23 22:06:59 +02:00
Martchus 8bcf8cd008 Check for siblings of parent args 2016-06-23 00:58:43 +02:00
Martchus a3648963ee Make argv const 2016-06-17 17:55:09 +02:00
Martchus 783121ed5e Allow implicit usage of arg only once 2016-06-14 23:11:13 +02:00
Martchus 79ce6e9aa6 Improve argument parser
- Fix some implementation details
- Extend tests
2016-06-14 00:43:32 +02:00
Martchus 526cbc5282 Rewrite argument parsing 2016-06-13 00:00:36 +02:00
Martchus 4f87cc1181 Use C-strings where std::string is unneccessary 2016-06-11 19:42:03 +02:00
Martchus d28d477ffe Complete generation of API doc
- Use README.md for main page
- Add install target for API doc
- Improve some doc comments
2016-06-10 22:59:22 +02:00
Martchus 324dc90b49 Fix parsing args if no abbr or name is specified 2016-06-03 23:10:14 +02:00
Martchus 4fcc8442f8 Define macro for debug-only code 2016-05-26 02:21:06 +02:00
Martchus f3077ef8e3 Use C-strings for argument definitions
Argument names and abbreviations are always
C-string literals and hence using std::string
has no advantage.
2016-05-25 01:24:17 +02:00
Martchus ff15a54624 added addMainArgument 2016-02-27 01:19:16 +01:00
Martchus 47b96df17b added simple CMake project file 2015-12-05 22:47:49 +01:00