@@ -11,19 +11,31 @@ open Serilog.Events
1111open CSharpLanguageServer.Types
1212open CSharpLanguageServer.Lsp
1313
14+ type CLIArguments =
15+ | [<AltCommandLine( " -v" ) >] Version
16+ | [<AltCommandLine( " -l" ) >] LogLevel of level : string
17+ | [<AltCommandLine( " -s" ) >] Solution of solution : string
18+ with
19+ interface IArgParserTemplate with
20+ member s.Usage =
21+ match s with
22+ | Version -> " display versioning information"
23+ | Solution _ -> " .sln file to load (relative to CWD)"
24+ | LogLevel _ -> " log level, <log|info|warning|error>; default is `log`"
25+
1426[<EntryPoint>]
1527let entry args =
1628 try
17- let argParser = ArgumentParser.Create< Options. CLIArguments>( programName = " csharp-ls" )
29+ let argParser = ArgumentParser.Create< CLIArguments>( programName = " csharp-ls" )
1830 let serverArgs = argParser.Parse args
1931
20- serverArgs.TryGetResult(<@ Options. CLIArguments.Version @>)
32+ serverArgs.TryGetResult(<@ CLIArguments.Version @>)
2133 |> Option.iter ( fun _ -> printfn " csharp-ls, %s "
2234 ( Assembly.GetExecutingAssembly() .GetName() .Version |> string)
2335 exit 0 )
2436
2537 let logLevelArg =
26- serverArgs.TryGetResult(<@ Options. CLIArguments.LogLevel @>)
38+ serverArgs.TryGetResult(<@ CLIArguments.LogLevel @>)
2739 |> Option.defaultValue " log"
2840
2941 let logLevel =
@@ -52,7 +64,7 @@ let entry args =
5264
5365 let settings = {
5466 ServerSettings.Default with
55- SolutionPath = serverArgs.TryGetResult(<@ Options. CLIArguments.Solution @>)
67+ SolutionPath = serverArgs.TryGetResult(<@ CLIArguments.Solution @>)
5668 LogLevel = logLevelArg
5769 }
5870
0 commit comments