# codegen: do not edit
defmodule GenLSP.Requests.WorkspaceConfiguration do
@moduledoc """
The 'workspace/configuration' request is sent from the server to the client to fetch a certain
configuration setting.
This pull model replaces the old push model were the client signaled configuration change via an
event. If the server still needs to react to configuration changes (since the server caches the
result of `workspace/configuration` requests) the server should register for an empty configuration
change event and empty the cache if such an event is received.
Message Direction: serverToClient
"""
import Schematic, warn: false
use TypedStruct
@derive Jason.Encoder
typedstruct do
field :method, String.t(), default: "workspace/configuration"
field :jsonrpc, String.t(), default: "2.0"
field :id, integer(), enforce: true
field :params, GenLSP.Structures.ConfigurationParams.t()
end
@type result :: list(GenLSP.TypeAlias.LSPAny.t())
@doc false
@spec schematic() :: Schematic.t()
def schematic() do
schema(__MODULE__, %{
method: "workspace/configuration",
jsonrpc: "2.0",
id: int(),
params: GenLSP.Structures.ConfigurationParams.schematic()
})
end
@doc false
@spec result() :: Schematic.t()
def result() do
oneof([
list(GenLSP.TypeAlias.LSPAny.schematic()),
GenLSP.ErrorResponse.schematic()
])
end
end