@[reducible, inline]
A unique registration ID
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lapis.Server.Registration.instInhabitedRegistrationParams.default = { registrations := default }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lapis.Server.Registration.instInhabitedUnregistrationParams.default = { unregistrations := default }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lapis.Server.Registration.instBEqWatchKind.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
@[reducible, inline]
Document selector is an array of filters
Equations
Instances For
Equations
- Lapis.Server.Registration.instInhabitedTextDocumentRegistrationOptions.default = { documentSelector := default }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Tracks active capability registrations
- registrations : Std.HashMap String (Array RegistrationId)
Method to list of registration IDs
All registrations by ID
Instances For
Manages dynamic capability registration
- state : IO.Ref RegistrationState
Current registration state
- idCounter : Concurrent.AtomicCounter
Counter for generating unique IDs
- outputChannel : Transport.OutputChannel
Output channel for sending requests
- pendingResponses : Receiver.PendingResponses
Pending responses
Instances For
def
Lapis.Server.Registration.RegistrationManager.new
(outputChannel : Transport.OutputChannel)
(pendingResponses : Receiver.PendingResponses)
:
Create a new registration manager
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.generateId
(rm : RegistrationManager)
(pfx : String := "reg")
:
Generate a unique registration ID
Equations
- rm.generateId pfx = do let n ← rm.idCounter.incrementAndGet pure (toString pfx ++ toString "-" ++ toString n)
Instances For
def
Lapis.Server.Registration.RegistrationManager.register
(rm : RegistrationManager)
(method : String)
(options : Option Lean.Json := none)
:
Register a capability
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.unregister
(rm : RegistrationManager)
(id : RegistrationId)
:
Unregister a capability by ID
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.unregisterAll
(rm : RegistrationManager)
(method : String)
:
Unregister all capabilities for a method
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.isRegistered
(rm : RegistrationManager)
(method : String)
:
Check if a method has any active registrations
Equations
- rm.isRegistered method = do let s ← ST.Ref.get rm.state have ids : Array Lapis.Server.Registration.RegistrationId := s.registrations.getD method #[] pure (decide (ids.size > 0))
Instances For
def
Lapis.Server.Registration.RegistrationManager.getRegistrations
(rm : RegistrationManager)
(method : String)
:
Get all registration IDs for a method
Equations
- rm.getRegistrations method = do let s ← ST.Ref.get rm.state pure (s.registrations.getD method #[])
Instances For
def
Lapis.Server.Registration.RegistrationManager.registerFileWatchers
(rm : RegistrationManager)
(patterns : Array String)
(watchKinds : Option Nat := none)
:
Register file watchers
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.registerFileWatcher
(rm : RegistrationManager)
(pattern : String)
(watchKinds : Option Nat := none)
:
Register a single file watcher
Equations
- rm.registerFileWatcher pattern watchKinds = rm.registerFileWatchers #[pattern] watchKinds
Instances For
Create a watch kind bitmask
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lapis.Server.Registration.RegistrationManager.registerForLanguages
(rm : RegistrationManager)
(method : String)
(languages : Array String)
(additionalOptions : Option Lean.Json := none)
:
Register a text document capability for specific languages
Equations
- One or more equations did not get rendered due to their size.
- rm.registerForLanguages method languages = rm.register method (some (Lean.toJson { documentSelector := Array.map (fun (lang : String) => { language := some lang }) languages }))
- rm.registerForLanguages method languages (some addl✝) = rm.register method (some (Lean.toJson { documentSelector := Array.map (fun (lang : String) => { language := some lang }) languages }))
Instances For
def
Lapis.Server.Registration.RegistrationManager.registerForScheme
(rm : RegistrationManager)
(method scheme : String)
:
Register a text document capability for a file scheme