GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - fsprojects/FSharpLint: Lint tool for F#

BranchesTags
Open more actions menu

Latest commit

 

History

2,262 Commits
2,262 Commits

Folders and files

NameName
Last commit message
Last commit date
.config
.config
 
 
.github
.github
 
 
docs
docs
 
 
src
src
 
 
tests
tests
 
 
.git-blame-ignore-revs
.git-blame-ignore-revs
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.mcp.json
.mcp.json
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Directory.Build.props
Directory.Build.props
 
 
Directory.Packages.props
Directory.Packages.props
 
 
FSharpLint.slnx
FSharpLint.slnx
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
RELEASE.md
RELEASE.md
 
 
build.fsx
build.fsx
 
 
global.json
global.json
 
 
make.cmd
make.cmd
 
 

Repository files navigation

FSharpLint GitHub Actions Build Status

FSharpLint is a static analysis tool for F#. Like many other software linters, it analyzes your source code (using both typed and untyped syntax trees) and highlights any violations of defined F# coding rules. There are various kinds of rules:

  • Conventions: ensures that your API members follow project- or solution-wide naming standards, or that your source code is structured in parts that don't surpass excessive (and configurable) certain lengths.
  • Smells: warns about logic that may indicate defects, or pose maintainability problems or downsides.
  • Formatting: checks that code is indented and structured according to specified cosmetic standards (beware, this kind of rules are deprecated in favour of more mature tools such as fantomas).

The tool is configurable via JSON and can be run as a console app or as an MSBuild task. It also provides an interface for easy integration 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:

  • Running as dotnet tool from command line.
  • In VS Code using the Ionide-FSharp plugin.
  • In Visual Studio using the F# Lint extension.
  • As an MSBuild Task.
  • In other editors through FsAutoComplete Language Server

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 Latest Stable Version Latest Version (including Pre-Releases)
dotnet tool NuGet Status NuGet Status
API NuGet Status NuGet Status

How to build

  1. Make sure you've installed the .NET version defined in global.json
  2. Run make to build (which executes the Build target from the FAKE-based build script)
  3. To run tests use make check
  4. To build documentation use make 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 make to build the default target of the build script
  4. Build documentation to make sure everything is fine with make 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 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)

  • @duckmatt
  • @knocte
  • @jgardella

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

About

Lint tool for F#

fsprojects.github.io/FSharpLint/

Topics

dotnetfsharplintlinter

Resources

Readme
MIT license

Contributing

Contributing
Activity
Custom properties

Stars

332 stars

Watchers

17 watching

Forks

74 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.