69 Commits

Author SHA1 Message Date
Matt Nadareski
8695e519c6 Add new manpage reference implementation to README rolling 2026-07-01 13:54:59 -04:00
gmipf
754aa6bc32 Add man page generation from the command-line model (#2)
* Add man page generation from the command-line model

Add CommandSet.OutputManPage (string and file overloads), a ManPageInfo
type for document-level metadata, a reference ManPage feature invoked as a
man command, and UserInput.FormatManPage which reuses FormatFlags so the
page cannot drift from --help. Output uses only portable man(7) macros and
validates warning-free under groff and mandoc -T lint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Address review feedback on man page generation

Rename the man page API to the single-word "Manpage" spelling throughout
(Manpage feature, ManpageInfo, CommandSet.OutputManpage,
UserInput.FormatManpage) for consistency with the "manpage" convention.

- Drop the redundant null check in OutputManpage; info is non-nullable
  under the enabled nullable context.
- Move the tests that exercise CommandSet.OutputManpage into
  CommandSetTests as a "Manpage Output" region, and relocate the Manpage
  feature test into a path-synced Features subfolder
  (SabreTools.CommandLine.Test.Features). Private test helpers now sit at
  the bottom of their classes.
- Fix the Manpage feature doc example to use the actual "man" command.

Builds clean across all target frameworks; the 235 tests pass and the
generated page still validates warning-free under groff -man -ww and
mandoc -T lint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 13:53:34 -04:00
Matt Nadareski
1da60f1091 Remove CONTRIBUTING due to org-level version 2026-05-16 15:01:49 -04:00
Matt Nadareski
5fd4b8b0a5 Update CONTRIBUTING to be more accurate 2026-05-15 13:05:20 -04:00
Matt Nadareski
2bca1ff744 Add CONTRIBUTING document 2026-05-15 10:59:28 -04:00
Matt Nadareski
8be595bf56 Update gitignore for new VSCode feature 2026-05-15 10:34:14 -04:00
Matt Nadareski
47d067df1c Add editorconfig, fix issues 2026-01-25 17:14:38 -05:00
Matt Nadareski
90bfcc8fe2 Format GHA definitions 2025-11-17 08:36:23 -05:00
Matt Nadareski
be081c701d Bump version 1.4.0 2025-11-12 19:49:06 -05:00
Matt Nadareski
66b0e27d4e Add support for .NET 10 2025-11-11 16:43:21 -05:00
Matt Nadareski
573fe2e160 Update rolling tag 2025-10-26 20:22:42 -04:00
Matt Nadareski
6ad9fa4521 Fix split method in custom help 2025-10-07 12:37:54 -04:00
Matt Nadareski
a261f428f2 Add and allow custom help text 2025-10-07 12:36:00 -04:00
Matt Nadareski
5011331164 Clarify the case where default also has real flags 2025-10-07 12:27:51 -04:00
Matt Nadareski
e257c30892 Clarify help printing with default features 2025-10-07 12:14:18 -04:00
Matt Nadareski
029cfe6dc6 Add optional default feature to CommandSet 2025-10-07 12:13:11 -04:00
Matt Nadareski
f38b8734b5 Simplify the method name 2025-10-07 12:07:41 -04:00
Matt Nadareski
df54b92031 Add AddChildrenFrom method to CommandSet 2025-10-07 12:03:00 -04:00
Matt Nadareski
39acb90dbc Use All help by default instead of top-level only 2025-10-06 08:50:21 -04:00
Matt Nadareski
43083d35e1 Bump version 1.3.2 2025-10-06 07:21:36 -04:00
Matt Nadareski
fddbfa963d Directly return result of execution 2025-10-06 07:19:41 -04:00
Matt Nadareski
94ac68e5a0 Handle default help functionality 2025-10-06 07:19:23 -04:00
Matt Nadareski
0c3373e9f0 Basically all cases should output help 2025-10-05 23:26:13 -04:00
Matt Nadareski
f122bf6b6d Add tests for default parsing 2025-10-05 23:14:02 -04:00
Matt Nadareski
81b300bae6 Add default implementation of parsing in CommandSet 2025-10-05 23:00:20 -04:00
Matt Nadareski
a0576df3ee Add single-string variants to CommandSet construction 2025-10-05 22:41:18 -04:00
Matt Nadareski
e26a222755 Allow nested searches for feature values 2025-10-05 22:32:16 -04:00
Matt Nadareski
608cdae1d8 Add Get/TryGet for Feature in UserInput 2025-10-05 22:24:25 -04:00
Matt Nadareski
0bb996153a Add Get/TryGet for Feature in CommandSet 2025-10-05 22:18:48 -04:00
Matt Nadareski
1ecce85a13 Add command set Get and TryGet tests 2025-10-05 21:52:29 -04:00
Matt Nadareski
644527dbfa Add Get and TryGet to CommandSet 2025-10-05 21:48:12 -04:00
Matt Nadareski
1bd158eba0 Allow controlling detailed help 2025-10-05 20:16:47 -04:00
Matt Nadareski
46d1fb7ca6 Bump version 1.3.1 2025-10-05 20:05:08 -04:00
Matt Nadareski
98617b9961 Fix test for fixed issue 2025-10-05 20:04:04 -04:00
Matt Nadareski
0573e4f180 Fix midpoint printing issue 2025-10-05 20:01:30 -04:00
Matt Nadareski
9ce9d1461e Add Nuget package link 2025-10-05 18:48:56 -04:00
Matt Nadareski
aa98ac63a2 Bump version 1.3.0 2025-10-05 18:45:59 -04:00
Matt Nadareski
ef13ab612f Update project file with additional package properties 2025-10-05 18:10:38 -04:00
Matt Nadareski
087e1f5a95 Make constructor parameter name shorter 2025-10-05 18:05:31 -04:00
Matt Nadareski
1b88a9ed60 Long description becomes detailed description 2025-10-05 18:03:47 -04:00
Matt Nadareski
480d66f88b Add a couple remarks 2025-10-05 16:11:06 -04:00
Matt Nadareski
d2b3725302 Expose a couple of properties and update summaries 2025-10-05 16:03:11 -04:00
Matt Nadareski
814d2d60af Allow caller to define prefix size instead of assuming 2025-10-05 15:56:49 -04:00
Matt Nadareski
151647dce4 Allow implementers to extend 2025-10-05 15:52:10 -04:00
Matt Nadareski
515eaddfc9 Fix awkward code organization 2025-10-05 15:48:03 -04:00
Matt Nadareski
b5c3b0a88c Reduce two places to TryGet to avoid double access 2025-10-05 15:35:08 -04:00
Matt Nadareski
0853e2d5ba Reduce two places to TryGet to avoid double access 2025-10-05 15:28:29 -04:00
Matt Nadareski
5f463a4389 Rename TopLevelFlag to IsTopLevel and clean up wording 2025-10-05 15:22:24 -04:00
Matt Nadareski
23a483af03 Add CommandSet helper to retrieve top level items 2025-10-05 15:19:15 -04:00
Matt Nadareski
6cd5cf947b Add tests around Windows newlines 2025-10-05 13:06:40 -04:00