h&:6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc 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 d 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 e.hls-refactor-plugin Convert a  into a e.fhls-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 g! instead for its monoid instance.hhls-refactor-plugin Construct a ", replacing the node at the given d with the given  Located ast.. The node at that position must already be a  Located ast, or this is a no-op.ihls-refactor-pluginLike , but specialized to j>, 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 d."hls-refactor-pluginRun the given transformation only on the largest node in the tree that contains the d.&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 k%, compute its exactprint annotations.lhls-refactor-pluginPrint out something m.nhls-refactor-plugin1Put parentheses around an expression if required.(hls-refactor-pluginEquality on SrcSpan's. Ignores the (Maybe BufSpan) field of SrcSpan's.ohls-refactor-pluginEquality on SrcSpan's. Ignores the (Maybe BufSpan) field of SrcSpan's.fhls-refactor-plugin(Needs parens, needs space)hhls-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.)   !"#$%&'()*+,-./)#%&' !"$.),-(*+/   Safe-Inferred"%&'(1;?8phls-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') ]qhls-refactor-plugin"Add position indexing to a String. indexedByPosition = indexedByPositionStartingFrom (Position 0 0)rhls-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 presentshls-refactor-plugin?Strips out all the positions included in the range. Returns t if the start or end of the range are not included in the input.uhls-refactor-pluginReturns the smallest possible set of disjoint ranges that is equivalent to the input. Assumes input ranges are sorted on the start positions.vhls-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| wxpquvy Safe-Inferred"%&'(1;?Vhls-refactor-plugin Prints an m; value to stderr and to an HTML file for further inspectionTUVTUV Safe-Inferred!"%&'()*1;?=zhls-refactor-plugin Construct a z", replacing the node at the given d with the given ast.{hls-refactor-plugin Convert a z into a list of '[TextEdit]'.|hls-refactor-plugin Convert a z into a e}hls-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 d 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 annotated~hls-refactor-pluginrenderedhls-refactor-plugin'parent (already parenthesized if needs)hls-refactor-pluginrendered childhls-refactor-plugin Initial listhls-refactor-pluginAdditionnal item z{|} Safe-Inferred"%&'(1;?mhls-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;?6 hls-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-pluginGenerate code actions.\hls-refactor-plugin=Add the ability for a plugin to call GetAnnotatedParsedSourcehls-refactor-plugin getIndentedGroupsBy (" H" `isPrefixOf`) [" H1", " l1", " l2", " H2", " l3"] = [[" H1", " l1", " l2"], [" H2", " l3"]]hls-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-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-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]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 combined with hls-refactor-pluginReturns Just (the submatches) for the first capture, or Nothing.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-pluginUsed for adding new importshls-refactor-pluginUsed for extending import listshls-refactor-pluginParenthesised?hls-refactor-plugin module namehls-refactor-plugin the symbolhls-refactor-pluginqualified namehls-refactor-plugin&the symbol is to be imported or hiddenWXYZ[\]\WXYZ[]       !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxynz{n|}~nu2hls-refactor-plugin-1.0.0.0-83rpkRvTtZN3zY1QFuscVBDevelopment.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+ghc-exactprint-1.5.0-2rh7nRGGIFy3YcP9wY0Ds3)Language.Haskell.GHC.ExactPrint.Transform TransformT*Language.Haskell.GHC.ExactPrint.ExactPrint makeDeltaAst exactPrintexactsetAnnotationAnchorgetAnnotationEntry ExactPrint%retrie-1.2.0.1-DxZUJ9KQlnU5nTAJygF3NiRetrie.ExactPrint.Annotated Annotated$sel:astA:Annotated$sel:annsA:AnnotatedshowAstDataHtml ASTElementparseASTmaybeParensASTgraft ExceptStringT"$sel:runExceptString:ExceptStringTGraft$sel:runGraft:GraftGetAnnotatedParsedSourceLogLogShakegetAnnotatedParsedSourceRuleannotateParsedSource hoistGraft transform transformMgraftExprWithM graftWithMgenericGraftWithSmallestMgenericGraftWithLargestM graftDeclsgraftSmallestDeclsWithMgraftDeclsWithMannotate 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$fShowImportStyle$fShowNotInScope$fShowNewImport $fEqNewImport$fOrdNewImport $fEqExportsAsghcGHC.Types.SrcLocSrcSpan(lsp-types-1.6.0.0-CwkG0vqR0ei5wn5TdsryfP Language.LSP.Types.WorkspaceEdit WorkspaceEditneedsParensSpacebaseData.Semigroup.InternalAllgraft' graftExprLanguage.Haskell.Syntax.ExprLHsExprLanguage.Haskell.Syntax.DeclsLHsDeclrenderGHC.Utils.Outputable Outputable parenthesize eqSrcSpanAindexedByPositionStartingFromindexedByPosition unconsRange stripRange GHC.MaybeNothing mergeRanges!extendAllToIncludeCommaIfPossiblePositionIndexedStringPositionIndexed(extendToIncludePreviousNewlineIfPossibleRewrite rewriteToEditrewriteToWEditappendConstraintextendImportTopLevelextendImportViaParent hideSymbolremoveConstraintaddCommaInImportList liftParseAST extendImportwildCardSymbolonceIO$fToCodeActionFUN20 ToCodeAction toCodeAction ToTextEdit toTextEditGhcideCodeActionGhcideCodeActionResultCodeActionPreferredCodeActionTitlemkCAmkGhcideCAPluginmkGhcideCAsPluginwrap ImportStyle%ghcide-1.8.0.0-FlG0Epfklh35uo6S29sXyCDevelopment.IDE.Types.Exports IdentInforenderedImportTopLevelImportViaParentImportAllConstructors codeActiongetIndentedGroupsBysuggestImportDisambiguationsuggestConstraintsuggestInstanceConstraintsuggestFunctionConstraintremoveRedundantConstraintsnewImportInsertRangefindPositionNoImportsfindPositionAfterModuleNamefindNextPragmaPosition newImportextractDoesNotExportModuleNameextractQualifiedModuleNameextractWildCardTypeSignature errorMessageRefersToToplevelHoleghc-prim GHC.TypesTrueFalseextendToWholeLineIfPossible textInRangerangesForBindingImportmatchRegexUnifySpaces matchRegex unifySpacesallMatchRegexUnifySpaces allMatchRegexregexSingleMatch regExPair regExImportsrenderImportStyle unImportStyle ToQualified