Ionide

A Visual Studio Code package suite for cross platform F# development.

Introduction

F# Development

Ionide includes all the necessary features you’d find in a modern IDE - autocomplete, tooltips, document formatting, syntax and error highlighting, and many more.

F# Interactive

With FSI as a part of the editor, you can run F# scripts easily for fast feedback and iteration.

Project Scaffolding

The Forge makes creating new projects quick and simple. Feature supported only in VSCode.

Paket Integration

Integration with the widely used and universally loved package manager (created by the F# community) Paket allows for easy management of application dependencies, with none of the headaches of trying use NuGet with a version control system.

FAKE Integration

Integration with the gold standard of .NET build tools, FAKE (also created by the F# community) lets you run build targets within the comfort of the Atom Editor and Visual Studio Code.

Features

Features

More detailed documentation is available at http://ionide.io/docs (Work In Progress)

F# IDE

  • Syntax highlighting
  • Error highlighting
  • Autocomplete
  • Tooltips
  • Quick Info Toolbar
  • Usages highlighting
  • F# Interactive (REPL) panel
  • Go-to declaration
  • Finding symbols in file
  • Go-to any symbol in solution
  • Rename
  • Find usages
  • Peak View declaration
  • CodeLens feature showing type signatures
  • CodeOutline tree view
  • Listing all errors in workspace
  • Building using msbuild / xbuild
  • Integration with .Net Core
  • Project explorer tree view
  • Debugging
  • Record stub generation
  • Union pattern case generation

F# Project management

  • Integration with Forge
  • Possibility to create new empty solutions or projects (multiple templates for most popular project types)
  • Adding, removing, ordering files in project
  • Adding and removing project references

Paket integration

  • Paket initialization
  • Adding, installing, updating packages from solution or current project (allows the choice of package version)
  • Removing packages from solution or current project
  • Converting from NuGet, simplify dependency graph, turning on auto-restore for solution.
  • Listing outdated packages

FAKE integration

  • Running any build target defined in FAKE build script
  • Running default FAKE target

MSBuild/XBuild integration

  • Build/Clean/Rebuild the current project
  • Build/Clean/Rebuild any project in the current workspace
  • Works with the most recent version of msbuild/xsbuild on your system, or supply your own
Getting Started

Requirements

  • F# (Windows) - Easiest way to install latest versions of F# on Windows is using VS Build Tools 2017. If you use VS 2017, make sure that you’ve installed workload adding F# support.

  • F# (Linux/MacOS) - F# on non-Windows platform is distributed as part of the mono. Installation guide and recent version of mono can be found on the project webpage and on the F# Software Foundation “Use on Linux” page

  • .Net Core SDK - .Net Core is modern, cross platform implementation of .Net Framework. Ionide is requiring it for set of features such as project modifications or debugging. The core part of SDK is dotnet CLI tool that provides easy way to create, build and run F# projects. What’s important - the dotnet tool can be used also to create applications targeting also Full Framewok (like net461). For detailed instructions on installing .Net Core visit official step-by-step installation guide

  • VSCode C# plugin (optional) - Ionide’s debugging capabilities relies on the debugger provided by Omnisharp team. To get it install C# extension from VSCode marketplace

  • MsBuild 2015 (Windows only, optional) - For old, verbose .fsproj files on Windows MsBuild 2015 (14.0) needs to be additionally installed. You can download it here. However, we highly recommend using new, SDK-based project files.

Support

Need Help?

Don’t hesitate to ask questions using the following channels, or to submit a pull request!

GitHub Issues

The GitHub pages for each plugin are good place to ask questions, find answers, and report issues.

Ionide-Project Gitter

Join the chat at https://gitter.im/ionide/ionide-project

Ask a question, make a suggestion, or just chat with other Ionide users.

Twitter

https://twitter.com/ionideProject

Contribute

Contribute

Ionide is an open source project hosted on GitHub
We accept Pull Requests, new features proposals and any suggestions on how we can make Ionide better!

Sponsors

Our Sponsors

drawing

Ionide couldn’t be created without support of Lambda Factory. If you’d be interested in rich F# test integration check out our VSCode plugin - Neptune.

If your company would be interested in supporting development of Ionide, or acquiring commercial support sent us email - lambda_factory@outlook.com