Skip to content

parhamsaremi/FSharpLint

 
 

Repository files navigation

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)

Packages

No packages published

Languages

  • F# 100.0%