mirror of
https://github.com/haskell/haskell-language-server.git
synced 2024-09-11 08:45:35 +03:00
* Support for 9.10 This includes supports for all plugins, other than formatters and hlint. We need ghc-exactprint and retrie release before merging this. * Remove indexed-traversable allow-newer * Fix couple of warnings * Fix flags job for hls-graph * foldl' exposed from Prelude since base 4.20 * Fix flags job for hls-plugin-api * Fix ghcide hover test * Fix flags job for hls-eval-plugin * unzip since 4.19 * More pedantic fixes * Don't CPP in tests, fix another test * Switch to ghc-exactprint and witherable from hackage * Fix all warnings in hls-refactor-plugin * Remove more no longer necessary allow newers * Fix all warnings in hls-gadp-plugin and hls-qualify-imported-names-plugin * Remove allow-newer for boring * Bump to lsp 2.6, remove more allow-newers * outline tests * disable simple plugin on 9.10 * Remove allow-newer for ghc-trace-events * fix appendConstraint * stylish * Remove commutative-semigroups and monoid-subclasses from allow-newer * Remove free from allow-newer * Fix 'type wilcard actions' tests * Remove hie-bios from allow-newer * Fix suggestNewDefinition tests * Revert "Fix suggestNewDefinition tests" This reverts commit |
||
---|---|---|
.. | ||
src/Ide/Plugin | ||
test | ||
qualify-imported-names-demo.gif | ||
README.md |
Qualify Imported Names
Summary
Rewrite imported names to be qualified.
Motivation
You've imported a number of modules, and have written a lot of code with unqualified names. You want to import a new module but you know there will be a number name clashes so you want to switch your current usage of names to be qualified.
It would be nice if you could change
import Blah
to
import Blah as Bloo
then magically qualify all the previous names imported from Blah
with Bloo
. After doing that you could then change
import Blah as Bloo
to
import qualified Blah as Bloo
and import your the new module using names from it without worry.
Well, now you can...
Usage
- Put cursor over the import declaration you want to qualify names from.
- Initiate a Code Action.
- Select
Qualify imported names
.
Features
- Names are qualified on a per-import declaration basis.
- Names are qualified by the imported module's alias if it has one, otherwise by the imported module's name.
- If the import declaration has an explicit import list then the plugin will qualify only names on the list.
- If the import declaration has an explicit hiding list then the plugin will qualify names from the imported module that are not on the list.
Future possibilities
- It may be possible to use the LSP rename functionality to ask for a name so that we don't have to do the
as Alias
dance.
Change log
1.0.0.1
- GHC 9.2.1 compatibility
1.0.0.0
- Released...