All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- We now expose stable backward-compatible APIs, independent of the FSharp.Compiler.Service API, which you are encouraged to use. If you use the stable API, then upgrading FSharp.Analyzers.SDK will not require you to rebuild your analyzers until you need to consume features from later versions of the SDK. (For example, if a new F# language version introduces new syntax that you wish to parse, then you will have to upgrade your analyzer to a later stable API version which understands that new syntax.)
- Add overridable member for walking
FSharpEntityto typed-tree walker - Add overridable member for walking
FSharpMemberOrFunctionOrValueto typed-tree walker
- Fix exception when analyzing certain generic types by upgrading FSharp.Core (to 10.0.101) and FSharp.Compiler.Service (to 43.10.101) 279
- Adds various helpers for FSharpSnapshot and multi-file projects (thanks @TheAngryByrd!)
- Add RSP file support for FSC arguments to bypass CLI length limits (thanks @Copilot!)
- Update McMaster.NETCore.Plugins to v2 (thanks @Numpsy!)
- Update FSharp.Compiler.Service 43.10.100 (thanks @Numpsy!)
- Expose getAnalyzerIgnoreRanges function for public consumption (thanks @TheAngryByrd!)
- Support for Analyzers using NuGet in FsAutocomplete 253 255 (thanks @TheAngryByrd!)
- Adds CLI Flag to get binlogs for project loads. Configures ProjInfo logging. (thanks @TheAngryByrd!)
- Add Ignore Functionality for Analyzers (thanks @1eyewonder!)
- Update Ionide.KeepAChangelog.Tasks to 0.3.0 (thanks @Numpsy!)
- Add EditorContext to OptionAnalyzer sample (thanks @TheAngryByrd!)
- Add logging about System.Runtime load exceptions (thanks @TheAngryByrd!)
- Fix the path to the OptionsAnalyzer binary in the readme (thanks @Numpsy!)
- Perf: Move membersToIgnore/exprTypesToIgnore out of visitDeclaration() (thanks @Numpsy!)
- Support script (fsx) files (thanks @TheAngryByrd!)
- Add project options to analyzer contexts (Thanks @Numpsy!)
- Update FSharp.Compiler.Service to 43.9.300 (Thanks @Numpsy!)
- Update Ionide.ProjInfo.ProjectSystem package version to 0.71.0 (Thanks @TheAngryByrd!)
- Add GitHub logging output format (Thanks @fkj!)
- Prevent File Locking Issue (Thanks @1eyewonder!)
- Update FSharp.Compiler.Service to 43.9.201 (Thanks @TheAngryByrd!)
- Support for F# 9 and .NET 9.0.100 (Thanks @Numpsy!)
- Support for .NET 6 and .NET 7 (Thanks @Numpsy!)
- Reset the console foreground colour after printing results (thanks @Numpsy!)
- Only Analyze projects passed in via CLI (thanks @TheAngryByrd)
- Emit Analyzer Errors in the MSBuild Canonical Error Format (thanks @Numpsy!)
- Update Structured Logger libraries (thanks @nojaf!)
- Update FSharp.Compiler.Service and FSharp.Core to the .NET SDK 8.0.300 release versions
- More efficiently analyze larger solutions (thanks @TheAngryByrd!)
- Update to FCS and FSharp.Core 43.8.200
- Fail when no analyzers are registered but the tool is invoked (thanks @Smaug123!)
- Remove Coverlet.Collector package dependency (thanks @dawedawe!)
- Update Ionide.ProjInfo to 0.63.0 (thanks @nojaf!)
- Add
RequireQualifiedAccesstoSeveritytype (thanks @Smaug123!) - Fail the tool when any analyzers fail to load (thanks @Smaug123!)
- Changed --exclude-analyzer to --exclude-analyzers (thanks @dawedawe!)
- Changed --ignore-files to --exclude-files (thanks @dawedawe!)
- Add missing TAST walkers (thanks @dawedawe!)
- Add support for --include-analyzers to ignore all others (thanks @dawedawe!)
- Add support for --include-files to ignore all others (thanks @dawedawe!)
- Add path to ASTCollecting (thanks @nojaf!)
- Use Microsoft.Extensions.Logging instead of printf based logging infrastructure (thanks @dawedawe!)
- Update FCS to 43.8.100 (thanks @nojaf!)
- Raise clear error if empty FSC arguments were passed (thanks @nojaf!)
- Extend signature AST walking (thanks @nojaf!)
- --project value should be tested if path exists (thanks @dawedawe!)
- Provide better DX when project cracking failed (thanks @dawedawe!)
- Hint is mapped as note in sarif export (thanks @nojaf!)
- Properly walk SynModuleSigDecl.Val (thanks @nojaf!)
- Sarif file should not report absolute file paths (thanks @nojaf!)
- Add code-root flag (thanks @nojaf!)
- Add a -p flag to allow passing MSBuild properties through to the MSBuild evaluation portion of checking. (thanks @dawedawe!)
- API change in TASTCollecting (thanks @dawedawe!)
- Walk over the union case in SynModuleDecl.Exception (thanks @nojaf!)
- Allow remapping of all severity levels (thanks @dawedawe!)
- Add tree processing infrastructure (thanks @dawedawe!)
- Create sarif folder if it does not exist (thanks @nojaf!)
- Use fixed version of FCS and FSharp.Core (thanks @nojaf!)
- Allow to specify multiple analyzers-paths (thanks @nojaf!)
- Accept direct fsc arguments as input (thanks @nojaf!)
- Analyzer report (thanks @nojaf!)
- Support multiple project parameters in the Cli tool (thanks @dawedawe!)
- Exclude analyzers (thanks @nojaf!)
- Removed repo internal packages.lock.json files to workaround sdk bug (thanks @dawedawe!)
FSharp.Analyzers.SDK.TestingNuGet package (thanks @dawedawe!)
- Revisit Context type (thanks @nojaf!)
- Don't filter out .fsi files (thanks @dawedawe!)
- update to projinfo 0.62 to fix runtime failure (thanks @dawedawe!)
- Add Parse and Check Results to Context (thanks @dawedawe!)
- Enforce SDK version (thanks @nojaf!)
- Update FCS to 43.7.400 (thanks @TheAngryByrd!)
- Updated the tool to .NET 7 (thanks @cmeeren!)
- Updated to FSharp.Core 7 and FCS 43.7.200 (aka what's in the 7.0.200 .NET SDK) (thanks @DamianReeves!)
- Update to FCS 41 - thanks @theangrybyrd!
- Pack the .NET Tool with RollForward set to enable running on .NET 6 runtimes.
- Don't expose sourcelink as a nuget package dependency
- Update Ionide.ProjInfo to 0.53
- Update FCS to 40.0.0
- Exclude signature files from analysis in CLI
- Update Ionide.ProjInfo to 0.52
- Update FCS version to 39.0.0
- Update Ionide Project System version as well
- Update FCS version to 38.0.2
- Include MsBuild.Locator dependency
- Update FCS version to 38.0
- Use Ionide.ProjInfo isntead of Dotnet.ProjInfo
- Update FCS version to 36.0.3
- Update FCS version to 35.0.0
- Allow for optional named analyzers via the attribute
[<Analyzer("AnalyzerName")>] - Add ability to get exact errors from running each individual analyzer
- Update FCS version to 34.1.0
- Support third-party dependency resolution for analyzers
- Manage analyzers state internally
- Add
GetAllEntitiesto context - function that returns all known entities in the workspace (from local projects and references)
- Initial tool release
- Add client module
- Update FCS version to 33.0.0
- Update FCS version to 31.0.0
- Update FCS version to 31.0.0
- Update FCS version to 30.0.0
- Update FCS version to 29.0
- Update FCS version
- Update FCS version
- Update FCS version
- Initial release