# codegen: do not edit defmodule GenLSP.Structures.NotebookDocumentSyncOptions do @moduledoc """ Options specific to a notebook plus its cells to be synced to the server. If a selector provides a notebook document filter but no cell selector all cells of a matching notebook document will be synced. If a selector provides no notebook document filter but only a cell selector all notebook document that contain at least one matching cell will be synced. @since 3.17.0 """ import Schematic, warn: false use TypedStruct @doc """ ## Fields * notebook_selector: The notebooks to be synced * save: Whether save notification should be forwarded to the server. Will only be honored if mode === `notebook`. """ @derive Jason.Encoder typedstruct do field :notebook_selector, list(map() | map()), enforce: true field :save, boolean() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ {"notebookSelector", :notebook_selector} => list( oneof([ map(%{ {"notebook", :notebook} => oneof([str(), GenLSP.TypeAlias.NotebookDocumentFilter.schematic()]), optional({"cells", :cells}) => list( map(%{ {"language", :language} => str() }) ) }), map(%{ optional({"notebook", :notebook}) => oneof([str(), GenLSP.TypeAlias.NotebookDocumentFilter.schematic()]), {"cells", :cells} => list( map(%{ {"language", :language} => str() }) ) }) ]) ), optional({"save", :save}) => bool() }) end end