hls-qualify-imported-names-plugin 1.0.1.0 → 1.0.2.0
raw patch · 3 files changed
+19/−15 lines, 3 filesdep ~ghcidedep ~hls-plugin-apidep ~hls-test-utilsnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghcide, hls-plugin-api, hls-test-utils
API changes (from Hackage documentation)
Files
- hls-qualify-imported-names-plugin.cabal +8/−4
- src/Ide/Plugin/QualifyImportedNames.hs +4/−7
- test/Main.hs +7/−4
hls-qualify-imported-names-plugin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: hls-qualify-imported-names-plugin-version: 1.0.1.0+version: 1.0.2.0 synopsis: A Haskell Language Server plugin that qualifies imported names description: Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>@@ -17,6 +17,10 @@ test/data/*.hs test/data/*.yaml +source-repository head+ type: git+ location: https://github.com/haskell/haskell-language-server.git+ library exposed-modules: Ide.Plugin.QualifyImportedNames hs-source-dirs: src@@ -26,9 +30,9 @@ , containers , deepseq , ghc- , ghcide ^>=1.6+ , ghcide ^>=1.6 || ^>=1.7 || ^>= 1.8 || ^>= 1.9 , hls-graph- , hls-plugin-api ^>=1.3+ , hls-plugin-api ^>=1.3 || ^>=1.4 || ^>= 1.5 || ^>= 1.6 , lsp , text , unordered-containers@@ -51,4 +55,4 @@ , text , filepath , hls-qualify-imported-names-plugin- , hls-test-utils ^>=1.2+ , hls-test-utils ^>= 1.5
src/Ide/Plugin/QualifyImportedNames.hs view
@@ -18,9 +18,10 @@ import Data.List (sortOn) import qualified Data.List as List import qualified Data.Map.Strict as Map-import Data.Maybe (mapMaybe)+import Data.Maybe (fromMaybe, mapMaybe) import Data.Text (Text) import qualified Data.Text as Text+import Development.IDE (spanContainsRange) import Development.IDE.Core.RuleTypes (GetFileContents (GetFileContents), GetHieAst (GetHieAst), HieAstResult (HAR, refMap),@@ -87,16 +88,12 @@ ] } -isRangeWithinSrcSpan :: Range -> SrcSpan -> Bool-isRangeWithinSrcSpan (Range start end) srcSpan =- isInsideSrcSpan start srcSpan && isInsideSrcSpan end srcSpan- findLImportDeclAt :: Range -> ParsedModule -> Maybe (LImportDecl GhcPs) findLImportDeclAt range parsedModule | ParsedModule {..} <- parsedModule , L _ hsModule <- pm_parsed_source , locatedImportDecls <- hsmodImports hsModule =- find (\ (L (locA -> srcSpan) _) -> isRangeWithinSrcSpan range srcSpan) locatedImportDecls+ find (\ (L (locA -> srcSpan) _) -> fromMaybe False $ srcSpan `spanContainsRange` range) locatedImportDecls makeCodeActions :: Uri -> [TextEdit] -> [a |? CodeAction] makeCodeActions uri textEdits = [InR CodeAction {..} | not (null textEdits)]@@ -132,7 +129,7 @@ } isRangeWithinImportedBy :: Range -> ImportedBy -> Bool-isRangeWithinImportedBy range (ImportedBy _ srcSpan) = isRangeWithinSrcSpan range srcSpan+isRangeWithinImportedBy range (ImportedBy _ srcSpan) = fromMaybe False $ spanContainsRange srcSpan range globalRdrEnvToNameToImportedByMap :: GlobalRdrEnv -> NameEnv [ImportedBy] globalRdrEnvToNameToImportedByMap =
test/Main.hs view
@@ -15,6 +15,7 @@ Command (Command), IdeState, MonadIO (liftIO), PluginDescriptor,+ PluginTestDescriptor, Position (Position), Range (Range), Session, TestName, TestTree,@@ -23,8 +24,10 @@ defaultTestRunner, executeCodeAction, getCodeActions,- goldenWithHaskellDoc, openDoc,- rename, runSessionWithServer,+ goldenWithHaskellDoc,+ mkPluginTestDescriptor',+ openDoc, rename,+ runSessionWithServer, testCase, testGroup, type (|?) (InR), (@?=)) @@ -126,8 +129,8 @@ testDataDir :: String testDataDir = "test" </> "data" -pluginDescriptor :: PluginDescriptor IdeState-pluginDescriptor = QualifyImportedNames.descriptor "qualifyImportedNames"+pluginDescriptor :: PluginTestDescriptor ()+pluginDescriptor = mkPluginTestDescriptor' QualifyImportedNames.descriptor "qualifyImportedNames" getCodeActionTitle :: (Command |? CodeAction) -> Maybe Text getCodeActionTitle commandOrCodeAction