MyNixOS website logo
Description

A Haskell Language Server plugin that qualifies imported names.

Qualify Imported Names

Qualify Imported Names Demo

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

  1. Put cursor over the import declaration you want to qualify names from.
  2. Initiate a Code Action.
  3. 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...
Metadata

Version

2.6.0.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows