# codegen: do not edit defmodule GenLSP.Structures.TextDocumentSyncOptions do import Schematic, warn: false use TypedStruct @doc """ ## Fields * open_close: Open and close notifications are sent to the server. If omitted open close notification should not be sent. * change: Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. * will_save: If present will save notifications are sent to the server. If omitted the notification should not be sent. * will_save_wait_until: If present will save wait until requests are sent to the server. If omitted the request should not be sent. * save: If present save notifications are sent to the server. If omitted the notification should not be sent. """ @derive Jason.Encoder typedstruct do field :open_close, boolean() field :change, GenLSP.Enumerations.TextDocumentSyncKind.t() field :will_save, boolean() field :will_save_wait_until, boolean() field :save, boolean() | GenLSP.Structures.SaveOptions.t() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ optional({"openClose", :open_close}) => bool(), optional({"change", :change}) => GenLSP.Enumerations.TextDocumentSyncKind.schematic(), optional({"willSave", :will_save}) => bool(), optional({"willSaveWaitUntil", :will_save_wait_until}) => bool(), optional({"save", :save}) => oneof([bool(), GenLSP.Structures.SaveOptions.schematic()]) }) end end