Code Monkey home page Code Monkey logo

fsharplint's Introduction

FSharpLint GitHub Actions Build Status

FSharpLint is a style checking tool for F#. It points out locations where a set of rules on how F# is to be styled have been broken. The tool is configurable via JSON and can be run from a console app, or as an MSBuild task. It also provides an interface to easily integrate the tool into other software.

The project aims to let the user know of problems through matching user defined hints a la HLint, and also by using custom rules written in F# similar to the rules in Mascot and StyleCop.

The tool in use (running as an MSBuild task with TreatWarningsAsErrors set to true):

Example

Usage

FSharpLint can be used in several ways:

Documentation

The docs contains an overview of the tool and how to use it, including a list of the available rules for linting.

Nuget Packages

Package Version
dotnet tool NuGet Status
API NuGet Status

How to build application

  1. Make sure you've installed .Net Core version defined in global.json
  2. Run dotnet tool restore to install all developer tools required to build the project
  3. Run dotnet fake build to build default target of build script
  4. To run tests use dotnet fake build -t Test
  5. To build documentation use dotnet fake build -t Docs

How to work with documentation

  1. Make sure you've installed .Net Core version defined in global.json
  2. Run dotnet tool restore to install all developer tools required to build the project
  3. Run dotnet fake build to build default target of build script
  4. Build documentation to make sure everything is fine with dotnet fake build -t Docs
  5. Go to docs folder cd docs and start Fornax in watch mode dotnet fornax watch
  6. Your documentation should be now accessible on localhost:8080 and will be regenerated on every file save

How to release

  1. Update CHANGELOG.md by adding new entry (## [X.Y.Z]) and commit it.
  2. Create version tag (git tag vX.Y.Z)
  3. Push the tag to the repo git push origin vX.Y.Z - this will start CI process that will create a GitHub release and publish the packages to NuGet

How to contribute

Bug reports, feature requests, and pull requests are very welcome! Please read the Contribution Guidelines to get started.

Licensing

The project is licensed under MIT. For more information on the license see the LICENSE file.

Maintainer(s)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

fsharplint's People

Contributors

aarani avatar alex-slynko avatar archaeron avatar auduchinok avatar baronfel avatar ciaranmaccarthaigh avatar davidtgillard avatar deviousasti avatar duckmatt avatar enricosada avatar erikschierboom avatar ethangk avatar forki avatar jgardella avatar jhamm avatar jp-fournier-dev avatar jrr avatar knocte avatar krzysztof-cieslak avatar literacyfanatic avatar mexx avatar milbrandt avatar pragmatrix avatar rmunn avatar samuela avatar sergey-tihon avatar sideeffffect avatar smoothdeveloper avatar stevegilham avatar su8898 avatar

Watchers

 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.