#module #rename #haskell #tool #command-line-tool #speed

app hask-replace

Rename haskell modules at the speed of Rust

23 releases (4 breaking)

Uses old Rust 2015

0.6.0 Oct 15, 2017
0.4.6 Sep 16, 2017
0.4.2 Aug 18, 2017
0.3.5 Aug 10, 2017
0.1.6 Jul 29, 2017

#44 in #haskell

50 downloads per month

Custom license

23KB
519 lines

hask-replace

Windows build status Build Status

hask-replace is a command-line tool that simplifies the process of renaming Haskell, Elm, and Idris modules. It can also be used to rename packages.

The Pitch

Here's an example of how you would use hr:

cabal unpack dhall
cd dhall-1.5.1/
hr module . "Dhall.Import" "Dhall.Dependencies"
cabal new-build

As you can see, it's a lot less painful than whatever witchcraft you'd have to resort to to accomplish the same thing in bash. Not only that, it works for Idris and Elm too!

Installation

Script

The easiest way to install for most users is probably via a shell script, viz.

curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/hask-replace

Binary releases

If the script doesn't work, you can also download prebuilt binaries. You can find binaries for various platforms on the release page.

Cargo

First, install cargo. Then:

 $ cargo install hask-replace

You will need to use the nightly release for this to work; if in doubt run

rustup run nightly cargo install hask-replace

Performance

Package Task Time
lens Rename module 14.77ms
dhall Rename Module 7.41 ms
haskell-src-exts Rename Module 30.29 ms

Use

hr can also be used on Idris.

git clone https://github.com/HuwCampbell/idris-lens.git
cd idris-lens
hr idris . Control.Lens.Maths Control.Lens.Math
idris --build lens.ipkg

Vim Plugin

There is a vim plugin for hask-replace here. It supports copying and moving Haskell, Elm, and Idris modules.

Dependencies

~5–13MB
~155K SLoC