- Updated to F# compiler libraries from the .NET 8.0.400 SDK
- Render a better return type for constructors (thanks @dawedawe!)
- Refactorings for better perf on hot paths (Thanks @1eyewonder)
- Tweaked the logic for the two new settings to prevent overly-notifying users.
- Use the new generated LSP models (thanks @TheAngryByrd!)
- Fix the insert of opened namespaces for completions (thanks @MrLuje!)
- New, explicit FSI settings for editor analysis and FSI invocation
- Before,
FSharp.FSIExtraParameters
was used for both script analysis in the LSP as well as launching FSI instances in editors. Some FSI options are only intended to be used for direct FSI invocation (see docs for more details) and so break editor analysis. We've introduced two settings to separate these concerns. If the old setting is provided along either of the new options, the old setting will be used but a warning message will be shown in the editor.FSharp.FSIExtraInteractiveParameters
is now used for launching FSI instances in editorsFSharp.FSIExtraSharedParameters
is used for editor analysis
- An editor should concatenate these together when launching an FSI instance. In a future release, we will be deprecating/removing the
FSharp.FSIExtraParameters
setting.
- Before,
- Tooltips now render generic type parameters with multiple parts correctly (thanks @dawedawe!)
- Tooltips now render optional args as
?name: type
instead ofname: option<type>
(thanks @dawedawe!)
- OpenTelemetry Metrics for FSAC itself
- Support the new Transparent Compiler available in the FSharp Compiler Services (thanks @TheAngryByrd!)
- This new analysis mode can be enabled by using the
--use-fcs-transparent-compiler
command line option when launching FSAC. It is snapshot-based and should be faster than the previous APIs, but may be unstable and may use more memory. As a result, it is still in an experimental mode and must be opted-in to.
- This new analysis mode can be enabled by using the
- New Codefixes:
- Converts a classic lambda expression to F# 8's new Dot-Lambda syntax (thanks @nojaf!)
- Converts F# 8's new Dot-Lambda syntax to a classic lambda expression (thanks @Tangent-90!)
- Ignore an expression (thanks @nojaf!)
- Add a binding in a source file to the matching signature file (thanks @nojaf!)
- Update a type definition in a source file to the matching definition in a signature file (thanks @nojaf!)
- Add a type alias in a source file to the matching signature file (thanks @nojaf!)
- The "Separate digits by groups" code action now can group numbers into groups of 4, not just 3 (thanks @Tangent-90!)
- Fixes for the "Remove Unnecessary Parentheses" code fix (thanks @brianrourkeboll!)
- Fixes for when the "Generate Xml Documentation" code action is available (thanks @dawedawe!)
- FSAC publishes a net8.0 TFM version of the tool as well, to prevent issues when running across TargetFrameworks
- Long-running actions like typechecking specific files can now be cancelled by users (thanks @TheAngryByrd)
- Fix restoring multiple script file NuGet dependencies in parallel (thanks @TheAngryByrd)
- Use actualRootPath instead of p.RootPath when peeking workspaces (thanks @oupson)
- Show additional diagnostics specific to script files (thanks @TheAngryByrd)
- Add some code fixes for type mismatch (thanks @nojaf)
- Shift multiline paren contents less aggressively (thanks @brianrourkeboll)
- fix unicode characters in F# compiler diagnostic messages (thanks @MrLuje)
- Place XML doc lines before any attribute lists (thanks @dawedawe)
- Don't generate params for explicit getters/setters (thanks @dawedawe)
- Fix Nuget Script Restores when doing them in parallel (thanks @TheAngryByrd)
- Migrate Codefix Scaffolding (thanks @nojaf)
- Bump ProjInfo to 0.64.0 Check out the release notes for more details (thanks @baronfel)
- Fixes Loading Projects in some cases
- Adds Traversal Project support
- Add unnecessary parentheses analyzer & code fix (thanks @brianrourkeboll)
- Fix debugger regression (thanks @baronfel)
- Slightly better Project Loading messages (thanks @TheAngryByrd)
- add missing keyword list and extra information (thanks @jkone27)
- Speed up project load times (thanks @TheAngryByrd)
- Analyzers: Update analyzers support to 0.24.0 (thanks @nojaf)
- Codefix: Update value in signature file and 1220 (thanks @nojaf)
- Analyzers: Update analyzers support to 0.23.0 (thanks @dawedawe)
- fix and improves l10n (thanks @Tangent-90)
- Fix AP signatures for APs with names which are substrings of other APs (thanks @dawedawe)
- fixing caching of cancelled cached tasks (thanks @TheAngryByrd)
- Dotnet 8 support (Thanks @baronfel & @TheAngryByrd)
- F# 8 Support (Thanks @baronfel & @nojaf & @dawedawe)
- Updates Ionide.LanguageServerProtocol to 0.4.20 (Thanks @TheAngryByrd)
- Update IcedTasks 0.9.2 (Thanks @TheAngryByrd)
- Paket Simplify (Thanks @1eyewonder)
- Do ordinal string comparisons (Thanks @dawedawe)
- fix typo in FullNameExternalAutocomplete default value (Thanks @MrLuje)
- Fix tooltip errorhandling(ionide#1195) (Thanks @pblasucci & @TheAngryByrd)
- Better Completion for ExternalAutocomplete functions (Thanks @Tangent-90!)
- LSP Refactoring 1179 1188 (Thanks @TheAngryByrd)
- Fix Spelling (Thanks @TheAngryByrd)
- Json serializer error can cause server crash (Thanks @TheAngryByrd)
- Fixes a race condition with ProgressListener.End (Thanks @TheAngryByrd)
- Fixed a bug in inlay hints generation for constructors and methods that would cause a crash on members with optional or ParamArray parameters.
- The following options have been removed from the LSP. The old CLI options will trigger a warning if present, but will not crash the server (Thanks @TheAngryByrd!)
- The older, Non-Adaptive LSP implementation (in favor of using the Adaptive LSP server)
- NamedText (in favor of RoslynSourceText)
- Incoming Call Hierarchy (thanks @TheAngryByrd!)
- Ignore requests that would cause circular dependencies in project references (thanks @dawedawe!)
- fix the Define active pattern (thanks @dawedawe!)
- Add CodeActions for Number Constants: Convert between bases, Add digit group separators (thanks @BooksBaum!)
- Default to RoslynSourceText (thank @TheAngryByrd!)
- fix an expecto test detection (Thanks @TheAngryByrd!)
- Add support for Expecto theory tests (thanks @Numpsy!)
- Add Scaffolding for Generating Codefixes (thanks @nojaf!)
- Extract out AST-collecting-walker to a separate function + abstract class (thanks @baronfel!)
- Fixed File Index out of range issues (thanks @Happypig375!)
- A new flag for controlling FSAC's support of ParallelReferenceResolution -
fsharp.fsac.parallelReferenceResolution
. If true, this allows for more parallelization of the compilation.
- Updated Ionide.LanguageServerProtocol to get better LSP 3.17 support
- Updated to FCS 7.0.400!
- Massively improved the performance of comparing file paths in the LSP server (thanks @TheAngryByrd!)
- Improved getting declarations in the Adaptive LSP Server (thanks @TheAngryByrd!)
- Reduce project option duplication, reducing memory usage (thanks @TheAngryByrd!)
- Codefix: Add codefix for redundant attribute suffix. (thanks @nojaf!)
- Add module to SemanticTokenTypes (thanks @nojaf!)
- Codefix: Add type annotations to entire function (thanks @nojaf!)
- Codefix: RemovePatternArgument quick fix (thanks @edgarfgp!)
- Codefix: for interpolated string, fix #1 (thanks @nojaf!)
- Swap maybe for option CEs (thanks @TheAngryByrd!)
- Make ServerProgressReport threadsafe (thanks @TheAngryByrd!)
- Fix range handling for code completion in interpolated strings (thanks @kojo12228!)
- Fixing Typos (thanks @TheAngryByrd!)
- FSAC Not exiting on macos/linux (thanks @TheAngryByrd!)
- CI not failing on focused tests (thanks @TheAngryByrd!)
- Remove old eventlistener (thanks @TheAngryByrd!)
- A new set of settings for excluding files from built-in analyzers (thanks @TheAngryByrd!)
- A new setting for choosing the ISourceText implementation, along with a Roslyn-based implementation (thanks @TheAngryByrd!)
- The Generate Xml Doc codefix now works on properties with getters and setters (thanks @dawedawe!)
- A new codefix for generating missing parameters and return types for XML Documentation (thanks @dawedawe!)
- The FSharp.Compiler.Services were updated to 43.7.300, matching the F# Compiler shipped in .NET 7.0.300 (thanks @TheAngryByrd!)
- A new codefix to add the 'private' access modifier to bindings and types (thanks @dawedawe!)
- Make the 'convert to positional DU pattern' codefix work in more cases (thanks @dawedawe!)
- Handle text changes when they are empty in the classic LSP Server (thanks @augustfengd!)
- Detect Expecto's Task-based tests (thanks @ratsclub!)
- Update Ionide.ProjInfo to get more logging (thanks @theangrybyrd!)
- Update tooltips and Info Panel documentation (thanks @MaximeMangel!)
- Update the xml doc generation codefix to work in more places (thanks @dawedawe!)
- Make async more pervasive in the codebase and use AsyncAdaptive values in the Adaptive LSP (thanks @theangrybyrd!)
- A new codefix to add the 'private' access modifier to bindings and types (thanks @dawedawe!)
- Make the 'convert to positional DU pattern' codefix work in more cases (thanks @dawedawe!)
- Handle text changes when they are empty in the classic LSP Server (thanks @augustfengd!)
- Detect Expecto's Task-based tests (thanks @ratsclub!)
- Update Ionide.ProjInfo to get more logging (thanks @theangrybyrd!)
- Update tooltips and Info Panel documentation (thanks @MaximeMangel!)
- Update the xml doc generation codefix to work in more places (thanks @dawedawe!)
- Make async more pervasive in the codebase and use AsyncAdaptive values in the Adaptive LSP (thanks @theangrybyrd!)
- The Adaptive Server no longer sends errors for
textDocument/documentHighlight
calls that there is no symbol information for (Thanks @haodeon!)
- A new command called
fsproj/renameFile
for renaming a file in the context of a particular project (thanks @MangelMaxime!)
- Only add a file once to a given project (Thanks @MangelMaxime!)
- Reduce memory consumption of the compiler typecheck cache (thanks @theangrybyrd!)
- To change the amount of typechecks kept by the compiler, change the
FSharp.fsac.cachedTypecheckCount
config value
- To change the amount of typechecks kept by the compiler, change the
- Adaptive server now only reloads specific projects that changed, rather than the entire workspace (Thanks @TheAngryByrd!)
- Don't trigger the 'Replace prefix with _' codefix on _ matches (Thanks @dawedawe!)
- Handle
workspace/didChangeConfiguration
requests that don't provide anFSharp
config property (thanks @razzmatazz!) - Some threadpool exhaustion fixes due to blocking threads (Thanks @TheAngyrByrd!)
- Fix Adaptive server to lazily load projects specified instead of loading all projects in the workspace (Thanks @TheAngryByrd!)
- A new codefix that converts 'bare' ///-comments to full XML documentation comments (thanks @dawedawe!)
- Enhancements to Find All References and Rename operations (thanks @BooksBaum and @theangrybyrd!)
- Internal errors no longer report as LSP protocol errors
- TestAdapterEntry items now include module information as well (thanks @kojo12228!)
- IndexOutOfRange issue in signatureHelp (thanks @vain0x!)
- ThreadPool exhaustion issue with ProgressListener (thanks @theangrybyrd!)
- The 'convert positional DU usage to named patterns' codefix now works with multiple match clauses in the same pattern (thanks @dawedawe!)
- Support for logging traces to a configured OpenTelemetry collector endpoint (thanks @theangrybyrd!)
- to use this, set the CLI argument
--otel-exporter-enabled
, and set theOTEL_EXPORTER_OTLP_ENDPOINT
the the URL of a reachable collector before launching the app - then, send the
fsharp.notifications.trace
configuration set totrue
, and the fsharp.notifications.traceNamespaces` configuration set to an array of string patterns for namespaces of activities to match on.
- to use this, set the CLI argument
- Updated the built-in Fantomas client to 0.9.0 (thanks @nojaf!)
- Brought tooltips using signatures into line with the design guidelines (thanks @dawedawe!)
- Flow through the
InlineValuesProvider
configuration as expected, to light up LSP support for inline values.
- Support for F# 7
- Note that as a side effect of this, some codefixes have been temporarily disabled. We'll be working on re-enabling them in the near future in conjuntions with the F# team.
fsharp/piplineHint
is now powered by the LSP InlineValues functionality (thanks @kaashyapan!)- Test fixes and enhancements for Adaptive mode (thanks @theangrybyrd!)
- Add textDocument/inlineValue from LSP 3.17
- InlineValue config option to shadow PipelineHint config option
- Fix inlayHints for typed params #1046
- Fix crash due to missing dependency on Microsoft.Extensions.Caching.Memory
- Speed, typechecking, memory usage improvements for Adaptive and normal LSP servers
- Don't compute all references unnecessarily
- The
FSharp.enableReferenceCodeLens
is deprecated, it's been replaced by theFSharp.codeLenses.references.enabled
setting.
- Fix reference resolution when there are refassemblies involved (thanks @theangrybyrd!)
- Fix tooltips for some member accesses (thanks @theangrybyrd!)
- Performance enhancements for AdaptiveLSPServer and file time fixes for both servers (thanks @theangrybyrd!)
- Safer directory traversal when probing for projects (thanks @sheridanchris!)
- Clear diagnostics and stale project options for removed files (thanks @MangelMaxime!)
- Experimental implementation of the LSP server based on FSharp.Data.Adaptive. It can be enabled by passing
--adaptive-lsp-server-enabled
on the CLI. (Thanks @TheAngryByrd!)
- Renamed fantomas-tool settings to fantomas (Thanks @nojaf!)
- Remove diagnostics for files that aren't in the workspace when they are closed (thanks @Booksbaum!)
- Improve performance/concurrency for checking files (thanks @Booksbaum!)
- Add
fsharp/addExistingFile
LSP command (Thanks @MangelMaxime!) - Support for .NET SDK 6.0.400 and 7.0.100
- Primary change was updating the Ionide.ProjInfo dependency
- Improvements/Fixes for unused declarations (thanks @Booksbaum!)
- Detect more cases when values are unused
- Fixes for associated codefix to remove or ignore the value
- Support removing files that are outside the fsproj directory (thanks @MangelMaxime!)
- Reverted back to full-text synchronization from incremental sync
- This didn't play well with the debounced checking that we do, so we need to rethink the interaction between the features
- Use incremental text sync instead of full text sync
- Nicer errors when CodeLenses cannot be resolved
- Removed compiler-generated and hidden types from the documentation endpoints (thanks @MangelMaxime!)
- Keywords should work in tooltips consistently now
- Prevent codelenses from getting out of sync with document source
- Added a new command fsharp/removeFile for removing a file from a project
- Clear stale errors when renaming a file
- Respect disabling in-memory project references
- Remove unused formatting from completion and signature items
- Performance regresssions in typechecking files
- Better precondition checking for adding new files to projects (thanks @MangelMaxime!)
- support CodeLenses for single-character identifiers
- Format range provider
- Info toolip for inlay hints
- Rename: Add backticks to name if necessary (thanks @Booksbaum!)
- Codelens for -1 reference no longer shown
- Remove backticks for signatures in signature help
- Tons of bugs and enhancements to InlayHints (thanks @Booksbaum!)
- Renames and reference counts are more accurate
- Fix index out of bounds in signature helpers (thanks @Booksbaum!)
- FAKE Integration
- Custom InlayHints - (fsharp/inlayHints, removed in favor of LSP inlayHints)
- IndexOutOfBounds exceptions that took down the process (thanks @BooksBaum!)
- Update Ionide.LanguageServerProtocol to get new types and fixes (thanks @BooksBaum!)
- Enable several features to be used with untitled/unsaved files (thanks @BooksBaum!)
- Shift+F1 help, Info Panel, Pipeline Hints, and Line Lens all work now for unsaved/untitled loose files
- This required an API change to the
fsharp/fileParsed
notification - it now returns a URI instead of a string - This required an API change to the
fsharp/pipelineHint
request - is is now{ TextDocument: TextDocumentIdentifier }
- Update Fantomas.Client to use new fantomas alpha if present (thanks @nojaf!)
- Alter logic for showing inlay hints to show fewer hints on parameters (thanks @Booksbaum!)
- New Codefix: rename parameter to match signature file (thanks @Booksbaum!)
- Config toggles for both kinds of code lenses
- Don't trigger inlay hints for typed bindings
- Updated to Ionide.LanguageServerProtocol 0.4.0
- Trigger fewer inlay hints for certain kinds of parameters
- Don't hardcode state file to my personal user directory
- Don't generate state file in an OS-specific way
- ImplementInterface code fix unification and improvements (thanks @Booksbaum!)
- More trigger locations and behavior fixes for the Add Explicit Type to Parameter CodeFix (thanks @Booksbaum!)
- New notification -
fsharp/testDetected
. This notification is fired per-file when tests are detected for the current file. The data in the payload can be used to run individual tests or groups of tests. - New endpoint - `fsharp/inlayHints. This provides support for type annotation and parameter name inlay hints.
- New codefix - convert erroring single-quoted interpolations to triple-quoted interpolations
- New command-line argument -
--state-directory
. Specified a folder to store workspace-specific FSAC data.
- Update to .NET 6 (Thanks @dsyme!)
- Update to FCS 41.0.3
- Update to Ionide.ProjInfo 0.58.2 to get fixes around the project loader loop, project cache, and legacy project support
- Completions for types are much better now (thanks @tboby!)
- Completions triggers on the first typed character (thanks @tboby!)
- New CLI Parser with support for auto-completion and nicer help
- Record stub generation works again
- The fsautocomplete.netcore.zip file that was previously added to the release announcement on GitHub is back again.
- Several corner cases around code fixes and many LSP server endpoints (part 2) (Thanks @Booksbaum!)
- Fix textDocument/publishDiagnostics sometimes not getting sent (Thanks @Booksbaum!)
- Fix completions in the middle of lines
- New release process driven by this Changelog
- Update Fantomas.Client to prefer stable versions (Thanks @nojaf)
- Moved to use the Ionide.LanguageServerProtocol shared nuget package
- Sourcelink's go-to-definition works better on windows for deterministic paths
- Fix missing commas in Info Panel generic type signatures (Thanks @jcmrva!)
- Fix off-by-1 error in the negation-to-subtraction codefix (Thanks @jasiozet!)
- BUGFIX: Fix background service
- BUGFIX: Fix File System
- ENHANCEMENT: Better handling of file typechecking after FCS 40 update
- BUGFIX: Fix regression in cross-project support after FCS 40 update in proj-info
- BUGFIX: Fix stuck code lenses (thanks @beauvankirk!)
- FEATURE: Support .Net 6 and F# 6
- BUGFIX: Bump Fantomas.Client to 0.3.1 (thanks @nojaf!)
- BUGFIX: update handling of langword and crefs in see xmldoc nodes
- BUGFIX: handle href elements on a, see, and xref xml doc comments
- FEATURE: Use user's managed Fantomas dotnet tool instead of embedding directly into FSAC (thanks @nojaf!)
- BUGFIX: Fix dotnet template rendering on non-english locales (thanks @jmiven)
- ENHANCEMENT: Don't provide completions or tooltips for string literals of all kinds This allows for other extensions to provide completions/hover tooltips for these strings when configured to do so
- BUGFIX: Fix loading of dotnet new templates (thanks @Happypig375)
- BUGFIX: Fix datatype for workspace/applyEdit request
- ENHANCEMENT: Update Fantomas to 4.5.0 stable (thanks @nojaf)
- ENHANCEMENT: Enable running on .net 6 via rollForward
NOTE: if you have both 5.0 and 6.0 SDKs installed, you must launch fsautocomplete by passing the
--fx-version
argument to the dotnet CLI. See the cli docs for more details.
- ENHANCEMENT: Make the Unused Value analyzer suggest single-underscore discards (thanks @pblasucci)
- ENHANCEMENT: Add new 'Add explicit type annotation' codefix This works for parameters, but not function-typed parameters
- BUGFIX: Align with LSP protocol around command fields Fixes an issue in Ionide-vim (thanks @cannorin)
- ENHANCEMENT: Reenable FSharpLint linting
- ENHANCEMENT: Update Fantomas dependency to latest prerelease
- BUGFIX: fix the dotnet tool packaging to include a missing dependency for code formatting
- BUGFIX: fix indentation and insert position for unopened namespaces (Thanks @Booksbaum)
- ENHANCEMENT: Render parameters that are functions with parens for readability
- Publish the dotnet tool fsautocomplete to nuget. It can be installed with
dotnet tool install fsautocomplete
.
- Improve memory usage by reducing string array allocations
- Fix fsharp/signature off-by-ones (Thanks @mhoogendoorn)
- Fix analyzer usage
- Add new codefixes
- Add missing self-identifier to instance member
- Refactor
typeof<'t>.Name
tonameof('t)
- Fix returned tokens in
textDocument/semanticTokens/full
andtextDocument/semanticTokens/range
to no longer return zero-length tokens.
- Improve edgecase detection when
- finding declarations
- finding type definitions
- getting symbol usages
- checking for inclusion in a file
- Improve overload detection in
textDocument/signatureHelp
for methods
- Fix regression in
textDocument/completion
introduced in 0.45.0
- Update Unused Binding CodeFix to handle more cases
- Enable faster typechecking when signature files are present for a module
- Happens transparently, but is mutually exclusive with analyzers.
- Refactors around tooltip signature generation
- Fix the display of units of measure in tooltips (
float<m/s>
instead offloat<MeasureInverse<MeasureProduct<.....>>>
) - Much better experience for signature help for function applications and method calls
- Update the Generate Abstract Class CodeFix to work for abstract classes that aren't defined in F#
- Update to Ionide.ProjInfo 0.51 to prevent workspace init deadlocks
- Fantomas updated to 4.4 stable
- FCS 39 update
- More codefixes!
- Fixed serialization of the FormattingOptions type to prevent server crashes
- Performance enhancements for the BackgroundService
- Many large changes, .Net 5 is required now
- Support for LSP semantic highlighting
- Fantomas upgrade to 4.4.0-beta-003
- FCS 38.0.2 upgrade
- Use Ionide.ProjInfo for the project system instead of the oen built into this repo
- Use local hosted msbuild to crack projects instead of managing builds ourselves
- Fix
PublishDiagnosticsCapabilities
type #574 by @Gastove - Set defaultDotNetSDKRoot on Linux correctly #576 by @Krzysztof-Cieslak
- Rework documentation parser #446 by @MangelMaxime
- Update FAKE integration #566 by @baronfel
- Update FSharp.Analyzers.SDK to 0.4 #568 by @baronfel
- Move Fantomas formatting to Core project #553 by @Krzysztof-Cieslak
- Fix return type in signatures in documentation formatter #554 by @Krzysztof-Cieslak
- Work around build infrastructure by @Krzysztof-Cieslak
- Allows analyzer paths to be absolute #555 by @Zaid-Ajaj
- Update FSI references version-finding algorithm to probe packs dir as well as runtimes dir #556 by @baronfel
- Update FSharp.Analyzers.SDK to 0.3.0 and make them available only in .Net Core build #557 by @Krzysztof-Cieslak
- upgrade to
FSharp.Compiler.Service
v28.0.0 - upgrade to
FSharpLint.Core
v0.10.8 - include symbolcache
runtimeconfig.json
anddeps.json
to .net core binaries - add
default.win32manifest
to .net core binaries - fix to allow run with only .NET Core Runtime 3 installed (previously v2.x was required) #364
- add go-to-implementation command (
symbolimplementation
)
- upgrade to
FSharp.Compiler.Service
v27.0.1 - upgrade to
FSharpLint.Core
v0.10.7
- upgrade to
FSharp.Compiler.Service
v26.0.1 (#338) - upgrade to
FSharpLint.Core
v0.10.5
- new project parser for old fsproj/fsx based on
Dotnet.ProjInfo
, enabled by default in .NET Core FSAC - add unused declarations diagnostic
- add simplified names analyzer
- add unused opens analyzer
- styling for XmlDocs and tooltips
- add find type declaration command
- adds autocomplete for external (from unopened namespaces and modules) symbols, provides information where and what
open
statements should be inserted - add workspaceLoad async command
- add notifications (project loading, etc). In http mode, using websocket
- add generic parameters to tooltips
- include keywords in autocomplete only when needed
- don't autocomplete for comments, strings etc
- add project cache
- watch file changes, to trigger project reloading
- implement record stub generator (#297)
- add background and persistent symbol cache out of process
- use dnspy libs to navigate to decompiled files for external libs (#299)
- fsac .NET runs as 64 bit exe
- add description for '=' symbol (#312)
- fix autocomplete for literal values (#316)
- support keywords in helptext command
- add interface stub generator (#327)
- support
FSharp.Analyzers.SDK
analyzer - upgrade to
FSharp.Compiler.Service
v25.0.1 - upgrade to
Dotnet.ProjInfo
v0.31.0 - upgrade to
FSharpLint.Core
v0.10.4
- support mixed dotnet langs projects (#173)
- add detailed errors info (#175)
- add hostPID command line arg (#190)
- add workspace peek command (#191)
- fix ci, .net core 2.0 RTM, normalize fsprojs (#197)
- fix linter crash (#206)
- single console app (#212)
- add sdk 2.0 support (#166)
- .NET Core project support
- Allow for inconsistent casing of "Fsharp" when detecting: #149.
- Improvements from downstream ionide fork:
- support msbuild15, same as preview2
- Add Background checking
- Performance updates for find usages
- Implement GetNamespaceSuggestions
- Update FSharpLint version
- Optimize GetNamespaceSuggestions
- Optimize GetDeclarations
- Add endpoint for F1 Help
- ... and more!
- (Some of these features only exposed currently via HTTP interface)
- Add parse errors, tooltips for keywords, and signatures for constructors: #135.
- Invalid release, ignore.
- Add EnclosingEntity and IsAbstract to Declaration contract: #129.
- Merge Ionide changes (#123):
- Glyphs
- Update dependencies
- Lint settings
- Keyword completion
- Add command for all declarations in known projects: #117.
- cache ProjectResponse, invalidate it if project file's last write time changed: #116.
- Add command to parse all known projects: #115.
- Merge Ionide changes (#110):
- Naive support for project.json (this probably will be dropped in futture but let's have it now)
- Better (file) paths normalization across different features
- Resolve scripts to latest .Net on Windows
- Make completion faster on Suave
- Depend on F# 4 (FSharp.Core deployed with application) instead of 4.3.1
- Fix Symboluseproject: #104.
- Backwards-incompatible: Make completions faster by not requiring a parse on each request: #99
- Add
SymbolUseProject
command: #101. - Add typesig command, that doesn't get Comment data: #73
- Add extraction of xmldoc from other assemblies (from .xml files).
- Normalize paths to source files from projects: #94.
- Set MinThreads to avoid deadlocks on Mono < 4.2.2: #92.
- Upgrade to FCS 2.0.0.4 to fix project cracking with spaces in paths: #91.
- Upgrade to FCS 2.0.0.3 to fix VS2015 project cracking: #89.
- Upgrade to FCS 2.0.0.0-beta and add project cracking verbosity option: #86.
- Add FSharpLint support: #83.
- Switch to depend on FSharp.Core 4.3.1.0: #81.
- Don't output a BOM to standard out: #82
- Fix for uncompiled referenced projects: #78.
- Backwards-incompatible: Framework no longer returned in
project
response.
- Add App.config to FsAutoComplete.Suave release: #76.
- Also for fsautocomplete.exe.
- Add Suave hosting for FSAC: #74.
- Backwards-incompatible: return GlyphName rather than code in
- Declarations message: #75.
- Fix StackOverflowException and encoding issue: #70.
- Backwards-incompatible: do not format help text, leave that to the client, which allows the display to be more semantic. #63 (due to @Krzysztof-Cieslak)
- Fix MSBuild v14 support on non-English systems by avoiding attempting to load *.resources.dll (patch from @ryun).
- Add a new
colorizations <true|false>
command to enable/disable asynchronous provision of colorization information following a parse: #60 (Fixes #44). - Newest FSharp.Core is used for type-checking scripts and for projects that do not reference FSharp.Core. Supports F# 3.0, 3.1 and 4.0: #59.
- If MSBuild v12 is not available, instead try load MSBuild v14. This, together with the previous point, adds support for VS2015-only Windows installs: #57. Fixes: #12 #21 #23 #25 #54.
- Backwards-incompatible:
compilerlocation
command has changed. Now provides path to best version of msbuild, fsc and fsi on Windows: #23.
- Backwards-incompatible: Symbol use command now includes FileName rather than Filename
- Reduce timeout message from 'error' to 'info'
- Update to FCS 1.4.X (support for F# 4.0): #52
- Automatically reparse F# project files if they are changed on disk: #47
- Fix exception in
symboluse
command: #46.
- Backwards-incompatible changes:
- Update helptext command to return { Name = ""; Text = "" }. Fixes #35.
project
command response now has 'null' for OutputFile and TargetFramework if a value cannot be determined.
- FSharp.CompilerBinding removed, and used parts absorbed. Fixes #17.
- ScriptCheckerOptions fetched with no timeout, and also stores them. Fixes #18, #28.
- If a .fs file is not in a loaded project, produce an incomplete typecheck environment for it to give basic results.
- Update parsing of project options to include ProjectReferences. Fixes #39.
- Separate parsing of commands, main command loop, and formatting of response message into separate modules.
- Add symboluse command - ionide#34
- Breaking change: all columns returned are now 1-based. Format of error locations has also changed to be more consistent with other formats.
- Add param completion command - ionide#30
- Update to FCS 0.0.90 (fix referencing PCL projects) - ionide#26
- Prevent test assemblies from being included in release archives by avoiding forcing the output directory.
- Adjust for 1-based column indexing - ionide#13
- Note that this was previously the intended behaviour, but column indexes were treated as 0-based. Ensure that both line and column indexes sent in commands are 1-based.
- Completion filtering - ionide#10
- Implement multiple unsaved file checking - ionide#8
- Add Glyphs to completion responses - ionide#1