fsprojects / FSharpLint

Lint tool for F#
https://fsprojects.github.io/FSharpLint/
MIT License
303 stars 73 forks source link
dotnet fsharp lint linter

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 contain 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

  1. Make sure you've installed the .NET 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 -t Build to build (which executes the Build target from the FAKE-based 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 the .NET 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

Please read the Releasing Guidelines if you're a maintainer.

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)