Skip to content

Commit e00dd9f

Browse files
committed
Adding EnableDashDash to FSharp API.
1 parent 4d87681 commit e00dd9f

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/CommandLine.FSharp/ArgParser.fs

+9-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ type public ParserConfig = {
1111
CaseSensitive : bool;
1212
HelpWriter : TextWriter;
1313
IgnoreUnknownArguments : bool;
14+
EnableDashDash : bool;
1415
ParsingCulture : CultureInfo;
1516
}
1617

@@ -28,13 +29,18 @@ module ArgParser =
2829
let displayHelp result =
2930
match config.HelpWriter with
3031
| null -> result
31-
| _ -> config.HelpWriter.Write(HelpText.AutoBuild(result)) |> ignore; result
32+
| _ -> config.HelpWriter.Write(HelpText.AutoBuild result) |> ignore; result
3233
parseFunc()
3334
|> filterUnknown
3435
|> displayHelp
36+
let private tokenize args optionSpecs config =
37+
if config.EnableDashDash then
38+
Tokenizer.PreprocessDashDash(args, Func<seq<string>, StatePair<seq<Token>>>(fun a -> Tokenizer.Tokenize(a, Func<string,bool>(fun name -> NameLookup.Contains(name, optionSpecs, getComparer config)))))
39+
else
40+
Tokenizer.Tokenize(args, Func<string,bool>(fun name -> NameLookup.Contains(name, optionSpecs, getComparer config)))
3541

3642
let ParseOptions<'a when 'a : (new : unit -> 'a)> config args =
37-
parse((fun () -> InstanceBuilder.Build(Func<'a>(fun () -> new 'a()), args, getComparer(config), config.ParsingCulture)), config)
43+
parse((fun () -> InstanceBuilder.Build(Func<'a>(fun () -> new 'a()), Func<seq<string>,seq<OptionSpecification>,StatePair<seq<Token>>>(fun ar os -> tokenize ar os config), args, getComparer config, config.ParsingCulture)), config)
3844

3945
let ParseVerbs config args types =
40-
parse((fun () -> InstanceChooser.Choose(types, args, getComparer(config), config.ParsingCulture)), config)
46+
parse((fun () -> InstanceChooser.Choose(Func<seq<string>,seq<OptionSpecification>,StatePair<seq<Token>>>(fun ar os -> tokenize ar os config), types, args, getComparer config, config.ParsingCulture)), config)

0 commit comments

Comments
 (0)