VisualFSharp v4.1 Release Notes
-
๐ Releases
- โก๏ธ Visual Studio 2017 updates 15.0 to 15.8 (exclusive)
- .NET Core SDK versions 1.0 to 2.1.400 (exclusive)
Language and Core Library features
- Struct tuples
- ๐ Initial support for consuming C#-style
ref
returns - ๐ Struct record support with the
[<Struct>]
attribute - ๐ Struct Discriminated Union support with the
[<Struct>]
attribute - ๐
Result<'TSuccess, 'TFailure>
type, with supporting functions in FSharp.Core - ๐ Support for the
fixed
keyword to pin a pointer-tyle local to the stack - Underscores in numeric literals
- ๐ Caller Info Attribute Argument support
- ๐
namespace rec
andmodule rec
to support mutually referential types and functions within the same file - Implicit "Module" suffix added to modules that share the same name as a type
- Tuple equality for F# tuples and
System.Tuple
Compiler improvements
- ๐ Support for generating Portable PDBs
- Significant improvements to error messages, particularly to aid with suggestions
- ๐ Performance improvements
- Interoperability improvements
- ๐ Support for geenerating F# AssymblyInfo from properties for .NET SDK projects
- ๐
--debug:full
support for F# on .NET Core on Windows - ๐
MakeTuple
support for struct tuples - โ Warnings are forwarded when searching for method overloads
- ๐ Support for emitting an enum-specific warning when pattern matching over one
- ๐ Many smaller bug fixes
FSharp.Core features
- ๐ Support for
NativePtr.ByRef
- ๐ Support for
Async.StartImmediateAsTask
- ๐ Support for
Seq.transpose
/Array.transpose
/List.transpose
- ๐
IsSerializable
support forOption
andAsync<'T>
- ๐ Many smaller bug fixes
IDE features for F# tools in Visual Studio
Most items here contributed by community members.
- 0๏ธโฃ Default installation of F# wherever .NET Core is installed
- Significant memory reductions in F# tooling
- IntelliSense Filters and Glyphs
- ๐ Support for Go to All
- ๐ Find all Reference support
- ๐ In-memory cross-project references support
- ๐ QuickInfo supports type colorization
- ๐ QuickInfo supports navigable links that will invoke Go to Definition
- ๐ Inline Rename support
- ๐ Go to Definition from F# to C# support
- Semantic document highlighting for selected symbols
- ๐ Support for Structured Guidelines and code outlining, which is toggleable
- ๐ Support for
EditorBrowsable(EditorBrowsableState.Never)
- Code fix for making Record and Discriminated Union case lables upper-case
- Code fix to make suggestions for an unkown identifier
- Code fix for prefixing or replacing an unused value with an underscore
- Code fix to add the
new
keyword to a disposable type - Code fix to add an
open
statement at the top for a symbol coming from an unopened namespace or module - Code fix to simplify a name by removing unnecessary namespace qualifiers
- Graying out unused values in the editor
- Colorized
fsi.exe
when ran as a standalone console application - ๐ Autocompletion support, including symbols from unopened namespaces
- Colorization for mutable values to distinguish them from immutable values
- ๐ Support for move up/down on solution folder nodes
- ๐ Support for Blue (High Contrast) theming
- ๐ Full support for .NET Core and .NET Standard projects, with the ability to create new ASP.NET Core projects in F#
- ๐ป Full support for ASP.NET Web SDK tooling, such as Azure publish UI, for F# projects
- ๐ Property page auto-sizing support for different monitors
- ๐ Smart indentation support which auto-indents based on scope and auto-deindents for bracket-like characters
- ๐ XML documentation comment width scaling to prevent it running horizontally off the screen
- Multiple settings pages to modify tooling settings
- ๐ Support for Drag and Drop across folders
- ๐ Support for nightly builds of the tools
- Expanded debugger view for lists from 50 items to 5000 items
- ๐ Support for Optimization APIs in the compiler service
- ๐ Support for
IsNameGenerated
in the F# symbols API