Code Monkey home page Code Monkey logo

danger-hlint's Introduction

Danger HLint Gem Version

A Danger plugin for HLint

Read a full how to at http://allocinit.io/haskell/danger-and-hlint/

Installation

Add this line to your Gemfile:

gem 'danger-hlint'

Usage

Methods and attributes from this plugin are available in your Dangerfile under the hlint namespace.

At the moment one single method is exposed: hlint.lint

If you want the lint results to show in the diff instead of in the comments, you can use the inline_mode option. Violations that occur out of the diff will show in danger's fail or warn section. Here's a minimal example of what to add to your Dangerfile (read the inline comments):

# get all affected files by the changes in the current diff
affected_files = git.added_files + git.modified_files

# limit files to .hs files
haskell_files = affected_files.select { |file| file.end_with?('.hs') }

# run hlint on the files and comment inline in the PR
hlint.lint haskell_files, inline_mode: true

To pass other parameters to the linter just add them to the method call. The names and values of the parameters to the hlint.lint method are handed over to linter.

For example, you can specify a hint file by calling

hlint.lint files hint: ".hlint.yaml"

To pass switches to the linter (like --quiet) specify true as the value in the call

hlint.lint files quiet: true

Warning

When running danger-hlint on your CI server (especially CircleCI 2.0) make sure that the hlint binary is in your PATH, else this plugin will silently fail to produce any linting output. One possible way to do this (in CircleCI 2.0) is:

      - run:
          name: "Running HLint (via danger-hlint)"
          command: |
            export PATH="$HOME/.local/bin:$PATH"
            bundle exec danger

Development

  1. Clone this repo
  2. Run bundle install to setup dependencies.
  3. Run bundle exec rake spec to run the tests.
  4. Use bundle exec guard to automatically have tests run as you make changes.
  5. Make your changes.

Attribution

Some methods and ideas are almost copied unchanged from Danger SwiftLint

License

danger-hlint is released under MIT License

danger-hlint's People

Contributors

tmspzz avatar saurabhnanda avatar alexfmpe avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.