commandlineparser / commandlineparser/commandline
Support for custom dynamic help option for a single subcommand?
- Ngôn ngữ chính
- C#
- Star
- 4.8k
- Fork
- 478
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
For all my current subcommands I am using the default help option (which is very nice btw!). I have 1 subcommand that I want the default help options to be turned off for so that I can display custom help code inside of my subcommand's OnExecute method:
```
protected bool HandleHelp(){
//TO DO: Check to see if --help was passed in and display custom help text to the console based on a Dictionary of known commands on current machine.
}
protected override async Task OnExecute(CommandLineApplication app)
{
try
{
//Load a list of all the available commands
BuildListOfKnownCommands();
//Check for help option and display help message for specific tool
if(HandleHelp()){
return 0;
}
//TO DO: Run command
return 0;
}
catch (Exception ex)
{
OnException(ex);
return 1;
}
```
Is there an easy way to do this?
I have tried adding a member to my subcommand like so:
```
[HelpOption("--help")]
public bool HelpRequested {get;set;} = false;
```
but this gives me the error message **"Multiple HelpOptionAttributes found. HelpOptionAttribute should only be used one per type, either on one property or type."**
I tried using the attribute `[SuppressDefaultHelpOption]` to disable the default --help behavior but that didn't seem to take.
My subcommand has the following options:
```
[Command(Name = "tools", OptionsComparison = StringComparison.InvariantCultureIgnoreCase, Description = "Run helpful developer tools and scripts")]
[SuppressDefaultHelpOption]
```
Can the default --help behavior be turned off for just a single subcommand so that I can do my own custom dynamic --help function?
Thanks!
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách theo dõi cách HelpOptionAttribute và SuppressDefaultHelpOption được áp dụng cho một subcommand trước khi OnExecute chạy. Tái hiện trường hợp một subcommand duy nhất được mô tả trong issue, sau đó xác minh rằng có thể vô hiệu hóa hành vi --help mặc định cho subcommand đó, trong khi các subcommand khác vẫn giữ hành vi này và phần xử lý tùy chỉnh trong OnExecute có thể chạy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp
- Lĩnh vực
- cli
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100