h&<,6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred%W Safe-Inferred!"%'(01lsp8This is where all the temporary files will be written tolspThe LSP version of the documentlspThis number is only incremented whilst the file remains in the map.lsp!The full contents of the document%lspA range, like a , but where the offsets in the line are measured in Unicode code points instead of UTF-16 code units.'lspThe range's start position.(lspThe range's end position.)lspA position, like a , but where the offsets in the line are measured in Unicode code points instead of UTF-16 code units.+lsp)Line position in a document (zero-based).,lspCharacter offset on a line in a document in *code points* (zero-based).2lspApplies the changes from a  to the 3lsp Applies a !DidChangeTextDocumentNotification to the 4lspApplies the changes from a ApplyWorkspaceEditRequest to the 5lspWrite a virtual file to a temporary file if it exists in the VFS.7lspApply the list of changes. Changes should be applied in the order that they are received from the client.9lspGiven a , start and end positions, and some new text, replace the given range with the new text. If the given positions lie within a code point then this does nothing (returns the original  ) and logs.Hlsp1Describes the line at the current cursor positionJlsp.The full contents of the line the cursor is atKlspIf any, the module name that was typed right before the cursor position. For example, if the user has typed "Data.Maybe.from", then this property will be  Data.MaybeLlspThe word right before the cursor position, after removing the module part. For example if the user has typed "Data.Maybe.from", then this property will be "from"MlspThe cursor positionlsp Extracts a specific line from a &. Logarithmic in the number of lines.lspTranslate a code-point offset into a code-unit offset. Linear in the length of the rope.lspTranslate a UTF-16 code-unit offset into a code-point offset. Linear in the length of the rope.Plsp"Given a virtual file, translate a ) in that file into a  in that file. Will return < if the requested position is out of bounds of the document.Logarithmic in the number of lines in the document, and linear in the length of the line containing the position.Qlsp"Given a virtual file, translate a % in that file into a  in that file. Will return ; if any of the positions are out of bounds of the document.Logarithmic in the number of lines in the document, and linear in the length of the lines containing the positions.Rlsp"Given a virtual file, translate a  in that file into a ) in that file. Will return  if the requested position lies inside a code point, or if it is out of bounds of the document.Logarithmic in the number of lines in the document, and linear in the length of the line containing the position.Slsp"Given a virtual file, translate a  in that file into a % in that file. Will return ; if any of the positions are out of bounds of the document.Logarithmic in the number of lines in the document, and linear in the length of the lines containing the positions.9  !%&'()*,+-./0123456789DEHIJKLMNOPQRSTU9.- !/0 123456)*,+DEPR%&'(NOQSUHIJKLMT789 Safe-Inferred !")*01?+c(lspA function that a | is passed that can be used to respond to a request with either an error, or the response params.ZlspContains all the callbacks to use for initialized the language server. it is parameterized over a config type variable representing the type for the specific configuration data the language server needs to use.\lsp7The default value we initialize the config variable to.]lsp)onConfigurationChange oldConfig newConfig is called whenever the clients sends a message with a changed client configuration. This callback should return either the parsed configuration data or an error indicating what went wrong. The parsed configuration object will be stored internally and can be accessed via config. It is also called on the initializationOptions field of the InitializeParams^lspCalled *after* receiving the  initialize request and *before* returning the response. This callback will be invoked to offer the language server implementation the chance to create any processes or start new threads that may be necessary for the server lifecycle. It can also return an error in the initialization if necessary._lspHandlers for any methods you want to statically support. The handlers here cannot be unregistered during the server's lifetime and will be registered statically in the initialize request. The handlers provided can depend on the client capabilities, which are static across the lifetime of the server.`lsp5How to run the handlers in your own monad of choice, m. It is passed the result of ^2, so typically you will want to thread along the 9 as well as any other state you need to run your monad. m( should most likely be built on top of .  ServerDefinition { ... , doInitialize = env _req -> pure $ Right env , interpretHandler = env -> Iso (runLspT env) -- how to convert from IO ~> m liftIO -- how to convert from m ~> IO } alsp3Configurable options for the server's capabilities.b lsp3Whether or not the user should be able to cancel a / sessione lspThrown if the user cancels a c  sessionf lspA package indicating the percentage of progress complete and a an optional message to go with it during a hlspLanguage Server Protocol options that the server may configure. If you set handlers for some requests, you may need to set some of these options.klsp5The characters that trigger completion automatically.llspThe list of all possible characters that commit a completion. This field can be used if clients don't support individual commit characters per completion item. See _commitCharactersSupport.mlsp9The characters that trigger signature help automatically.nlspList of characters that re-trigger signature help. These trigger characters are only active when signature help is already showing. All trigger characters are also counted as re-trigger characters.olspCodeActionKinds that this server may return. The list of kinds may be generic, such as  ?, or the server may list out every specific kind they provide.plspThe list of characters that triggers on type formatting. If you set documentOnTypeFormattingHandler, you **must** set this. The first character is mandatory, so a  should be passed.qlsp7The commands to be executed on the server. If you set executeCommandHandler, you **must** set this.rlspInformation about the server that can be advertised to the client.lsp;state used by the LSP dispatcher to manage the message loopxlspHow to convert two isomorphic data structures between each other.|lspThe type of a handler that handles requests and notifications coming in from the server or client}lspWrapper to restrict |s to ClientToServer' slsp%A mapping from methods to the static |s that should be used to handle responses when they come in from the client. To build up a , you should  a list of  and s: mconcat [ notificationHandler SInitialized $ notif -> pure () , requestHandler STextDocumentHover $ req responder -> pure () ] lspReturn value signals if response handler was inserted successfully Might fail if the id was already in the maplsp Return the  associated with a given , if there is one.lspTake an atomic snapshot of the current state of the virtual file system.lspDump the current text for a given VFS file to a temporary file, and return the path to the file.lspGiven a text document identifier, annotate it with the latest version.lspIf the contents of a VFS has been dumped to a temporary file, map the temporary file name back to the original one.lsp9The current configuration from the client as set via the  initialize and  workspace/didChangeConfiguration# requests, as well as by calls to .lspThe current workspace folders, if the client supports workspace folders.lspSends a client/registerCapability& request and dynamically registers a  with a | . Returns  if the client does not support dynamic registration for the specified method, otherwise a w* which can be used to unregister it later.lspSends a client/unregisterCapability request and removes the handler for that associated registration.lspWrapper for reporting progress to the client during a long running task.  title cancellable f starts a new progress reporting session, and finishes it once f is completed. f is provided with an update function that allows it to report on the progress during the session. If  cancellable is c, f will be thrown a e- if the user cancels the action in progress. lspSame as , but for processes that do not report the precentage complete.lspAggregate all diagnostics pertaining to a particular version of a document, by source, and sends a textDocument/publishDiagnostics notification with the total (limited by the first parameter) whenever it is updated.lspRemove all diagnostics from a particular source, and send the updates to the client.lspThe changes in a workspace edit should be applied from the end of the file toward the start. Sort them into this order.lsp!Max number of diagnostics to sendZ`_^]\a[bdcefghrqponmlkjisvutwx{zy|}~  Safe-Inferred!"%&')*015.lsp#Call this to initialize the sessionlspInfers the capabilities based on registered handlers, and sets the appropriate options. A provider should be set to Nothing if the server does not support it, unless it is a static option.lspInvokes the registered dynamic or static handlers for the given message and method, as well as doing some bookkeeping.lspDefault Shutdown handlerlsp%Updates the list of workspace folderslspAn action to be run before invoking the handler, used for bookkeeping stuff like the vfs etc. Safe-Inferred"0lsp Logs messages to the client via window/logMessage.lsp Logs messages to the client via window/showMessage.lspA sensible/ log action for logging messages to the client:Shows  logs to the user via window/showMessageLogs " and above logs in the client via window/logMessage3If you want finer control (e.g. the ability to log  logs based on a flag, or similar), then do not use this and write your own based on  and .  Safe-Inferred"5=lspConvenience function for  which: (1) reads from stdin; (2) writes to stdout; and (3) logs to stderr and to the client, with some basic filtering.lspStarts a language server over the specified handles. This function will return once the exit notification is received.lspStarts listening and sending requests and responses using the specified I/O.lsp3Simple server to make sure all output is serialisedlsplspThe logger to use outside the main body of the server where we can't assume the ability to send messages.lspThe logger to use once the server has started and can successfully send messages.lsp!Handle to read client input from.lspHandle to write output to.lspThe logger to use outside the main body of the server where we can't assume the ability to send messages.lspThe logger to use once the server has started and can successfully send messages.lsp Client input.lspFunction to provide output to.  Safe-Inferred5~Z[a\]^_`bcdefghijklmnopqrstuvwxyz{|}~stuvZ[a\]^_`|}~hijklmnopqrxyz{fgbcdew     !"#$%&'()*+,-../01123456789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_``abcdefghijkkllmnopqrstuvvwxyz{|}~           jy                    "lsp-2.1.0.0-A0zYTDsMMsx6z1CbGHpjP0Language.LSP.DiagnosticsLanguage.LSP.VFSLanguage.LSP.ServerLanguage.LSP.LoggingJDidOpenTextDocumentLanguage.LSP.Server.CoreCodeActionKindRefactorLanguage.LSP.Server.ProcessingLanguage.LSP.Server.ControlDiagnosticsBySource StoreItemDiagnosticStorepartitionBySource flushBySourceupdateDiagnosticsgetDiagnosticParamsFor$fShowStoreItem $fEqStoreItemVfsLogSplitInsideCodePoint URINotFoundOpeningClosingPersistingFileCantRecursiveDeleteDeleteNonExistentVFS$sel:_vfsMap:VFS$sel:_vfsTempDir:VFS VirtualFile$sel:_lsp_version:VirtualFile$sel:_file_version:VirtualFile$sel:_file_text:VirtualFile$fPrettyVfsLog $fShowVfsLog $fShowVFS$fShowVirtualFile lsp_version file_version file_text$fHasFile_textVirtualFileRope$fHasFile_versionVirtualFileInt $fHasLsp_versionVirtualFileInt32CodePointRange$sel:_start:CodePointRange$sel:_end:CodePointRangeCodePointPosition$sel:_line:CodePointPosition!$sel:_character:CodePointPosition vfsTempDirvfsMapvirtualFileTextvirtualFileVersioninitVFSopenVFSchangeFromClientVFSchangeFromServerVFSpersistFileVFScloseVFS applyChanges applyChange changeChars$fHasVfsMapVFSMap$fHasVfsTempDirVFS[]$fShowCodePointRange$fReadCodePointRange$fEqCodePointRange$fOrdCodePointRange$fShowCodePointPosition$fReadCodePointPosition$fEqCodePointPosition$fOrdCodePointPositionline character#$fHasCharacterCodePointPositionUInt$fHasLineCodePointPositionUInt PosPrefixInfo$sel:fullLine:PosPrefixInfo$sel:prefixModule:PosPrefixInfo$sel:prefixText:PosPrefixInfo$sel:cursorPos:PosPrefixInfostartendcodePointPositionToPositioncodePointRangeToRangepositionToCodePointPositionrangeToCodePointRangegetCompletionPrefixrangeLinesFromVfs'$fHasEndCodePointRangeCodePointPosition)$fHasStartCodePointRangeCodePointPosition$fShowPosPrefixInfo$fEqPosPrefixInfoServerDefinition defaultConfigonConfigurationChange doInitializestaticHandlersinterpretHandleroptionsProgressCancellable CancellableNotCancellableProgressCancelledExceptionProgressAmountOptionsoptTextDocumentSyncoptCompletionTriggerCharacters optCompletionAllCommitCharacters!optSignatureHelpTriggerCharacters#optSignatureHelpRetriggerCharactersoptCodeActionKinds,optDocumentOnTypeFormattingTriggerCharactersoptExecuteCommandCommands optServerInfoVFSDatavfsData reverseMapRegistrationToken<~>IsoforwardbackwardHandlerClientMessageHandlerHandlers reqHandlers notHandlersLanguageContextEnv resHandlersresParseConfigresSendMessageresStateresClientCapabilities resRootPathMonadLsp getLspEnvLspMLspTunLspTrunLspTnotificationHandlerrequestHandlertransmuteHandlers mapHandlersdefaultOptionssendNotification sendRequestgetVirtualFilegetVirtualFilessnapshotVirtualFilespersistVirtualFilegetVersionedTextDocreverseFileMap getConfig setConfiggetClientCapabilities getRootPathgetWorkspaceFoldersregisterCapabilityunregisterCapability withProgresswithIndefiniteProgresspublishDiagnosticsflushDiagnosticsBySourcereverseSortEditlogToLogMessagelogToShowMessagedefaultClientLogger LspServerLogLspProcessingLogDecodeInitializeErrorHeaderParseFailEOFStarting ParsedMsgSendMsg runServerrunServerWithHandles runServerWith(lsp-types-2.0.1.0-3Pf9PyepNiH8nJIXdV4IX1*Language.LSP.Protocol.Internal.Types.RangeRange-Language.LSP.Protocol.Internal.Types.PositionPosition$text-rope-0.2-32UcuGPqJQ0ExstHd7nVhwData.Text.Utf16.RopeRope extractLinecodePointOffsetToCodeUnitOffsetcodeUnitOffsetToCodePointOffsetbase GHC.MaybeNothingServerResponseCallbackGHC.BaseNonEmptyLanguageContextState%Language.LSP.Protocol.Internal.MethodMethodmconcataddResponseHandlerLanguage.LSP.Protocol.Types.Uri NormalizedUri ProgressDataprogressCancelprogressNextIdRegistrationIdRegistrationMap ResponseMapresLspIdresRegistrationsReqresRegistrationsNotresPendingResponsesresProgressDataresWorkspaceFolders resConfigresDiagnosticsresVFS modifyState stateState getsState sendToClient freshLspId storeProgressdeleteProgressgetNewProgressIdwithProgressBaseclientSupportsProgressinitializeRequestHandlerinferServerCapabilitieshandleshutdownRequestHandlerupdateWorkspaceFoldershandle'ExitingProgressCancelConfigurationParseErrorMissingHandlerMessageProcessingErrorprocessMessageprogressCancelHandlerexitNotificationHandlerhandleConfigChangevfsFunc*co-log-core-0.3.2.0-ITVp0Pu9EyyIO657g6Wn1fColog.Core.SeverityErrorInfoDebug sendServer _TWO_CRLF