h& (      !"#$%&' Safe-Inferred" (hls-code-range-plugina group of imports)hls-code-range-pluginadjacent type signature and value definition are paired under a custom parent node*hls-code-range-pluginExtra arguments for + . It's expected to be used in a , context+hls-code-range-pluginBefore converting the HieAST to selection range, we need to run some passes on it. Each pass potentially modifies the AST to handle some special cases.+ combines the passes. Refer to - or . as a concrete example example.Adding another manipulation to the AST is simple, just implement a function of type `HieAST a -> Reader (PreProcessEnv a) (HieAST a)`, and append it to + with /.If it goes more complex, it may be more appropriate to split different manipulations to different modules.0hls-code-range-pluginCreate a custom node in 1. By "custom", we mean this node doesn't actually exist in the original 1 provided by GHC, but created to suite the needs of hls-code-range-plugin.-hls-code-range-pluginCombines adjacent import declarations under a new parent node, so that the user will have an extra step selecting the whole import area while expanding/shrinking the selection range..hls-code-range-pluginCombine type signature with variable definition under a new parent node, if the signature is placed right before the definition. This allows the user to have a step selecting both type signature and its accompanying definition.2hls-code-range-pluginMerge adjacent type signature and variable/function definition, if the type signature belongs to that variable or function.The implementation potentially has some corner cases not handled properly.3hls-code-range-pluginGiven the AST node of a type signature, tries to find the identifier of it.4hls-code-range-pluginDetermines if the given occurence of an identifier is a function/variable definition in the outer span5()*67+8 Safe-Inferred"'2;= hls-code-range-pluginCodeKind$ represents the kind of a code rangehls-code-range-plugin ordinary codehls-code-range-pluginthe group of importshls-code-range-plugin a commenthls-code-range-pluginA tree representing code ranges in a file. This can be useful for features like selection range and folding rangehls-code-range-pluginRange for current levelhls-code-range-pluginA vector of children, sorted by their ranges in ascending order. Children are guaranteed not to interleave, but some gaps may exist among them.9hls-code-range-plugin Construct a . A valid CodeRange will be returned in any case. If anything go wrong, a list of warnings will be returned as  hls-code-range-plugin#Remove interleaving of the list of s.hls-code-range-pluginRemove redundant nodes in  tree:hls-code-range-pluginHandle error in ; . Returns an << with no value and no diagnostics on error. (but writes log)   Safe-Inferred"%& &hls-code-range-pluginFind = in =. This can fail, if the given position is not covered by the .>hls-code-range-pluginLikes toCurrentPosition, but works on ?$%&%$&      !"#$% &'()*+,-./0123456789:;*<=>?@ABCDEFGHIFJK4hls-code-range-plugin-1.0.0.0-Hwsy2N5hjyYKdLXMmsj4nzIde.Plugin.CodeRange.RulesIde.Plugin.CodeRange"Ide.Plugin.CodeRange.ASTPreProcess CodeRangeKindCodeKindRegionCodeKindImportsCodeKindComment CodeRange_codeRange_range_codeRange_children_codeRange_kindLogLogShakeLogNoASTLogFoundInterleaving $fPrettyLog $fShowLog$fShowCodeRange$fGenericCodeRange$fNFDataCodeRange$fShowCodeRangeKind$fGenericCodeRangeKind$fNFDataCodeRangeKind GetCodeRangecodeRange_childrencodeRange_kindcodeRange_rangeremoveInterleavingsimplify codeRangeRule$fOrdCodeRange $fEqCodeRange$fNFDataGetCodeRange$fHashableGetCodeRange$fEqGetCodeRange$fShowGetCodeRange$fGenericGetCodeRange descriptor findPositionCustomNodeImportsGroup%CustomNodeAdjacentSignatureDefinition PreProcessEnv preProcessASTtransformers-0.5.6.2Control.Monad.Trans.ReaderReader mergeImportsmergeSignatureWithDefinitionbaseGHC.Base>>=createCustomNodeghcGHC.Iface.Ext.TypesHieASTmergeAdjacentSigDefidentifierForTypeSig isIdentADefCustomNodeTypepreProcessEnvRefMap isCustomNodebuildCodeRange handleError(hls-graph-1.8.0.0-Ayx45T7c1G63KY0lnbTRvL$Development.IDE.Graph.Internal.TypesAction%ghcide-1.8.0.0-3anX8zFMdvVEmj1p2QeNMq!Development.IDE.Types.Diagnostics IdeResult(lsp-types-1.6.0.0-CwkG0vqR0ei5wn5TdsryfPLanguage.LSP.Types.LocationPositiontoCurrentSelectionRange!Language.LSP.Types.SelectionRangeSelectionRange