fsharp/vsintegration
..
ItemTemplates
ProjectTemplates
Vsix
shims
src
tests
Directory.Build.props
Directory.Build.targets
Templates.Directory.Build.props
Templates.Directory.Build.targets
readme.md
update-vsintegration.cmd

readme.md

This folder contains projects and tests related to Visual Studio tooling.

src/FSharp.Editor

Top-level project for the Visual F# IDE tools. This project contains the following

  • Interfaces which implement Roslyn workspace APIs
  • Top-level interactions with the F# Compiler Service
  • Logic for handling data in the F# Compiler Service
  • Helpers for interacting with Roslyn APIs
  • Various utilities

In general, if something is implemented here and the logic becomes rather lengthy, it may be a good idea to push that logic down into the F# Compiler Service so that other editors can benefit.

src/FSharp.VS.FSI

F# Interactive implementation.

src/FSharp.UIResources

GUI controls and resources for Visual F# tooling.

src/FSharp.LanguageService

Legacy bindings to the F# Compiler Service. Most of the code paths here are dead, and exist mainly to allow our test suite to extensively test the F# Compiler Service.

src/FSharp.LanguageService.Base

Legacy bits for a base-level, editor-agnostic language service. This code isn't used anywhere else, though.

src/FSharp.ProjectSystem.Base

Legacy bindings to the legacy (and unsupported) MPF project system type in Visual Studio. This code will eventually be deprecated.

src/FSharp.ProjectSystem.FSharp

Legacy project system to handle F# projects targeting the .NET Framework, with some code paths also handling .NET Core. The latter will eventually be factored out, as this code will eventually be deprecated.

src/FSharp.ProjectSystem.PropertyPages

GUI for F# project properties.

tests/Salsa

Legacy tooling for IDE unit tests. Used extensively in tests, hence it still exists.

tests/unittests

IDE unit tests. Some code paths go through bits which aren't ever executed when using F# in Visual Studio, but they do extensively test the F# Compiler Service.

utils/LanguageServiceProfiling

A skeleton command line tool which exercises the F# Compiler Service.

ItemTemplates

Visual Studio item templates for F# projects.

ProjectTemplates

Visual Studio project templates for .NET Framework projects.