@@ -11,19 +11,31 @@ open Serilog.Events
11
11
open CSharpLanguageServer.Types
12
12
open CSharpLanguageServer.Lsp
13
13
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
+
14
26
[<EntryPoint>]
15
27
let entry args =
16
28
try
17
- let argParser = ArgumentParser.Create< Options. CLIArguments>( programName = " csharp-ls" )
29
+ let argParser = ArgumentParser.Create< CLIArguments>( programName = " csharp-ls" )
18
30
let serverArgs = argParser.Parse args
19
31
20
- serverArgs.TryGetResult(<@ Options. CLIArguments.Version @>)
32
+ serverArgs.TryGetResult(<@ CLIArguments.Version @>)
21
33
|> Option.iter ( fun _ -> printfn " csharp-ls, %s "
22
34
( Assembly.GetExecutingAssembly() .GetName() .Version |> string)
23
35
exit 0 )
24
36
25
37
let logLevelArg =
26
- serverArgs.TryGetResult(<@ Options. CLIArguments.LogLevel @>)
38
+ serverArgs.TryGetResult(<@ CLIArguments.LogLevel @>)
27
39
|> Option.defaultValue " log"
28
40
29
41
let logLevel =
@@ -52,7 +64,7 @@ let entry args =
52
64
53
65
let settings = {
54
66
ServerSettings.Default with
55
- SolutionPath = serverArgs.TryGetResult(<@ Options. CLIArguments.Solution @>)
67
+ SolutionPath = serverArgs.TryGetResult(<@ CLIArguments.Solution @>)
56
68
LogLevel = logLevelArg
57
69
}
58
70
0 commit comments