h&iR]t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Safe-Inferred "%&'18 hls-plugin-apiNote that this is logging actions _of the program_, not of the user. You shouldn't call warning/error if the user has caused an error, only if our code has gone wrong and is itself erroneous (e.g. we threw an exception).hls-plugin-apiNote that this is logging actions _of the program_, not of the user. You shouldn't call warning/error if the user has caused an error, only if our code has gone wrong and is itself erroneous (e.g. we threw an exception).hls-plugin-apiVerbose debug logging.hls-plugin-api9Useful information in case an error has to be understood.hls-plugin-apiThese error messages should not occur in a expected usage, and should be investigated.hls-plugin-api5Such log messages must never occur in expected usage.&hls-plugin-apiGiven a  ' that requires an argument, produces a   that queues up messages until the argument is provided using the callback, at which point it sends the backlog and begins functioning normally.'hls-plugin-api9Creates a recorder that sends logs to the LSP client via window/showMessage notifications.(hls-plugin-api9Creates a recorder that sends logs to the LSP client via window/logMessage notifications.$hls-plugin-apiLog file path.hls-plugin-apilogging columns to display.  uses hls-plugin-apiaction given a recorder, or the exception if we failed to open the file%hls-plugin-api=built-in logging columns to display. Nothing uses the defaulthls-plugin-api&lock to take when outputting to handlehls-plugin-apihandle to output to  !"#$%&'()(  !"$#% &'() Safe-Inferred"1  6hls-plugin-apiEach PluginError corresponds to either a specific ResponseError we want to return or a specific way we want to log the error. If the currently present ones are insufficient for the needs of your plugin, please feel free to add a new one.Currently the PluginErrors we provide can be broken up into several groups. First is PluginInternalError, which is the most serious of the errors, and also the "default" error that is used for things such as uncaught exceptions. Then we have PluginInvalidParams, which along with PluginInternalError map to a corresponding ResponseError.Next we have PluginRuleFailed and PluginInvalidUserState, with the only difference being PluginRuleFailed is specific to Shake rules and PluginInvalidUserState can be used for everything else. Both of these are "non-errors", and happen whenever the user's code is in a state where the plugin is unable to provide a answer to the users request. PluginStaleResolve is similar to the above two Error types, but is specific to resolve plugins, and is used only when the data provided by the resolve request is stale, preventing the proper resolution of it.Finally we have the outlier, PluginRequestRefused, where we allow a handler to preform "pluginEnabled" checks inside the handler, and reject the request after viewing it. The behavior of only one handler passing  pluginEnabled and then returning PluginRequestRefused should be the same as if no plugins passed the  pluginEnabled stage.7hls-plugin-apiPluginInternalError should be used if an error has occurred. This should only rarely be returned. As it's logged with Error, it will be shown by the client to the user via  showWindow. All uncaught exceptions will be caught and converted to this error.This error will be be converted into an InternalError response code. It will be logged with Error and takes the highest precedence (1) in being returned as a response to the client.8hls-plugin-apiPluginInvalidParams should be used if the parameters of the request are invalid. This error means that there is a bug in the client's code (otherwise they wouldn't be sending you requests with invalid parameters).This error will be will be converted into a InvalidParams response code. It will be logged with Warning and takes medium precedence (2) in being returned as a response to the client.9hls-plugin-apiPluginInvalidUserState should be thrown when a function that your plugin depends on fails. This should only be used when the function fails because the user's code is in an invalid state.This error takes the name of the function that failed. Prefer to catch this error as close to the source as possible.This error will be logged with Debug, and will be converted into a RequestFailed response. It takes a low precedence (3) in being returned as a response to the client.:hls-plugin-apiPluginRequestRefused allows your handler to inspect a request before rejecting it. In effect it allows your plugin to act make a secondary  pluginEnabled decision after receiving the request. This should only be used if the decision to accept the request can not be made in  pluginEnabled.This error will be with Debug. If it's the only response to a request, HLS will respond as if no plugins passed the  pluginEnabled stage.;hls-plugin-apiPluginRuleFailed should be thrown when a Rule your response depends on fails.2This error takes the name of the Rule that failed.This error will be logged with Debug, and will be converted into a RequestFailed response code. It takes a low precedence (3) in being returned as a response to the client.<hls-plugin-apiPluginStaleResolve should be thrown when your resolve request is provided with data it can no longer resolve.This error will be logged with Debug, and will be converted into a ContentModified response. It takes a low precedence (3) in being returned as a response to the client.=hls-plugin-api0Converts to ErrorCode used in LSP ResponseErrors>hls-plugin-apiConverts to a logging priority. In addition to being used by the logger, combineResponses currently uses this to choose which response to return, so care should be taken in changing it. 6789:;<=>?@A 6789:;<=>?@A Safe-Inferred"%&)*/1*Chls-plugin-apiIn row r , there is a O k, which has name s and carries haskell type tDhls-plugin-apiA proxy type in order to allow overloaded labels as properties' names at the call siteFhls-plugin-apiF is a partial implementation of json schema, without supporting union types and validation. In hls, it defines a set of properties which used in dedicated configuration of a plugin. A property is an immediate child of the json object in each plugin's "config" section. It was designed to be compatible with vscode's settings UI. Use a and c to create and consume F.hls-plugin-apiExistential wrapper of G, with an extra QGhls-plugin-apiSingleton type of OOhls-plugin-api,Used at type level for name-type mapping in FQhls-plugin-apiMetadata of a propertyYhls-plugin-apiTypes properties may haveahls-plugin-api Creates a F that defines no property3Useful to start a definitions chain, for example:  properties = emptyProperties & defineStringProperty #exampleString "Description of exampleString" Foo & defineNumberProperty #exampleNumber "Description of exampleNumber" 233 bhls-plugin-apiGiven the name of a defined property, generates a JSON parser of  plcConfigchls-plugin-apiLike b but returns T on parse errordhls-plugin-apiDefines a number propertyehls-plugin-apiDefines an integer propertyfhls-plugin-apiDefines a string propertyghls-plugin-apiDefines a boolean propertyhhls-plugin-apiDefines an object propertyihls-plugin-apiDefines an array propertyjhls-plugin-apiDefines an enum propertykhls-plugin-apiConverts a properties definition into kv pairs with default values from Qlhls-plugin-api?Converts a properties definition into kv pairs as vscode schemadhls-plugin-api descriptionhls-plugin-api default valueehls-plugin-api descriptionhls-plugin-api default valuefhls-plugin-api descriptionhls-plugin-api default valueghls-plugin-api descriptionhls-plugin-api default valuehhls-plugin-api descriptionhls-plugin-api default valueihls-plugin-api descriptionhls-plugin-api default valuejhls-plugin-api descriptionhls-plugin-api+valid enum members with each of description+CDEFGHIJKLMNOPQRSUTVWXY_Z[\]^`abcdefghijkl+Y_Z[\]^`XQRSUTVWOPGHIJKLMNDEFCadefghijklbc Safe-Inferred 189:?+nhls-plugin-api!A map from code ranges to values.phls-plugin-api of  corresponds to a qhls-plugin-api Construct a n from a  accessor and a list of values.shls-plugin-api Filter a n by a given .nopqrsnopqrs Safe-Inferred""%&'()*-/01;<=?I"hls-plugin-api+Format the given Text as a whole or only a Range of it. Range must be relative to the text to format. To format the whole document, read the Text from the file and use  as the FormattingType.hls-plugin-apiAllow plugins to "own" resolve data, allowing only them to be queried for the resolve action. This design has added flexibility at the cost of nested Value typeshls-plugin-apiCombine handlers for thehls-plugin-api*Methods which have a PluginMethod instancehls-plugin-api*Methods which have a PluginMethod instancehls-plugin-apiPlugin Notification methods. No specific methods at the moment, but might contain more in the future.hls-plugin-api0How to combine responses from different plugins.For example, for Hover requests, we might have multiple producers of Hover information. We do not want to decide which one to display to the user but instead allow to define how to merge two hover request responses into one glorious hover box.However, as sometimes only one handler of a request can realistically exist (such as TextDocumentFormatting), it is safe to just unconditionally report back one arbitrary result (arbitrary since it should only be one anyway).hls-plugin-api)Methods that can be handled by plugins.  ExtraParams captures any extra data the IDE passes to the handlers for this method Only methods for which we know how to combine responses can be instances of hls-plugin-apiParse the configuration to check if this plugin is enabled. Perform sanity checks on the message to see whether the plugin is enabled for this message in particular. If a plugin is not enabled, its handlers, commands, etc. will not be run for the given message.Semantically, this method describes whether a plugin is enabled configuration wise and is allowed to respond to the message. This might depend on the URI that is associated to the Message Parameters. There are requests with no associated URI that, consequentially, cannot inspect the URI.A common reason why a plugin might not be allowed to respond although it is enabled: * The plugin cannot handle requests associated with the specific URI * Since the implementation of  >https://github.com/haskell/haskell-language-server/issues/2940 cabal plugins> HLS knows plugins specific to Haskell and specific to 6https://cabal.readthedocs.io/en/3.6/cabal-package.htmlCabal file descriptionsStrictly speaking, we are conflating two concepts here: * Dynamically enabled (e.g. on a per-message basis) * Statically enabled (e.g. by configuration in the lsp-client) * Strictly speaking, this might also change dynamicallyBut there is no use to split it up into two different methods for now.hls-plugin-apiDescribes the configuration of a plugin. A plugin may be configurable as can be seen below: { "plugin-id": { "globalOn": true, "codeActionsOn": true, "codeLensOn": true, "config": { "property1": "foo" } } } globalOn,  codeActionsOn, and  codeLensOn etc. are called generic configs which can be inferred from handlers registered by the plugin. config1 is called custom config, which is defined using F.hls-plugin-api%Initial values for the generic confighls-plugin-apiWhether or not to generate  diagnosticsOn config. Diagnostics emit in arbitrary shake rules, so we can't know statically if the plugin produces diagnosticshls-plugin-apiCustom config.hls-plugin-apiAn existential wrapper of Fhls-plugin-api Unique identifier of the plugin.hls-plugin-apiPlugin handlers are called in priority order, higher priority firsthls-plugin-apiFile extension of the files the plugin is responsible for. The plugin is only allowed to handle files with these extensions. When writing handlers, etc. for this plugin it can be assumed that all handled files are of this type. The file extension must have a leading .hls-plugin-apiA PluginConfig is a generic configuration for a given HLS plugin. It provides a "big switch" to turn it on or off as a whole, as well as small switches per feature, and a slot for custom config. This provides a regular naming scheme for all plugin config.hls-plugin-apiWe (initially anyway) mirror the hie configuration, so that existing clients can simply switch executable and not have any nasty surprises. There will initially be surprises relating to config options being ignored though.hls-plugin-apiHooks for modifying the  at different times of the compilation process. Plugins can install a  via  in their .hls-plugin-api9Invoked immediately at the package level. Changes to the  made in  are guaranteed to be seen everywhere in the compilation pipeline.hls-plugin-apiInvoked just before the parsing step, and reset immediately afterwards.  allows plugins to enable language extensions only during parsing. for example, to let them enable certain pieces of syntax.hls-plugin-api+Smart constructor that deduplicates pluginshls-plugin-api3Lookup the plugin that exposes a particular commandhls-plugin-apiCheck whether the given plugin descriptor is responsible for the file with the given path. Compares the file extension of the file at the given path with the file extension the plugin is responsible for.hls-plugin-apiMake a handler for plugins. For how resolve works with this see Note [Resolve in PluginHandlers]hls-plugin-api-Make a handler for plugins with no extra datahls-plugin-apiSet up a plugin descriptor, initialized with default values. This plugin descriptor is prepared for haskell files, such as .hs .lhs .hs-bootand handlers will be enabled for files with the appropriate file extensions.hls-plugin-apiSet up a plugin descriptor, initialized with default values. This plugin descriptor is prepared for .cabal2 files and as such, will only respond / run when .cabal files are currently in scope.2Handles files with the following extensions: * .cabalhls-plugin-apiMake a handler for resolve methods. In here we take your provided ResolveFunction and turn it into a PluginHandlers. See Note [Resolve in PluginHandlers]hls-plugin-api&Lookup the current config for a pluginhls-plugin-apiChecks that a given plugin is both enabled and the specific feature is enabledhls-plugin-apiGet the operating system process id for the running server instance. This should be the same for the lifetime of the instance, and different from that of any other currently running instance.hls-plugin-apiDetermine whether this request should be routed to the plugin. Fails closed if we can't determine which plugin it should be routed to.hls-plugin-apiIDE Configurationhls-plugin-api Method type.hls-plugin-apiWhether a plugin is enabled might depend on the message parameters e.g. > specifies which file extensions a plugin is allowed to handlehls-plugin-apiContains meta information such as PluginId and which file types this plugin is able to handle.hls-plugin-api0Generic config description, expected to contain  configuration for this pluginhls-plugin-apiIs this plugin enabled and allowed to respond to the given request with the given parameters?z{|}~|}~z{ Safe-Inferred "%'1;Q5hls-plugin-apiTo execute the resolve provider as a command, we need to additionally store the URI that was provided to the original code action.hls-plugin-apiWhen provided with both a codeAction provider and an affiliated codeAction resolve provider, this function creates a handler that automatically uses your resolve provider to fill out you original codeAction if the client doesn't have codeAction resolve support. This means you don't have to check whether the client supports resolve and act accordingly in your own providers.hls-plugin-apiWhen provided with both a codeAction provider with a data field and a resolve provider, this function creates a handler that creates a command that uses your resolve if the client doesn't have code action resolve support. This means you don't have to check whether the client supports resolve and act accordingly in your own providers. see Note [Code action resolve fallback to commands] Also: This helper only works with workspace edits, not commands. Any command set either in the original code action or in the resolve will be ignored.hls-plugin-apiCompares two CodeActions and returns a list of fields that are not equalhls-plugin-apiChecks if the the client supports resolve for code action. We currently only check whether resolve for the edit field is supported, because that's the only one we care about at the moment. Safe-Inferred "(1?Rhls-plugin-apiGiven a DidChangeConfigurationNotification message, this function returns the parsed Config object if possible.hls-plugin-api Parse the . Since we need to fall back to default values if we do not find one in the input, we need the map of plugin-provided defaults, as in . Safe-Inferred "1[ hls-plugin-apiExtend to the line below and above to replace newline character.0normalize (Range (Position 5 5) (Position 5 10))#Range (Position 5 0) (Position 6 0)hls-plugin-apiExtend  to the start of the next line.5extendNextLine (Range (Position 5 5) (Position 5 10))#Range (Position 5 5) (Position 6 0)hls-plugin-apiExtend " to the start of the current line.6extendLineStart (Range (Position 5 5) (Position 5 10))$Range (Position 5 0) (Position 5 10)hls-plugin-apiExtend  to include the start of the first line and start of the next line of the last line.Caveat: It always extend the last line to the beginning of next line, even when the last position is at column 0. This is to keep the compatibility with the implementation of old function  extractRange.8extendToFullLines (Range (Position 5 5) (Position 5 10))#Range (Position 5 0) (Position 6 0)7extendToFullLines (Range (Position 5 5) (Position 7 2))#Range (Position 5 0) (Position 8 0)7extendToFullLines (Range (Position 5 5) (Position 7 0))#Range (Position 5 0) (Position 8 0)hls-plugin-api Generate a ! value from a pair of source Texthls-plugin-apiA pure version of  for testinghls-plugin-apiReturns the current client configuration. It is not wise to permanently cache the returned value of this function, as clients can at runtime change their configuration.hls-plugin-apiReturns the current plugin configuration. It is not wise to permanently cache the returned value of this function, as clients can change their configuration at runtime.hls-plugin-api>Returns the value of a property defined by the current plugin.hls-plugin-api*Extracts exact matching text in the range.hls-plugin-api*Gets the range that covers the entire texthls-plugin-apiUnescape printable escape sequences within double quotes. This is useful if you have to call  indirectly, and it escapes some characters which you would prefer to display as is.hls-plugin-apiParser for a string that contains double quotes. Returns unescaped string.  Safe-Inferred "%&()*1]hhls-plugin-apiGenerates a default ", but remains only effective itemshls-plugin-apiGenerates json schema used in haskell vscode extension Similar to 2 but simpler, since schema has a flatten structure  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[[\\]^_`abcdefghijklmnopqrstuvwxxyz{|}~         -hls-plugin-api-2.2.0.0-2axyaSlCOFs2LEHl2LaojpIde.Plugin.PropertiesIde.PluginUtils Ide.LoggerIde.Plugin.ErrorIde.Plugin.RangeMap Ide.TypesIde.Plugin.ResolveIde.Plugin.ConfigIde.Plugin.ConfigUtilsbase Data.Function&(lsp-types-2.0.2.0-5pNSiFGKhkt7TIYGwBRGRu$Language.LSP.Protocol.Types.LocationpositionInRange*prettyprinter-1.7.1-Fnq1Vt2JMTY81kvR0W9kdPPrettyprinter.Render.Text renderStrict LoggingColumn TimeColumnThreadIdColumnPriorityColumn DataColumnSourceLocColumnRecorderlogger_ WithPrioritypriority callStack_payloadLogger logPriorityPriorityDebugInfoWarningErrorlogError logWarninglogInfologDebug noLogginglogWithcmap cmapWithPriocmapIOcfiltermakeDefaultStderrRecorderwithFileRecordermakeDefaultHandleRecorder withBackloglspClientMessageRecorderlspClientLogRecordertoCologActionWithPrio$fMonoidLogger$fSemigroupLogger$fContravariantRecorder$fMonoidRecorder$fSemigroupRecorder$fFunctorWithPriority $fEqPriority$fShowPriority$fReadPriority $fOrdPriority$fEnumPriority$fBoundedPriority PluginErrorPluginInternalErrorPluginInvalidParamsPluginInvalidUserStatePluginRequestRefusedPluginRuleFailedPluginStaleResolve toErrorCode toPriority handleMaybe handleMaybeMgetNormalizedFilePathE$fPrettyPluginError HasProperty KeyNameProxy Properties SPropertyKeySNumberSIntegerSStringSBooleanSObjectSArraySEnum PropertyKeyMetaData EnumMetaData defaultValue description enumValuesenumDescriptionsToHsType PropertyTypeTNumberTIntegerTStringTBooleanTObjectTArrayTEnumemptyPropertiesusePropertyEither usePropertydefineNumberPropertydefineIntegerPropertydefineStringPropertydefineBooleanPropertydefineObjectPropertydefineArrayPropertydefineEnumProperty toDefaultJSONtoVSCodeExtensionSchema$fIsLabelsKeyNameProxyRangeMap unRangeMapfromList fromList' filterByRange$fNFDataRangeMap$fSemigroupRangeMap$fMonoidRangeMap$fFunctorRangeMap$fFoldableRangeMap$fTraversableRangeMap HasTracing traceWithSpanFallbackCodeActionParamsfallbackWorkspaceEditfallbackCommandFormattingHandlerFormattingMethodFormattingType FormatText FormatRangePluginIdResolveFunctionCommandFunction PluginCommand commandId commandDesc commandFunc CommandIdPluginMethodHandlerPluginNotificationHandlersPluginHandlersPluginNotificationHandler PluginHandlerIdeNotification IdeMethodPluginRequestMethodcombineResponses PluginMethod pluginEnabledConfigDescriptorconfigInitialGenericConfigconfigHasDiagnosticsconfigCustomConfig CustomConfigPluginDescriptorpluginIdpluginPriority pluginRulespluginCommandspluginHandlerspluginConfigDescriptorpluginNotificationHandlerspluginModifyDynflags pluginClipluginFileType PluginConfig plcGlobalOnplcCallHierarchyOnplcCodeActionsOn plcCodeLensOnplcDiagnosticsOn plcHoverOn plcSymbolsOnplcCompletionOn plcRenameOnplcSelectionRangeOnplcFoldingRangeOn plcConfig CheckParents NeverCheck CheckOnSave AlwaysCheckConfig checkParents checkProjectformattingProvidercabalFormattingProvidermaxCompletionsplugins IdeCommandDynFlagsModificationsdynFlagsModifyGlobaldynFlagsModifyParser IdePluginslookupCommandProvideripMapmkCustomConfigdefaultConfigDescriptormkPluginHandlermkPluginNotificationHandlerdefaultPluginPrioritydefaultPluginDescriptordefaultCabalPluginDescriptormkResolveHandlerconfigForPluginpluginEnabledConfigmkFormattingHandlers mkLspCommand mkLspCmdIdgetPid getProcessIDinstallSigUsr1Handler$fMonoidDynFlagsModifications $fSemigroupDynFlagsModifications$fShowIdeCommand$fToJSONPluginConfig$fDefaultPluginConfig$fIsStringCommandId$fIsStringPluginId$fDefaultConfig$fToJSONConfig$fHasTracingWorkspaceSymbol$fHasTracingInlayHint$fHasTracingDocumentLink$fHasTracingCompletionItem$fHasTracingCodeLens$fHasTracingCodeAction,$fHasTracingCallHierarchyOutgoingCallsParams,$fHasTracingCallHierarchyIncomingCallsParams!$fHasTracingWorkspaceSymbolParams$fHasTracingInitializedParams$fHasTracingInitializeParams($fHasTracingDidChangeConfigurationParams+$fHasTracingDidChangeWorkspaceFoldersParams'$fHasTracingDidChangeWatchedFilesParams $fHasTracingExecuteCommandParams$fHasTracingValue $fHasTracinga"$fMonoidPluginNotificationHandlers%$fSemigroupPluginNotificationHandlers$fMonoidPluginHandlers$fSemigroupPluginHandlers$fGCompareMethodIdeNotification$fGEqMethodIdeNotification$fGCompareMethodIdeMethod$fGEqMethodIdeMethod,$fPluginNotificationMethodMethod_Initialized$fPluginNotificationMethodMethod_WorkspaceDidChangeConfiguration$fPluginNotificationMethodMethod_WorkspaceDidChangeWorkspaceFolders?$fPluginNotificationMethodMethod_WorkspaceDidChangeWatchedFiles5$fPluginNotificationMethodMethod_TextDocumentDidClose4$fPluginNotificationMethodMethod_TextDocumentDidSave6$fPluginNotificationMethodMethod_TextDocumentDidChange4$fPluginNotificationMethodMethod_TextDocumentDidOpen,$fPluginMethodNotificationMethod_Initialized$fPluginMethodNotificationMethod_WorkspaceDidChangeConfiguration$fPluginMethodNotificationMethod_WorkspaceDidChangeWorkspaceFolders?$fPluginMethodNotificationMethod_WorkspaceDidChangeWatchedFiles5$fPluginMethodNotificationMethod_TextDocumentDidClose4$fPluginMethodNotificationMethod_TextDocumentDidSave6$fPluginMethodNotificationMethod_TextDocumentDidChange4$fPluginMethodNotificationMethod_TextDocumentDidOpen($fPluginRequestMethodMethod_CustomMethod6$fPluginRequestMethodMethod_CallHierarchyOutgoingCalls6$fPluginRequestMethodMethod_CallHierarchyIncomingCalls4$fPluginRequestMethodMethod_TextDocumentFoldingRange6$fPluginRequestMethodMethod_TextDocumentSelectionRange<$fPluginRequestMethodMethod_TextDocumentPrepareCallHierarchy7$fPluginRequestMethodMethod_TextDocumentRangeFormatting2$fPluginRequestMethodMethod_TextDocumentFormatting2$fPluginRequestMethodMethod_TextDocumentCompletion1$fPluginRequestMethodMethod_CompletionItemResolve6$fPluginRequestMethodMethod_TextDocumentDocumentSymbol-$fPluginRequestMethodMethod_TextDocumentHover.$fPluginRequestMethodMethod_TextDocumentRename+$fPluginRequestMethodMethod_CodeLensResolve0$fPluginRequestMethodMethod_TextDocumentCodeLens+$fPluginRequestMethodMethod_WorkspaceSymbol2$fPluginRequestMethodMethod_TextDocumentReferences9$fPluginRequestMethodMethod_TextDocumentDocumentHighlight6$fPluginRequestMethodMethod_TextDocumentTypeDefinition2$fPluginRequestMethodMethod_TextDocumentDefinition-$fPluginRequestMethodMethod_CodeActionResolve2$fPluginRequestMethodMethod_TextDocumentCodeAction($fPluginMethodRequestMethod_CustomMethod3$fPluginMethodRequestMethod_WorkspaceExecuteCommand6$fPluginMethodRequestMethod_CallHierarchyOutgoingCalls6$fPluginMethodRequestMethod_CallHierarchyIncomingCalls4$fPluginMethodRequestMethod_TextDocumentFoldingRange6$fPluginMethodRequestMethod_TextDocumentSelectionRange<$fPluginMethodRequestMethod_TextDocumentPrepareCallHierarchy7$fPluginMethodRequestMethod_TextDocumentRangeFormatting2$fPluginMethodRequestMethod_TextDocumentFormatting2$fPluginMethodRequestMethod_TextDocumentCompletion1$fPluginMethodRequestMethod_CompletionItemResolve6$fPluginMethodRequestMethod_TextDocumentDocumentSymbol-$fPluginMethodRequestMethod_TextDocumentHover.$fPluginMethodRequestMethod_TextDocumentRename+$fPluginMethodRequestMethod_CodeLensResolve0$fPluginMethodRequestMethod_TextDocumentCodeLens+$fPluginMethodRequestMethod_WorkspaceSymbol2$fPluginMethodRequestMethod_TextDocumentReferences9$fPluginMethodRequestMethod_TextDocumentDocumentHighlight6$fPluginMethodRequestMethod_TextDocumentTypeDefinition2$fPluginMethodRequestMethod_TextDocumentDefinition-$fPluginMethodRequestMethod_CodeActionResolve2$fPluginMethodRequestMethod_TextDocumentCodeAction$fMonoidIdePlugins$fSemigroupIdePlugins!$fGenericFallbackCodeActionParams $fToJSONFallbackCodeActionParams"$fFromJSONFallbackCodeActionParams $fShowConfig $fEqConfig$fGenericPluginResolveData$fShowPluginResolveData$fToJSONPluginResolveData$fFromJSONPluginResolveData$fShowPluginId$fReadPluginId $fEqPluginId $fOrdPluginId$fToJSONPluginId$fFromJSONPluginId$fHashablePluginId$fShowCommandId$fReadCommandId $fEqCommandId$fOrdCommandId$fShowPluginConfig$fEqPluginConfig$fEqCheckParents$fOrdCheckParents$fShowCheckParents$fGenericCheckParents$fFromJSONCheckParents$fToJSONCheckParentsmkCodeActionHandlerWithResolve!mkCodeActionWithResolveAndCommand $fPrettyLog$fFromJSONWithURI$fToJSONWithURI$fGenericWithURI $fShowWithURIgetConfigFromNotification parseConfig WithDeletionsIncludeDeletions SkipDeletions normalizeextendNextLineextendLineStartextendToFullLinesdiffTextmakeDiffTextEditmakeDiffTextEditAdditive diffText'pluginDescToIdePluginsidePluginsToPluginDescgetClientConfiggetPluginConfigusePropertyLspextractTextInRange fullRangesubRange allLspCmdIds' allLspCmdIdsunescape$fEqWithDeletionspluginsToDefaultConfigpluginsToVSCodeExtensionSchema GHC.MaybeNothingdefaultLoggingColumnsGHC.Base<>Prettyprinter.Internal LayoutOptionslayoutPageWidth PageWidth UnboundedAvailablePerLineSimpleDocStreamSFailSEmptySCharSTextSLineSAnnPopSAnnPush FusionDepthDeepShallowPrettypretty prettyListviaShow unsafeViaShowemptyDocnestlineline'softline softline'hardlinegroupflatAltalignhangindent encloseSeplisttupled<+> concatWithhsepvsepfillSepsephcatvcatfillCatcat punctuatecolumnnestingwidth pageWidthfill fillBreakpluralenclosesurroundannotate unAnnotate reAnnotatealterAnnotations unAnnotateS reAnnotateSalterAnnotationsSfuseremoveTrailingWhitespacedefaultLayoutOptions layoutPretty layoutSmart layoutCompactPrettyprinter.Symbols.Asciisquotesdquotesparensanglesbracketsbracessquotedquotelparenrparenlangleranglelbracketrbracketlbracerbracesemicoloncommaspacedotslash backslashequalspipeDocSomePropertyKeyWithMetaData,hw-fingertree-0.1.2.1-Jt8yOHT1a4A9G93GW2k2km(HaskellWorks.Data.IntervalMap.FingerTreeInterval-Language.LSP.Protocol.Internal.Types.PositionPosition*Language.LSP.Protocol.Internal.Types.RangeRangePluginResolveDataPluginNotificationMethod.ghcGHC.Driver.SessionDynFlagslookupPluginIdpluginResponsiblepluginResolverResponsibleWithURIdiffCodeActionssupportsCodeActionResolve parsePlugins2Language.LSP.Protocol.Internal.Types.WorkspaceEdit WorkspaceEditGHC.ShowshowescapedTextParser