Commit Graph

115 Commits

Author SHA1 Message Date
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
Martchus 872ee49979 Refactor ArgumentParser::printBashCompletion() 2018-05-06 00:26:42 +02:00
Martchus 55649d750a Fix calling verifyArgs() 2018-03-11 14:31:10 +01:00
Martchus 6249db3b09 Remove unused parameter in ArgumentParser::verifyArgs() 2018-03-07 20:04:37 +01:00
Martchus 368fc46e47 Improve tests of argument parser 2018-01-29 16:23:10 +01:00
Martchus 8c42a4644b Simplify ArgumentParser::readArgs() 2018-01-29 16:21:19 +01:00
Martchus ff5eb6c7c9 Do not show help for --help 2018-01-28 00:43:03 +01:00
Martchus 09f9181281 Split operations from other top-level args in --help 2018-01-28 00:38:05 +01:00
Martchus a3192a1113 Fix parsing top-level argument after abbreviation 2017-11-29 22:52:50 +01:00
Martchus ad705239b2 Simplify argument parsing 2017-11-29 22:07:45 +01:00
Martchus a16b056dc3 Fix reading value after abbreviation and equation sign 2017-11-29 20:23:15 +01:00
Martchus 8aff877874 Fix comparing sibling name with denoted name 2017-11-27 10:30:14 +01:00
Martchus 424a0bfb6f Add method for parsing args with customizable behavior 2017-11-27 10:25:41 +01:00