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

full_name: Lean.Lsp.RefIdent.fvar
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.RefIdent

full_name: Lean.Lsp.instBEqRefIdent
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: BEq Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefIdent.const
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.RefIdent

full_name: Lean.Lsp.instInhabitedRefIdent
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: Inhabited Lean.Lsp.RefIdent

full_name: Lean.Lsp.instHashableRefIdent
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: Hashable Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefIdent
code: /--
Identifier of a reference.
-/
inductive RefIdent where
  /-- Named identifier. These are used in all references that are globally available. -/
  | const (moduleName : Name) (identName : Name) : RefIdent
  /-- Unnamed identifier. These are used for all local references. -/
  | fvar (moduleName : Name) (id : FVarId) : RefIdent
  deriving BEq, Hashable, Inhabited
goal: Type

full_name: Lean.Lsp.RefIdent.instToJsonFVarId
code: instance : ToJson FVarId 
goal: Lean.ToJson Lean.FVarId

full_name: Lean.Lsp.RefIdent.instFromJsonFVarId
code: instance : FromJson FVarId 
goal: Lean.FromJson Lean.FVarId

full_name: Lean.Lsp.RefIdent.RefIdentJsonRepr.c
code: /-- Shortened representation of `RefIdent` for more compact serialization. -/
inductive RefIdentJsonRepr
  /-- Shortened representation of `RefIdent.const` for more compact serialization. -/
  | c (m n : Name)
  /-- Shortened representation of `RefIdent.fvar` for more compact serialization. -/
  | f (m : Name) (i : FVarId)
  deriving FromJson, ToJson
goal: Lean.Lsp.RefIdent.RefIdentJsonRepr

full_name: Lean.Lsp.RefIdent.RefIdentJsonRepr
code: /-- Shortened representation of `RefIdent` for more compact serialization. -/
inductive RefIdentJsonRepr
  /-- Shortened representation of `RefIdent.const` for more compact serialization. -/
  | c (m n : Name)
  /-- Shortened representation of `RefIdent.fvar` for more compact serialization. -/
  | f (m : Name) (i : FVarId)
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.RefIdent.RefIdentJsonRepr.f
code: /-- Shortened representation of `RefIdent` for more compact serialization. -/
inductive RefIdentJsonRepr
  /-- Shortened representation of `RefIdent.const` for more compact serialization. -/
  | c (m n : Name)
  /-- Shortened representation of `RefIdent.fvar` for more compact serialization. -/
  | f (m : Name) (i : FVarId)
  deriving FromJson, ToJson
goal: Lean.Lsp.RefIdent.RefIdentJsonRepr

full_name: Lean.Lsp.RefIdent.instFromJsonRefIdentJsonRepr
code: FromJson
goal: Lean.FromJson Lean.Lsp.RefIdent.RefIdentJsonRepr

full_name: Lean.Lsp.RefIdent.instToJsonRefIdentJsonRepr
code: ToJson
goal: Lean.ToJson Lean.Lsp.RefIdent.RefIdentJsonRepr

full_name: Lean.Lsp.RefIdent.toJsonRepr
code: /-- Converts `id` to its compact serialization representation. -/
def toJsonRepr : (id : RefIdent) → RefIdentJsonRepr
  
goal: Lean.Lsp.RefIdent.RefIdentJsonRepr

full_name: Lean.Lsp.RefIdent.fromJsonRepr
code: /-- Converts `repr` to `RefIdent`. -/
def fromJsonRepr : (repr : RefIdentJsonRepr) → RefIdent
  
goal: Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefIdent.fromJson?
code: /-- Converts `RefIdent` from a JSON for `RefIdentJsonRepr`. -/
def fromJson? (s : Json) : Except String RefIdent 
goal: Except String Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefIdent.toJson
code: /-- Converts `RefIdent` to a JSON for `RefIdentJsonRepr`. -/
def toJson (id : RefIdent) : Json 
goal: Lean.Json

full_name: Lean.Lsp.RefIdent.instFromJson
code: instance : FromJson RefIdent 
goal: Lean.FromJson Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefIdent.instToJson
code: instance : ToJson RefIdent 
goal: Lean.ToJson Lean.Lsp.RefIdent

full_name: Lean.Lsp.RefInfo.ParentDecl
code: /-- Information about the declaration surrounding a reference. -/
structure RefInfo.ParentDecl where
  /-- Name of the declaration surrounding a reference. -/
  name           : Name
  /-- Range of the declaration surrounding a reference. -/
  range          : Lsp.Range
  /-- Selection range of the declaration surrounding a reference. -/
  selectionRange : Lsp.Range
  deriving ToJson
goal: Type

full_name: Lean.Lsp.RefInfo.ParentDecl.selectionRange
code: /-- Information about the declaration surrounding a reference. -/
structure RefInfo.ParentDecl where
  /-- Name of the declaration surrounding a reference. -/
  name           : Name
  /-- Range of the declaration surrounding a reference. -/
  range          : Lsp.Range
  /-- Selection range of the declaration surrounding a reference. -/
  selectionRange : Lsp.Range
  deriving ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.RefInfo.ParentDecl.name
code: /-- Information about the declaration surrounding a reference. -/
structure RefInfo.ParentDecl where
  /-- Name of the declaration surrounding a reference. -/
  name           : Name
  /-- Range of the declaration surrounding a reference. -/
  range          : Lsp.Range
  /-- Selection range of the declaration surrounding a reference. -/
  selectionRange : Lsp.Range
  deriving ToJson
goal: Lean.Name

full_name: Lean.Lsp.RefInfo.ParentDecl.range
code: /-- Information about the declaration surrounding a reference. -/
structure RefInfo.ParentDecl where
  /-- Name of the declaration surrounding a reference. -/
  name           : Name
  /-- Range of the declaration surrounding a reference. -/
  range          : Lsp.Range
  /-- Selection range of the declaration surrounding a reference. -/
  selectionRange : Lsp.Range
  deriving ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.RefInfo.instToJsonParentDecl
code: ToJson
goal: Lean.ToJson Lean.Lsp.RefInfo.ParentDecl

full_name: Lean.Lsp.RefInfo.instInhabitedLocation
code: /--
Denotes the range of a reference, as well as the parent declaration of the reference.
If the reference is itself a declaration, then it contains no parent declaration.
-/
structure RefInfo.Location where
  /-- Range of the reference. -/
  range       : Lsp.Range
  /-- Parent declaration of the reference. `none` if the reference is itself a declaration. -/
  parentDecl? : Option RefInfo.ParentDecl
deriving Inhabited
goal: Inhabited Lean.Lsp.RefInfo.Location

full_name: Lean.Lsp.RefInfo.Location.parentDecl?
code: /--
Denotes the range of a reference, as well as the parent declaration of the reference.
If the reference is itself a declaration, then it contains no parent declaration.
-/
structure RefInfo.Location where
  /-- Range of the reference. -/
  range       : Lsp.Range
  /-- Parent declaration of the reference. `none` if the reference is itself a declaration. -/
  parentDecl? : Option RefInfo.ParentDecl
deriving Inhabited
goal: Option Lean.Lsp.RefInfo.ParentDecl

full_name: Lean.Lsp.RefInfo.Location.range
code: /--
Denotes the range of a reference, as well as the parent declaration of the reference.
If the reference is itself a declaration, then it contains no parent declaration.
-/
structure RefInfo.Location where
  /-- Range of the reference. -/
  range       : Lsp.Range
  /-- Parent declaration of the reference. `none` if the reference is itself a declaration. -/
  parentDecl? : Option RefInfo.ParentDecl
deriving Inhabited
goal: Lean.Lsp.Range

full_name: Lean.Lsp.RefInfo.Location
code: /--
Denotes the range of a reference, as well as the parent declaration of the reference.
If the reference is itself a declaration, then it contains no parent declaration.
-/
structure RefInfo.Location where
  /-- Range of the reference. -/
  range       : Lsp.Range
  /-- Parent declaration of the reference. `none` if the reference is itself a declaration. -/
  parentDecl? : Option RefInfo.ParentDecl
deriving Inhabited
goal: Type

full_name: Lean.Lsp.RefInfo.definition?
code: /-- Definition site and usage sites of a reference. Obtained from `Lean.Server.RefInfo`. -/
structure RefInfo where
  /-- Definition site of the reference. May be `none` when we cannot find a definition site. -/
  definition? : Option RefInfo.Location
  /-- Usage sites of the reference. -/
  usages      : Array RefInfo.Location
goal: Option Lean.Lsp.RefInfo.Location

full_name: Lean.Lsp.RefInfo
code: /-- Definition site and usage sites of a reference. Obtained from `Lean.Server.RefInfo`. -/
structure RefInfo where
  /-- Definition site of the reference. May be `none` when we cannot find a definition site. -/
  definition? : Option RefInfo.Location
  /-- Usage sites of the reference. -/
  usages      : Array RefInfo.Location
goal: Type

full_name: Lean.Lsp.RefInfo.usages
code: /-- Definition site and usage sites of a reference. Obtained from `Lean.Server.RefInfo`. -/
structure RefInfo where
  /-- Definition site of the reference. May be `none` when we cannot find a definition site. -/
  definition? : Option RefInfo.Location
  /-- Usage sites of the reference. -/
  usages      : Array RefInfo.Location
goal: Array Lean.Lsp.RefInfo.Location

full_name: Lean.Lsp.instToJsonRefInfo
code: instance : ToJson RefInfo 
goal: Lean.ToJson Lean.Lsp.RefInfo

full_name: Lean.Lsp.instFromJsonRefInfo
code: instance : FromJson RefInfo 
goal: Lean.FromJson Lean.Lsp.RefInfo

full_name: Lean.Lsp.ModuleRefs
code: /-- References from a single module/file -/
def ModuleRefs 
goal: Type

full_name: Lean.Lsp.instToJsonModuleRefs
code: instance : ToJson ModuleRefs 
goal: Lean.ToJson Lean.Lsp.ModuleRefs

full_name: Lean.Lsp.instFromJsonModuleRefs
code: instance : FromJson ModuleRefs 
goal: Lean.FromJson Lean.Lsp.ModuleRefs

full_name: Lean.Lsp.LeanIleanInfoParams.version
code: /--
Used in the `$/lean/ileanInfoUpdate` and `$/lean/ileanInfoFinal` watchdog <- worker notifications.
Contains the definitions and references of the file managed by a worker.
-/
structure LeanIleanInfoParams where
  /-- Version of the file these references are from. -/
  version    : Nat
  /-- All references for the file. -/
  references : ModuleRefs
  deriving FromJson, ToJson
goal: Nat

full_name: Lean.Lsp.LeanIleanInfoParams
code: /--
Used in the `$/lean/ileanInfoUpdate` and `$/lean/ileanInfoFinal` watchdog <- worker notifications.
Contains the definitions and references of the file managed by a worker.
-/
structure LeanIleanInfoParams where
  /-- Version of the file these references are from. -/
  version    : Nat
  /-- All references for the file. -/
  references : ModuleRefs
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.LeanIleanInfoParams.references
code: /--
Used in the `$/lean/ileanInfoUpdate` and `$/lean/ileanInfoFinal` watchdog <- worker notifications.
Contains the definitions and references of the file managed by a worker.
-/
structure LeanIleanInfoParams where
  /-- Version of the file these references are from. -/
  version    : Nat
  /-- All references for the file. -/
  references : ModuleRefs
  deriving FromJson, ToJson
goal: Lean.Lsp.ModuleRefs

full_name: Lean.Lsp.instFromJsonLeanIleanInfoParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.LeanIleanInfoParams

full_name: Lean.Lsp.instToJsonLeanIleanInfoParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.LeanIleanInfoParams

full_name: Lean.Lsp.LeanImportClosureParams.importClosure
code: /--
Used in the `$/lean/importClosure` watchdog <- worker notification.
Contains the full import closure of the file managed by a worker.
-/
structure LeanImportClosureParams where
  /-- Full import closure of the file. -/
  importClosure : Array DocumentUri
  deriving FromJson, ToJson
goal: Array Lean.Lsp.DocumentUri

full_name: Lean.Lsp.LeanImportClosureParams
code: /--
Used in the `$/lean/importClosure` watchdog <- worker notification.
Contains the full import closure of the file managed by a worker.
-/
structure LeanImportClosureParams where
  /-- Full import closure of the file. -/
  importClosure : Array DocumentUri
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonLeanImportClosureParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.LeanImportClosureParams

full_name: Lean.Lsp.instToJsonLeanImportClosureParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.LeanImportClosureParams

full_name: Lean.Lsp.LeanStaleDependencyParams
code: /--
Used in the `$/lean/importClosure` watchdog -> worker notification.
Informs the worker that one of its dependencies has gone stale and likely needs to be rebuilt.
-/
structure LeanStaleDependencyParams where
  /-- The dependency that is stale. -/
  staleDependency : DocumentUri
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.LeanStaleDependencyParams.staleDependency
code: /--
Used in the `$/lean/importClosure` watchdog -> worker notification.
Informs the worker that one of its dependencies has gone stale and likely needs to be rebuilt.
-/
structure LeanStaleDependencyParams where
  /-- The dependency that is stale. -/
  staleDependency : DocumentUri
  deriving FromJson, ToJson
goal: Lean.Lsp.DocumentUri

full_name: Lean.Lsp.instFromJsonLeanStaleDependencyParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.LeanStaleDependencyParams

full_name: Lean.Lsp.instToJsonLeanStaleDependencyParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.LeanStaleDependencyParams