Need help with izuna?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

matsumonkie
142 Stars 5 Forks MIT License 175 Commits 3 Opened issues

Description

Show Haskell type annotations when doing code review on Github

Services available

!
?

Need anything else?

Contributors list

# 487,129
Sass
Haskell
rails-e...
Shell
160 commits
# 131,903
Haskell
lenses
c-plus-...
github-...
1 commit

example workflow file path

izuna

Enhances Haskell code review for Github

Izuna brings a richer GitHub interface by showing type annotations directly in your browser.

gif unified demo 1 gif split demo 2

Requirements

As of today, the izuna plugin is only available for Chrome and your Haskell project needs to be using either GHC 8.10.1 or GHC 8.10.2

How do I use it?

Go to the chrome webstore and install the izuna chrome extension. Then you can either go to one of the izuna-example pull requests or submit one to see izuna in action.

To use it for your own project, you'll also need to enable the github action izuna-action.

For development purpose, you need to install the izuna plugin in chrome by going to

chrome://extensions/
and clicking
load unpacked
(then select the
chrome-extension
folder).

How does it work?

Izuna makes use of .hi extended (AKA hie files) to recover information about your code. Your project information is then displayed by a plugin in your browser.

A more detailed worklow is: 1. Every time you push a commit, a GitHub Action will upload the hie files to a server 2. The server will then process the hie files 3. When you visit a pull request from your browser, information about this PR (if any available) will be fetched from the server and displayed in your browser thanks to a plugin.

Features & Roadmap

✅: available
🔧: building

| available | feature | description | |-----------|------------------------------|------------------------------------------------------| | ✅ | Type annotation | Show type annotation for your haskell code | | ✅ | Split/Unified diff view mode | Works correctly for unified and split diff view mode | | ✅ | Chrome support | | | ✅ | Security | Source code is no longer stored | | ✅ | Syntax color | Display richer Haskell syntax color | | 🔧 | GHC 8.10.3 support | only GHC 8.10.1 and GHC 8.10.2 are available atm |

How to build

Github Action

Please go to the izuna-action repo for more information.

izuna-builder/izuna-server

izuna-builder is the core of the project. Its purpose is to receive a hie files tar archive from the github action and extract it. Then it needs to parse the hie files and recover any useful information.

Build with:

bash
stack build izuna-builder --stack-yaml=stack-8.10.1.yaml --no-nix

izuna-server is a simple server that returns the processed hie files for the plugin.

Build with:

bash
stack build izuna-server --stack-yaml=stack-8.10.1.yaml --no-nix

Inspirations

Izuna was (more than) inspired by: - Haskell-code-explorer by Alexwl - Haddock

Many thanks to Weeder by Ocharles and Stan by Kowainik which helped me understand better how Hie files work.

Icons made by Freepik

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.