h&KJF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi  Safe-Inferred"%&'(1;?   Safe-Inferred"%&'(1;? hls-refactor-pluginShow a GHC syntax tree in HTML.   Safe-Inferred!"%&'()*1;?hls-refactor-plugin Construct a ", replacing the node at the given j with the given  Located ast6. The node at that position must already be a  Located ast, or this is a no-op.hls-refactor-pluginA transformation for grafting source trees together. Use the semigroup instance to combine s, and run them via .hls-refactor-pluginGet the latest version of the annotated parse source with comments.hls-refactor-plugin Convert a  into a k.hls-refactor-plugin Convert a  into a k.lhls-refactor-pluginReturns whether or not this node requires its immediate children to have be parenthesized and have a leading space.9A more natural type for this function would be to return  (Bool, Bool), but we use m! instead for its monoid instance.nhls-refactor-plugin Construct a ", replacing the node at the given j with the given  Located ast.. The node at that position must already be a  Located ast, or this is a no-op.ohls-refactor-pluginLike , but specialized to p>, and intelligently inserts parentheses if they're necessary."hls-refactor-pluginRun the given transformation only on the smallest node in the tree that contains the j.#hls-refactor-pluginRun the given transformation only on the largest node in the tree that contains the j.%hls-refactor-pluginReplace the smallest declaration whose SrcSpan satisfies the given condition with a new list of declarations.For example, if you would like to move a where-clause-defined variable to the same level as its parent HsDecl, you could use this function.>When matching declaration is found in the sub-declarations of a), `Just r` is also returned with the new a$. If not declaration matched, then q is returned.&hls-refactor-pluginModify the type signature for the given IdP. This function handles splitting a multi-sig SigD into multiple SigD if the type signature is changed.+For example, update the type signature for foo from r to s:foo :: Int + foo :: Bool,foo, bar :: Int + bar :: Int + foo :: Bool6foo, bar, baz :: Int + bar, baz :: Int + foo :: Boolthls-refactor-plugin1Apply a transformation to the decls contained in t(hls-refactor-plugin"Modify each LMatch in a MatchGroup)hls-refactor-plugin&Modify the each LMatch in a MatchGroup,hls-refactor-plugin Given an LHSExpr, compute its exactprint annotations. Note that this function will throw away any existing annotations (and format)-hls-refactor-plugin Given an u%, compute its exactprint annotations.vhls-refactor-pluginPrint out something w.xhls-refactor-plugin1Put parentheses around an expression if required..hls-refactor-pluginEquality on SrcSpan's. Ignores the (Maybe BufSpan) field of SrcSpan's.yhls-refactor-pluginEquality on SrcSpan's. Ignores the (Maybe BufSpan) field of SrcSpan's.lhls-refactor-plugin(Needs parens, needs space)nhls-refactor-pluginDo we need to insert a space before this grafting? In do blocks, the answer is no, or we will break layout. But in function applications, the answer is yes, or the function call won't get its argument. Yikes!9More often the answer is yes, so when in doubt, use that."hls-refactor-pluginThe type of nodes we'd like to consider when finding the smallest.#hls-refactor-pluginThe type of nodes we'd like to consider when finding the largest./   !"#$%&'()*+,-./012345/$+,-! "#*%()&'4/23.015   Safe-Inferred"%&'(1;?|zhls-refactor-plugin"Add position indexing to a String. indexedByPositionStartingFrom (0,0) "hey\n ho" D [ ((0,0),'h') , ((0,1),'e') , ((0,2),'y') , ((0,3),'\n') , ((1,0),' ') , ((1,1),'h') , ((1,2),'o') ]{hls-refactor-plugin"Add position indexing to a String. indexedByPosition = indexedByPositionStartingFrom (Position 0 0)|hls-refactor-pluginReturns a tuple (before, contents, after) if the range is present. The range is present only if both its start and end positions are present}hls-refactor-plugin?Strips out all the positions included in the range. Returns q if the start or end of the range are not included in the input.~hls-refactor-pluginReturns the smallest possible set of disjoint ranges that is equivalent to the input. Assumes input ranges are sorted on the start positions.hls-refactor-pluginReturns a sorted list of ranges with extended selections including preceding or trailing commas  a, |b|, c ===> a|, b|, c a, b, |c| ===> a, b|, c| a, |b|, |c| ===> a|, b||, c| If  acceptNoComma+ is enabled, additional ranges are returned 0 |a| ===> |a| |a|, |b| ===> |a,| |b| z{~ Safe-Inferred"%&'(1;?@\hls-refactor-plugin Prints an w; value to stderr and to an HTML file for further inspectionZ[\Z[\ Safe-Inferred!"%&'()*1;?hls-refactor-plugin Construct a ", replacing the node at the given j with the given ast.hls-refactor-plugin Convert a  into a list of '[TextEdit]'.hls-refactor-plugin Convert a  into a khls-refactor-pluginAppend a constraint at the end of a type context. If no context is present, a new one will be created.hls-refactor-pluginAdd an identifier or a data type to import list. Expects a Delta ASTextendImportTopLevel "foo" AST:import A --> Error import A (foo) --> Error import A (bar) --> import A (bar, foo)hls-refactor-plugin0Add an identifier with its parent to import listextendImportViaParent Bar Cons AST:import A --> Error import A (Bar(..)) --> Error import A (Bar(Cons)) --> Error import A () --> import A (Bar(Cons)) import A (Foo, Bar) --> import A (Foo, Bar(Cons)) import A (Foo, Bar()) --> import A (Foo, Bar(Cons))extendImportViaParent Bar ".." AST: import A () --> import A (Bar(..)) import A (Foo, Bar) -> import A (Foo, Bar(..)) import A (Foo, Bar()) -> import A (Foo, Bar(..))hls-refactor-plugin%Hide a symbol from import declarationhls-refactor-pluginThe j that we want to rewritehls-refactor-pluginThe ast that we want to grafthls-refactor-plugin!Predicate: Which context to drop.hls-refactor-pluginThe new constraint to appendhls-refactor-pluginThe type signature where the constraint is to be inserted, also assuming annotatedhls-refactor-pluginrenderedhls-refactor-plugin'parent (already parenthesized if needs)hls-refactor-pluginrendered childhls-refactor-plugin Initial listhls-refactor-pluginAdditional item  Safe-Inferred"%&'(1;?hls-refactor-pluginThere's no concurrency in each provider, so we don't need to be thread-safe herehls-refactor-pluginthis instance returns a delta AST, useful for exactprint transforms   Safe-Inferred"%&'(1;? hls-refactor-pluginReturns Just (the submatches) for the first capture, or Nothing.hls-refactor-plugin combined with   Safe-Inferred"%&'(1;?!  Safe-Inferred"%&'(1;?" hls-refactor-plugin getIndentedGroupsBy (" H" `isPrefixOf`) [" H1", " l1", " l2", " H2", " l3"] = [[" H1", " l1", " l2"], [" H2", " l3"]]  Safe-Inferred"%&'(1;?)hls-refactor-pluginExtract the type and surround it in parentheses except in obviously safe cases.Inferring when parentheses are actually needed around the type signature would require understanding both the precedence of the context of the hole and of the signature itself. Inserting them (almost) unconditionally is ugly but safe.hls-refactor-plugin)Detect whether user wrote something like foo :: _ or foo :: (_, Int). The former is considered toplevel case for which the function returns 8, the latter is not toplevel and the returned value is .When type hole is at toplevel then there@s a line starting with "@ In the type signature" which ends with " :: _" like in the following snippet:sourcelibraryLanguageHaskellBrittany/Internal.hs:131:13: error: @ Found type wildcard @_@ standing for @HsDecl GhcPs@ To use the inferred type, enable PartialTypeSignatures @ In the type signature: decl :: _ In an equation for @splitAnnots@: splitAnnots m@HsModule {hsmodAnn, hsmodDecls} = undefined where ann :: SrcSpanAnnA decl :: _ L ann decl = head hsmodDecls @ Relevant bindings include [REDACTED]When type hole is not at toplevel there@s a stack of where the hole was located ending with "In the type signature":sourcelibraryLanguageHaskellBrittany/Internal.hs:130:20: error: @ Found type wildcard @_@ standing for @GhcPs@ To use the inferred type, enable PartialTypeSignatures @ In the first argument of @HsDecl@, namely @_@ In the type @HsDecl _@ In the type signature: decl :: HsDecl _ @ Relevant bindings include [REDACTED]  Safe-Inferred"%&'(1;?.*hls-refactor-plugin,Possible import styles for qualified importshls-refactor-pluginPossible import styles for an . The first Text parameter corresponds to the  field of the .hls-refactor-pluginImport a top-level export from a module, e.g., a function, a type, a class.  import M (?)Some exports that have a parent, like a type-class method or an associated type/data family, can still be imported as a top-level import.Note that this is not the case for constructors, they must always be imported as part of their parent data type.hls-refactor-pluginImport an export (first parameter) through its parent (second parameter).import M (P(?))P and ? can be a data type and a constructor, a class and a method, a class and an associated type/data family, etc.hls-refactor-plugin1Import all constructors for a specific data type.import M (P(..))P can be a data type or a class.hls-refactor-pluginUsed for adding new importshls-refactor-pluginUsed for extending import lists  Safe-Inferred"%&'()*1;?Fhls-refactor-pluginGenerate code actions.bhls-refactor-plugin=Add the ability for a plugin to call GetAnnotatedParsedSourcehls-refactor-pluginGHC strips out backticks in case of infix functions as well as single quote in case of quoted name when using TemplateHaskellQuotes. Which is not desired.For example: 1. File.hs:52:41: error: * Variable not in scope: suggestAcion :: Maybe T.Text -> Range -> Range * Perhaps you meant @suggestAction@ (line 83) File.hs:94:37: error: Not in scope: @T.isPrfixOf@ Perhaps you meant one of these: @T.isPrefixOf@ (imported from Data.Text), @T.isInfixOf@ (imported from Data.Text), @T.isSuffixOf@ (imported from Data.Text) Module @Data.Text@ does not export @isPrfixOf@. action: `suggestAcion` will be renamed to `suggestAction` keeping back ticks around the function  import Language.Haskell.TH (Name) foo :: Name foo = 'bread File.hs:8:7: error: Not in scope: @bread@ * Perhaps you meant one of these: @break@ (imported from Prelude), @read@ (imported from Prelude) * In the Template Haskell quotation 'bread action: 'bread will be renamed to 'break keeping single quote on beginning of namehls-refactor-plugin.Suggests disambiguation for ambiguous symbols.hls-refactor-pluginSuggests a constraint for a declaration for which a constraint is missing.hls-refactor-pluginSuggests a constraint for an instance declaration for which a constraint is missing.hls-refactor-pluginSuggests a constraint for a type signature with any number of existing constraints.hls-refactor-pluginSuggests the removal of a redundant constraint for a type signature.hls-refactor-pluginExtracts qualifier of the symbol from the missing symbol. Input must be either a plain qualified variable or possibly-parenthesized qualified binary operator (though no strict checking is done for symbol part). This is only needed to alleviate the issue #3473.FIXME: We can delete this after dropping the support for GHC 9.44extractQualifiedModuleNameFromMissingName "P.lookup"Just "P"9extractQualifiedModuleNameFromMissingName "P3_'.lookup"Just "\931P3_'"extractQualifiedModuleNameFromMissingName "ModuleA.Gre_ek.good"Just "ModuleA.Gre_ek\963"?extractQualifiedModuleNameFromMissingName "(ModuleA.Gre_ek.+)"Just "ModuleA.Gre_ek\963"extractQualifiedModuleNameFromMissingName "(ModuleA.Gre_ek..|.)"Just "ModuleA.Gre_ek\963"2extractQualifiedModuleNameFromMissingName "A.B.|." Just "A.B"hls-refactor-pluginImplements a lexicographic order for import suggestions that ignores the code action. First it compares the importance score in DESCENDING order. If the scores are equal it compares the import names alphabetical order.TODO: this should be a correct Ord instance but CodeActionKind does not implement a Ord which would lead to an unlawful Ord instance.hls-refactor-pluginFinds the next valid position for inserting a new import declaration * If the file already has existing imports it will be inserted under the last of these, it is assumed that the existing last import declaration is in a valid position * If the file does not have existing imports, but has a (module ... where) declaration, the new import will be inserted directly under this declaration (accounting for explicit exports) * If the file has neither existing imports nor a module declaration, the import will be inserted at line zero if there are no pragmas, * otherwise inserted one line after the last file-header pragmahls-refactor-pluginFind the position for a new import when there isn't an existing one. * If there is a module declaration, a new import should be inserted under the module declaration (including exports list) * Otherwise, a new import should be inserted after any file-header pragma.hls-refactor-plugin-find line number right after module ... wherehls-refactor-pluginFind the position one after the last file-header pragma Defaults to zero if there are no pragmas in filehls-refactor-plugin7Construct an import declaration with at most one symbolhls-refactor-pluginIf a module has been imported qualified, and we want to ues the same qualifier for other modules which haven't been imported,  won't work. Thus we need extract the qualifier from the imported one.For example, we write f = T.putStrLn, where putStrLn comes from Data.Text.IO, with the following import(s): 1. import qualified Data.Text as T.Module @Data.Text@ does not export @putStrLn@. import qualified Data.Text as T import qualified Data.Functor as T:Neither @Data.Functor@ nor @Data.Text@ exports @putStrLn@. import qualified Data.Text as T import qualified Data.Functor as T import qualified Data.Function as TNeither @Data.Function@, @Data.Functor@ nor @Data.Text@ exports @putStrLn@.hls-refactor-pluginIf a range takes up a whole line (it begins at the start of the line and there's only whitespace between the end of the range and the next newline), extend the range to take up the whole line.hls-refactor-pluginReturns [start .. end[hls-refactor-plugin9Returns the ranges for a binding in an import declarationhls-refactor-plugin combined with hls-refactor-plugin=Returns Just (all matches) for the first capture, or Nothing.hls-refactor-plugin Returns the first match if foundhls-refactor-pluginParses tuples like (@Data.Map@, (app/ModuleB.hs:2:1-18)) and | return (Data.Map, app/ModuleB.hs:2:1-18)hls-refactor-pluginProcess a list of (module_name, filename:src_span) values | Eg. [(Data.Map, app-ModuleB.hs:2:1-18), (Data.HashMap.Strict, appModuleB.hs:3:1-29)]hls-refactor-pluginParenthesised?hls-refactor-plugin module namehls-refactor-plugin the symbolhls-refactor-pluginqualified name and stylehls-refactor-plugin&the symbol is to be imported or hidden]^_`abcb]^_`ac !""#$$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~yyy                         2hls-refactor-plugin-2.2.0.0-2zZhBmetkVQ29P9abSNDVvDevelopment.IDE.GHC.ExactPrint%Development.IDE.GHC.Compat.ExactPrintDevelopment.IDE.GHC.Dump&Development.IDE.Plugin.CodeAction.Util!Development.IDE.Plugin.CodeAction1Development.IDE.Plugin.CodeAction.PositionIndexed,Development.IDE.Plugin.CodeAction.ExactPrint&Development.IDE.Plugin.CodeAction.Args)Development.IDE.Plugin.Plugins.Diagnostic*Development.IDE.Plugin.Plugins.AddArgument'Development.IDE.Plugin.Plugins.FillHole/Development.IDE.Plugin.Plugins.FillTypeWildcard*Development.IDE.Plugin.Plugins.ImportUtils+ghc-exactprint-1.5.0-4sCGWdFdGcA7x86F1yM5sN)Language.Haskell.GHC.ExactPrint.Transform TransformT*Language.Haskell.GHC.ExactPrint.ExactPrint makeDeltaAst exactPrintexactsetAnnotationAnchorgetAnnotationEntry ExactPrint#retrie-1.2.2-18EhD3UZxthJjwBz8RvV4RRetrie.ExactPrint.Annotated Annotated$sel:astA:Annotated$sel:annsA:AnnotatedshowAstDataHtml ASTElementparseASTmaybeParensASTgraft ExceptStringT"$sel:runExceptString:ExceptStringTGraft$sel:runGraft:GraftGetAnnotatedParsedSourceLogLogShakesetPrecedingLinesgetAnnotatedParsedSourceRuleannotateParsedSource hoistGraft transform transformMgraftExprWithM graftWithMgenericGraftWithSmallestMgenericGraftWithLargestM graftDeclsmodifySmallestDeclWithMmodifySigWithM genAnchor1modifyMgMatchesTmodifyMgMatchesT'graftSmallestDeclsWithMgraftDeclsWithMannotate annotateDecl eqSrcSpanaddParensToCtxteplepAnn modifyAnns removeComma addParensremoveTrailingComma$fNFDataAnnotated$fShowAnnotated $fPrettyLog $fNFDataGetAnnotatedParsedSource"$fHashableGetAnnotatedParsedSource $fMonoidGraft$fSemigroupGraft$fMonadFailExceptStringT$fASTElementNameAnnRdrName!$fASTElementAnnListItemImportDecl$fASTElementAnnListItemHsDecl$fASTElementAnnListItemHsType$fASTElementAnnListItemPat$fASTElementAnnListItemHsExpr$fMonadTransExceptStringT$fMonadExceptStringT$fFunctorExceptStringT$fApplicativeExceptStringT$fAlternativeExceptStringT$fFoldableExceptStringT$fContravariantExceptStringT$fMonadIOExceptStringT$fEq1ExceptStringT$fOrd1ExceptStringT$fShow1ExceptStringT$fRead1ExceptStringT$fMonadZipExceptStringT$fMonadPlusExceptStringT$fEqExceptStringT$fOrdExceptStringT$fShowExceptStringT$fReadExceptStringT$fEqGetAnnotatedParsedSource$fShowGetAnnotatedParsedSource!$fGenericGetAnnotatedParsedSource $fShowLog timestampdebugASTtraceAstiePluginDescriptortypeSigsPluginDescriptorbindingsPluginDescriptorfillHolePluginDescriptorextendImportPluginDescriptormkExactprintPluginDescriptormatchRegExMultipleImports$fShowNotInScope$fEqImportSuggestion$fShowNewImport $fEqNewImport$fOrdNewImport $fEqExportsAsghcGHC.Types.SrcLocSrcSpan(lsp-types-2.0.2.0-5pNSiFGKhkt7TIYGwBRGRu2Language.LSP.Protocol.Internal.Types.WorkspaceEdit WorkspaceEditneedsParensSpacebaseData.Semigroup.InternalAllgraft' graftExprLanguage.Haskell.Syntax.ExprLHsExpr GHC.MaybeNothingghc-prim GHC.TypesIntBool modifyDeclsT'Language.Haskell.Syntax.DeclsLHsDeclrenderGHC.Utils.Outputable Outputable parenthesize eqSrcSpanAindexedByPositionStartingFromindexedByPosition unconsRange stripRange mergeRanges!extendAllToIncludeCommaIfPossiblePositionIndexedStringPositionIndexed(extendToIncludePreviousNewlineIfPossibleRewrite rewriteToEditrewriteToWEditappendConstraintextendImportTopLevelextendImportViaParent hideSymbolremoveConstraintaddCommaInImportList liftParseAST extendImportwildCardSymbolonceIO$fToCodeActionFUN20 ToCodeAction toCodeAction ToTextEdit toTextEditGhcideCodeActionGhcideCodeActionResultCodeActionPreferredCodeActionTitlemkCAmkGhcideCAPluginmkGhcideCAsPluginwrap matchRegexmatchRegexUnifySpaces unifySpacesmatchFoundHolematchFoundHoleIncludeUnderscorematchVariableNotInScopeplugingetIndentedGroupsBysuggestFillHoleextractWildCardTypeSignature errorMessageRefersToToplevelHoleTrueFalsesuggestFillTypeWildcardQualifiedImportStyle ImportStyle%ghcide-2.2.0.0-CAHHCZmZzgjIO39NEhvEDSDevelopment.IDE.Types.Exports IdentInforenderedImportTopLevelImportViaParentImportAllConstructorsrenderImportStyle unImportStyleQualifiedImportPostfixQualifiedImportPrefix importStylesquickFixImportKind'quickFixImportKindqualifiedImportStyle codeActionsuggestReplaceIdentifiersuggestImportDisambiguationsuggestConstraintsuggestInstanceConstraintsuggestFunctionConstraintremoveRedundantConstraints)extractQualifiedModuleNameFromMissingNamesimpleCompareImportSuggestionnewImportInsertRangefindPositionNoImportsfindPositionAfterModuleNamefindNextPragmaPosition newImportextractDoesNotExportModuleNameextractQualifiedModuleNameextendToWholeLineIfPossible textInRangerangesForBindingImportallMatchRegexUnifySpaces allMatchRegexregexSingleMatch regExPair regExImports ToQualified