Table of Contents

Class SdkServerOptions

Namespace
RDCore.SDK.Server.Configuration
Assembly
RDCore.SDK.dll

Server-level configuration settings, bound from appsettings.json or overridden from command-line arguments.

public record SdkServerOptions : IEquatable<SdkServerOptions>
Inheritance
SdkServerOptions
Implements
Inherited Members

Properties

ClientProcessId

The process ID of the client process that starts a LSP server process.

public int ClientProcessId { get; set; }

Property Value

int

Remarks

🧩 For an extension, the ClientProcessID is the process ID of the language server application.

ConnectTimeoutSeconds

The number of seconds a client will await a server connection before a connection is aborted.

public int ConnectTimeoutSeconds { get; set; }

Property Value

int

HealthCheckIntervalSeconds

The number of seconds between health check pings.

public int HealthCheckIntervalSeconds { get; set; }

Property Value

int

Remarks

👉 Determines how long the server process remains orphaned before initiating a shutdown when the client process that owns it fails to respond, for example if it crashes or is otherwise abruptly terminated.

MaxRestartAttempts

How many times a supervised child connection is restarted after it fails unexpectedly, before the failure is escalated.

public int MaxRestartAttempts { get; set; }

Property Value

int

RestartBackoffBaseMs

The base delay, in milliseconds, before the first restart attempt. Doubles per attempt, capped at RestartBackoffMaxMs.

public int RestartBackoffBaseMs { get; set; }

Property Value

int

RestartBackoffMaxMs

The maximum delay, in milliseconds, between restart attempts.

public int RestartBackoffMaxMs { get; set; }

Property Value

int

ShutdownTimeoutSeconds

The number of seconds the server will wait for an Exit notification from the client after receiving a Shutdown request.

public int ShutdownTimeoutSeconds { get; set; }

Property Value

int

Remarks

👉 The server process exit code depends on whether the Exit notification was received after processing a Shutdown request.

TraceLevel

The minimum Microsoft.Extensions.Logging.LogLevel of a trace message that makes it through to the trace output.

public LogLevel TraceLevel { get; set; }

Property Value

LogLevel

UnsafeDevMode

⚠️ Allows the server platform to load unsigned plug-ins.

public bool UnsafeDevMode { get; set; }

Property Value

bool

Remarks

🧩 This is useful for developing plug-ins with a private fork.
This setting is read-only and must be explicitly overridden via a command-line argument.

Verbose

Whether verbose messages are generated or not.
🧩 Applications may configure the content of their verbose messages in more details.

public bool Verbose { get; set; }

Property Value

bool

Remarks

⚠️ Verbose messages may contain relatively sensitive information such as document locations, symbol names, and execution stack traces.
⚠️ Verbose messages are NEVER to be transmitted via any kind of telemetry.

WireErrorDetail

How a source-file path in error / stack-trace detail is rewritten before that text is packaged into a DTO and sent to another process. Defaults to RepoRelative.

public SourcePathScrubMode WireErrorDetail { get; set; }

Property Value

SourcePathScrubMode

Remarks

A PDB build (the dev platform is Debug; a Release publish still emits portable PDBs) puts the build machine's directory layout and user name into a caught exception's text. A defensive net — it does not affect the unredacted copy written to the process log.