File: .lake/packages/lean4/src/lean/Lean/Data/Lsp/Diagnostics.lean

full_name: Lean.Lsp.instInhabitedDiagnosticSeverity
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Inhabited Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.DiagnosticSeverity.information
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.DiagnosticSeverity
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Type

full_name: Lean.Lsp.DiagnosticSeverity.hint
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.instOrdDiagnosticSeverity
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Ord Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.DiagnosticSeverity.error
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.DiagnosticSeverity.warning
code: inductive DiagnosticSeverity where
  | error | warning | information | hint
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.instBEqDiagnosticSeverity
code: BEq
goal: BEq Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.instFromJsonDiagnosticSeverity
code: instance : FromJson DiagnosticSeverity 
goal: Lean.FromJson Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.instToJsonDiagnosticSeverity
code: instance : ToJson DiagnosticSeverity 
goal: Lean.ToJson Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.instInhabitedDiagnosticCode
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: Inhabited Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.DiagnosticCode.string
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.DiagnosticCode.int
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.instBEqDiagnosticCode
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: BEq Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.instOrdDiagnosticCode
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: Ord Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.DiagnosticCode
code: /-- Some languages have specific codes for each error type. -/
inductive DiagnosticCode where
  | int (i : Int)
  | string (s : String)
  deriving Inhabited, BEq, Ord
goal: Type

full_name: Lean.Lsp.instFromJsonDiagnosticCode
code: instance : FromJson DiagnosticCode 
goal: Lean.FromJson Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.instToJsonDiagnosticCode
code: instance : ToJson DiagnosticCode 
goal: Lean.ToJson Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.instInhabitedDiagnosticTag
code: /-- Tags representing additional metadata about the diagnostic. -/
inductive DiagnosticTag where
  /-- Unused or unnecessary code. Rendered as faded out eg for unused variables. -/
  | unnecessary
  /-- Deprecated or obsolete code. Rendered with a strike-through. -/
  | deprecated
  deriving Inhabited, BEq, Ord
goal: Inhabited Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.DiagnosticTag
code: /-- Tags representing additional metadata about the diagnostic. -/
inductive DiagnosticTag where
  /-- Unused or unnecessary code. Rendered as faded out eg for unused variables. -/
  | unnecessary
  /-- Deprecated or obsolete code. Rendered with a strike-through. -/
  | deprecated
  deriving Inhabited, BEq, Ord
goal: Type

full_name: Lean.Lsp.instOrdDiagnosticTag
code: /-- Tags representing additional metadata about the diagnostic. -/
inductive DiagnosticTag where
  /-- Unused or unnecessary code. Rendered as faded out eg for unused variables. -/
  | unnecessary
  /-- Deprecated or obsolete code. Rendered with a strike-through. -/
  | deprecated
  deriving Inhabited, BEq, Ord
goal: Ord Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.DiagnosticTag.deprecated
code: /-- Tags representing additional metadata about the diagnostic. -/
inductive DiagnosticTag where
  /-- Unused or unnecessary code. Rendered as faded out eg for unused variables. -/
  | unnecessary
  /-- Deprecated or obsolete code. Rendered with a strike-through. -/
  | deprecated
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.DiagnosticTag.unnecessary
code: /-- Tags representing additional metadata about the diagnostic. -/
inductive DiagnosticTag where
  /-- Unused or unnecessary code. Rendered as faded out eg for unused variables. -/
  | unnecessary
  /-- Deprecated or obsolete code. Rendered with a strike-through. -/
  | deprecated
  deriving Inhabited, BEq, Ord
goal: Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.instBEqDiagnosticTag
code: BEq
goal: BEq Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.instFromJsonDiagnosticTag
code: instance : FromJson DiagnosticTag 
goal: Lean.FromJson Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.instToJsonDiagnosticTag
code: instance : ToJson DiagnosticTag 
goal: Lean.ToJson Lean.Lsp.DiagnosticTag

full_name: Lean.Lsp.instBEqDiagnosticRelatedInformation
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: BEq Lean.Lsp.DiagnosticRelatedInformation

full_name: Lean.Lsp.DiagnosticRelatedInformation
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: Type

full_name: Lean.Lsp.DiagnosticRelatedInformation.message
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: String

full_name: Lean.Lsp.instOrdDiagnosticRelatedInformation
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: Ord Lean.Lsp.DiagnosticRelatedInformation

full_name: Lean.Lsp.DiagnosticRelatedInformation.location
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: Lean.Lsp.Location

full_name: Lean.Lsp.instInhabitedDiagnosticRelatedInformation
code: /-- Represents a related message and source code location for a diagnostic.
    This should be used to point to code locations that cause or are related to
    a diagnostics, e.g when duplicating a symbol in a scope. -/
structure DiagnosticRelatedInformation where
  location : Location
  message : String
  deriving Inhabited, BEq, ToJson, FromJson, Ord
goal: Inhabited Lean.Lsp.DiagnosticRelatedInformation

full_name: Lean.Lsp.instToJsonDiagnosticRelatedInformation
code: ToJson
goal: Lean.ToJson Lean.Lsp.DiagnosticRelatedInformation

full_name: Lean.Lsp.instFromJsonDiagnosticRelatedInformation
code: FromJson
goal: Lean.FromJson Lean.Lsp.DiagnosticRelatedInformation

full_name: Lean.Lsp.DiagnosticWith.severity?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option Lean.Lsp.DiagnosticSeverity

full_name: Lean.Lsp.DiagnosticWith.relatedInformation?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option (Array Lean.Lsp.DiagnosticRelatedInformation)

full_name: Lean.Lsp.DiagnosticWith.source?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option String

full_name: Lean.Lsp.DiagnosticWith.data?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option Lean.Json

full_name: Lean.Lsp.instInhabitedDiagnosticWith
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: {a : Type} → [inst : Inhabited a] → Inhabited (Lean.Lsp.DiagnosticWith a)

full_name: Lean.Lsp.instBEqDiagnosticWith
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: {α : Type} → [inst : BEq α] → BEq (Lean.Lsp.DiagnosticWith α)

full_name: Lean.Lsp.DiagnosticWith.message
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: α

full_name: Lean.Lsp.DiagnosticWith
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Type

full_name: Lean.Lsp.DiagnosticWith.tags?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option (Array Lean.Lsp.DiagnosticTag)

full_name: Lean.Lsp.DiagnosticWith.code?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option Lean.Lsp.DiagnosticCode

full_name: Lean.Lsp.DiagnosticWith.fullRange?
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option Lean.Lsp.Range

full_name: Lean.Lsp.DiagnosticWith.range
code: /-- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

LSP accepts a `Diagnostic := DiagnosticWith String`.
The infoview also accepts `InteractiveDiagnostic := DiagnosticWith (TaggedText MsgEmbed)`.

[reference](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) -/
structure DiagnosticWith (α : Type) where
  /-- The range at which the message applies. -/
  range : Range
  /-- Extension: preserve semantic range of errors when truncating them for display purposes. -/
  fullRange? : Option Range := some range
  severity? : Option DiagnosticSeverity := none
  /-- The diagnostic's code, which might appear in the user interface. -/
  code? : Option DiagnosticCode := none
  /-- A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'. -/
  source? : Option String := none
  /-- Parametrised by the type of message data. LSP diagnostics use `String`,
  whereas in Lean's interactive diagnostics we use the type of widget-enriched text.
  See `Lean.Widget.InteractiveDiagnostic`. -/
  message : α
  /-- Additional metadata about the diagnostic. -/
  tags? : Option (Array DiagnosticTag) := none
  /-- An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. -/
  relatedInformation? : Option (Array DiagnosticRelatedInformation) := none
  /-- A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. -/
  data?: Option Json := none
  deriving Inhabited, BEq, ToJson, FromJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.instToJsonDiagnosticWith
code: ToJson
goal: {α : Type} → [inst : Lean.ToJson α] → Lean.ToJson (Lean.Lsp.DiagnosticWith α)

full_name: Lean.Lsp.instFromJsonDiagnosticWith
code: FromJson
goal: {α : Type} → [inst : Lean.FromJson α] → Lean.FromJson (Lean.Lsp.DiagnosticWith α)

full_name: Lean.Lsp.DiagnosticWith.fullRange
code: def DiagnosticWith.fullRange (d : DiagnosticWith α) : Range 
goal: Lean.Lsp.Range

full_name: Lean.Lsp.«instOrdArray_.lake»
code: local instance [Ord α] : Ord (Array α) 
goal: Ord (Array α)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Type

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.tags?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option (Array Lean.Lsp.DiagnosticTag)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.fullRange?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option Lean.Lsp.Range

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.code?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option Lean.Lsp.DiagnosticCode

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.severity?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option Lean.Lsp.DiagnosticSeverity

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.source?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option String

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.range
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Lean.Lsp.Range

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.relatedInformation?
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: Option (Array Lean.Lsp.DiagnosticRelatedInformation)

full_name: Lean.Lsp.DiagnosticWith.instOrdUserVisible
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: {α : Type} → [inst : Ord α] → Ord (Lean.Lsp.DiagnosticWith.UserVisible α)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.message
code: /-- Restriction of `DiagnosticWith` to properties that are displayed to users in the InfoView. -/
private structure DiagnosticWith.UserVisible (α : Type) where
  range               : Range
  fullRange?          : Option Range
  severity?           : Option DiagnosticSeverity
  code?               : Option DiagnosticCode
  source?             : Option String
  message             : α
  tags?               : Option (Array DiagnosticTag)
  relatedInformation? : Option (Array DiagnosticRelatedInformation)
  deriving Ord
goal: α

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Lsp.Diagnostics.0.Lean.Lsp.DiagnosticWith.UserVisible.ofDiagnostic
code: /-- Extracts user-visible properties from the given `DiagnosticWith`. -/
private def DiagnosticWith.UserVisible.ofDiagnostic (d : DiagnosticWith α)
    : DiagnosticWith.UserVisible α 
goal: Lean.Lsp.DiagnosticWith.UserVisible α

full_name: Lean.Lsp.compareByUserVisible
code: /-- Compares `DiagnosticWith` instances modulo non-user-facing properties. -/
def compareByUserVisible [Ord α] (a b : DiagnosticWith α) : Ordering 
goal: Ordering

full_name: Lean.Lsp.Diagnostic
code: abbrev Diagnostic 
goal: Type

full_name: Lean.Lsp.PublishDiagnosticsParams
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: Type

full_name: Lean.Lsp.PublishDiagnosticsParams.uri
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: Lean.Lsp.DocumentUri

full_name: Lean.Lsp.instBEqPublishDiagnosticsParams
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: BEq Lean.Lsp.PublishDiagnosticsParams

full_name: Lean.Lsp.instInhabitedPublishDiagnosticsParams
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: Inhabited Lean.Lsp.PublishDiagnosticsParams

full_name: Lean.Lsp.PublishDiagnosticsParams.version?
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: Option Int

full_name: Lean.Lsp.PublishDiagnosticsParams.diagnostics
code: /-- Parameters for the [`textDocument/publishDiagnostics` notification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics). -/
structure PublishDiagnosticsParams where
  uri : DocumentUri
  version? : Option Int := none
  diagnostics : Array Diagnostic
  deriving Inhabited, BEq, ToJson, FromJson
goal: Array Lean.Lsp.Diagnostic

full_name: Lean.Lsp.instToJsonPublishDiagnosticsParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.PublishDiagnosticsParams

full_name: Lean.Lsp.instFromJsonPublishDiagnosticsParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.PublishDiagnosticsParams