fsharp-analyzers 0.39.2

dotnet tool install --global fsharp-analyzers --version 0.39.2
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local fsharp-analyzers --version 0.39.2
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=fsharp-analyzers&version=0.39.2
                    
nuke :add-package fsharp-analyzers --version 0.39.2
                    

Ionide FSharp.Analyzers.SDK

Library used for building custom analyzers for FSAC / F# editors.

F# analyzers are live, real-time, project based plugins that enables to diagnose source code and surface custom errors, warnings and code fixes into editor. Read more about analyzers here - https://medium.com/lambda-factory/introducing-f-analyzers-772487889429

How to build

  1. Install the .NET SDK version specified in global.json
  2. dotnet tool restore
  3. Open and build in your favorite IDE, or use dotnet build

How to run sample

  1. dotnet build -c Release
  2. Run the console application:
dotnet run --project src\FSharp.Analyzers.Cli\FSharp.Analyzers.Cli.fsproj -- --project ./samples/OptionAnalyzer/OptionAnalyzer.fsproj --analyzers-path ./artifacts/bin/OptionAnalyzer/release --verbosity d

You can also set up a run configuration of FSharp.Analyzers.Cli in your favorite IDE using similar arguments. This also allows you to debug FSharp.Analyzers.Cli.

Using Analyzers

Checkout our Getting Started guide for analyzer users!

Upgrading with an AI agent

This repository ships an agent skill that upgrades the fsharp-analyzers tool and your analyzer packages to a matching set of versions, re-runs the analyzers and reports what is new. Install it globally with:

npx skills add ionide/FSharp.Analyzers.SDK --skill upgrade-fsharp-analyzers -g

Then ask your agent to "upgrade the F# analyzers" in a repository that uses them.

Writing Analyzers

Checkout our Getting Started guide for analyzer authors!

How to contribute

Imposter syndrome disclaimer: I want your help. No really, I do.

There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help me with this project.

I assure you, that's not the case.

This project has some clear Contribution Guidelines and expectations that you can read here.

The contribution guidelines outline the process that you'll need to follow to get a patch merged. By making expectations and process explicit, I hope it will make it easier for you to contribute.

And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)

Thank you for contributing!

The project is hosted on GitHub where you can report issues, fork the project and submit pull requests.

The library is available under MIT license, which allows modification and redistribution for both commercial and non-commercial purposes.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.39.2 18 9/12/2026
0.39.1 477 9/12/2026
0.39.0 1,427 9/10/2026
0.38.0 6,541 9/4/2026
0.37.2 120,459 6/17/2026
0.36.0 190,061 2/19/2026
0.35.0 12,142 1/24/2026
0.34.1 13,986 11/12/2025
0.33.1 13,699 10/19/2025
0.33.0 4,532 10/19/2025
0.32.1 8,411 8/2/2025
0.32.0 2,821 7/12/2025
0.31.0 18,715 5/17/2025
0.30.0 3,697 3/26/2025
0.29.1 1,126 3/7/2025
0.29.0 3,023 2/13/2025
0.28.0 22,424 11/19/2024
0.27.0 11,612 8/17/2024
0.26.1 1,119 8/5/2024
0.26.0 6,891 5/15/2024
Loading failed

### Fixed

- [A repeated `--script` flag no longer silently drops all but the last occurrence](https://github.com/ionide/FSharp.Analyzers.SDK/issues/336). Every list-valued flag now accumulates the way `--project` and `--analyzers-path` already did, so `--script a.fsx --script b.fsx` means the same as `--script a.fsx b.fsx`. Previously a caller that built its arguments in a loop analyzed a subset of what it asked for and still got a clean run reported. The `--treat-as-*`, `--exclude-files`, `--include-files`, `--exclude-analyzers` and `--include-analyzers` flags rejected a repeat outright and now accumulate too.