Switch branches/tags
vs-mac-preview3 vs-mac-preview2 vs-mac-preview1 roslyn-preview-4 roslyn-preview-3 roslyn-preview-2 roslyn-preview-1 monodevelop-7.6.0.1760 monodevelop-7.6.0.947 monodevelop-7.6.0.711 monodevelop-7.5.3.7 monodevelop-7.5.2.40 monodevelop-7.5.1.22 monodevelop-7.5.0.1254 monodevelop-7.5.0.1244 monodevelop-7.5.0.1222 monodevelop-7.5.0.1161 monodevelop-7.5.0.1062 monodevelop-7.5.0.933 monodevelop-7.5.0.646 monodevelop-7.4.3.10 monodevelop-7.4.3.8 monodevelop-7.4.2.12 monodevelop-7.4.1.48 monodevelop-7.4.0.1033 monodevelop-7.4.0.1026 monodevelop-7.4.0.1003 monodevelop-7.4.0.985 monodevelop-7.4.0.884 monodevelop-7.4.0.839 monodevelop-7.4.0.837 monodevelop-7.3.3.23 monodevelop-7.3.3.17 monodevelop-7.3.3.12 monodevelop-7.3.3.7 monodevelop-7.3.3.5 monodevelop-7.3.2.12 monodevelop-7.3.0.799 monodevelop-7.3.0.790 monodevelop-7.3.0.764 monodevelop-7.3.0.708 monodevelop-7.3.0.692 monodevelop-7.3.0.645 monodevelop-7.2.2.11 monodevelop-7.2.0.636 monodevelop-7.2.0.627 monodevelop-7.2.0.617 monodevelop-7.2.0.583 monodevelop-7.2.0.540 monodevelop-7.2.0.487 monodevelop-7.2.0.235 monodevelop-7.1.5.2 monodevelop-7.1.3.41 monodevelop-7.1.3.1 monodevelop-7.1.0.1297 monodevelop-7.1.0.1294 monodevelop-7.1.0.1291 monodevelop-7.1.0.1289 monodevelop-7.1.0.1287 monodevelop-7.1.0.1281 monodevelop-7.1.0.1278 monodevelop-7.1.0.1277 monodevelop-7.1.0.1276 monodevelop-7.1.0.1272 monodevelop-7.1.0.1267 monodevelop-7.1.0.1258 monodevelop-7.1.0.1178 monodevelop-7.1.0.583 monodevelop-7.0.1.24 monodevelop-7.0.0.3146 monodevelop-7.0.0.3143 monodevelop-7.0.0.3051 monodevelop-7.0.0.2943 monodevelop-7.0.0.2845 monodevelop-7.0.0.2770 monodevelop-7.0.0.2740 monodevelop-7.0.0.2715 monodevelop-6.3.0.864 monodevelop-6.3.0.863 monodevelop-6.3.0.858 monodevelop-6.3.0.834 monodevelop-6.3.0.731 monodevelop-6.2.1.3 monodevelop-6.2.0.1829 monodevelop-6.2.0.1821 monodevelop-6.2.0.1812 monodevelop-6.2.0.1809 monodevelop-6.2.0.1798 monodevelop-6.2.0.1778 monodevelop-6.2.0.1757 monodevelop-6.2.0.1718 monodevelop-6.2.0.1701 monodevelop-6.2.0.1686 monodevelop-6.2.0.1515 monodevelop-6.2.0.1499 monodevelop-6.2.0.1483 monodevelop-6.2.0.1413 monodevelop-6.2.0.1369 monodevelop-6.2.0.1358 monodevelop-6.2.0.1311
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
.nuget Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
.paket Fixes issue #4670 [Linux] Monodevelop fsharpbinding doesn't compile Apr 25, 2018
MonoDevelop.FSharp.Gui Merge pull request #5679 from mono/fsharp-msbuild-props-cleanup Aug 13, 2018
MonoDevelop.FSharp.Shared [F#] Add an ofType<'T> helper Aug 15, 2018
MonoDevelop.FSharp.Tests [F#] Hack around forms template bug breaking tests Aug 16, 2018
MonoDevelop.FSharpBinding [F#] Review style feedback Aug 15, 2018
MonoDevelop.FSharpi.Service [F#] Remove redundant msbuild props Aug 13, 2018
.gitattributes Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
.gitignore [F#] Script to generate quick build F# projects Mar 13, 2017
LICENSE.md Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
MonoDevelop.FSharp.sln [F#] Only show Debug F# script menu for F# files. May 3, 2017
README.md Update the F# binding README.md deleting old stuff (#3748) Jan 28, 2018
build.cmd Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
build.fsx Fix build script to allow for no AssemblyName in project files Jul 9, 2018
build.sh Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
launch.bat Add 'main/external/fsharpbinding/' from commit 'adbbc710b4d688a2625c6… Oct 5, 2016
paket.dependencies F# bump for SRM and SCI Aug 4, 2018
paket.lock F# bump for SRM and SCI Aug 4, 2018

README.md

F# Language Support for MonoDevelop / Xamarin Studio

This project contains advanced editing support for the F# addin in MonoDevelop, Xamarin Studio and Visual Studio for Mac.

##Features

  • Code completion
  • Syntax highlighting
  • Tooltips
  • Debugging
  • F# Interactive scripting (Alt-Enter execution)
  • Templates (Console Application, Library, Tutorial Project, Gtk Project, iOS, Android)
  • more...

Prerequisites

To use F# language support please ensure that you have F# installed on your system, for details on this please see http://fsharp.org

Installation

This addin is included by default for MonoDevelop/Xamarin Studio/Visual Studio for Mac.

Building and installing from scratch

This code is directly part of the monodevelop repository so the easiest ways of building is to clone monodevelop and work in the submodule directly:

git clone git@github.com:mono/monodevelop --recursive
cd monodevelop
./configure
make

Can't get it to work?

Don't give up! Add an issue to this repository. Your issue will be seen by the developers.

Notes on Manual Testing (old instructions, unverified)

To check things are working try a few different things somewhat at random:

  • Check the F# templates are appearing
  • Create a console project (NOTE: retarget it to .NET 4.0 using right-click->options->General)
  • Check there are completion lists in the console project e.g. for 'System.' and 'System.Console.WriteLine(' and 'List.'
  • Check you can build the console project
  • Check you can run the console project
  • Check you can "debug-step-into" the console project
  • Check you can set a break point in the console project
  • Check there are type tips showing when you move the mouse over code identifiers
  • Load an existing .fsproj (e.g. see MonoDevelop.FSharpBinding/tests/projects/...) and check if completion works etc.
  • Run msbuild on a few .fsproj (this is nothing to do with the binding, it is just fsharp/fsharp)

Debugging Tips (old instructions, unverified)

To be able to debug the add-in in Xamarin Studio or Monodevelop, invoke ./configure.sh --debug or configure.bat --debug. This adds the necessary .mdb files to the add-in. When configured with --debug you can simply Start debugging in Xamarin Studio. This will launch a debugged instance of Xamarin Studio.

On Mac, if you make changes to the add-in after debugging, you will need to restart Xamarin Studio or MonoDevelop before rebuilding.

Note that you can not build the add-in in release mode when configured with --debug. To build a release build, first ./configure.sh without --debug

On Mac/Linux, if you make changes to the binding, then loss of completion lists etc. can be disturbing and hard to debug. There are some debugging techniques. To launch MonoDevelop you can use the command:

/Applications/MonoDevelop.app/Contents/MacOS/MonoDevelop --new-window --no-redirect

or this command for Xamarin Studio:

"/Applications/Xamarin Studio.app/Contents/MacOS/XamarinStudio" --new-window --no-redirect

to enable some logging you can use

export FSHARPBINDING_LOGGING=*

On Windows you can generally use Visual Studio to help develop the binding. You can start Xamarin Studio or MonoDevelop under the debugger using the normal technique:

devenv /debugexe "c:\Program Files (x86)\Xamarin Studio\bin\XamarinStudio.exe"

Building the addin separately (old instructions, unverified)

To configure and compile the addin seperately then the following commands can be executed from the addin directory (/main/external/fsharpbining if cloning as part of monodevelop)

./configure.sh 
make 
make install

If MonoDevelop is installed in an unusual prefix you will need to invoke configure.sh with e.g. --prefix=/path/to/prefix/lib/monodevelop. Use ./configure.sh --help to see a list of the paths searched by default.

If you subsequently make changes to the add-in, you will need to make install again and restart MonoDevelop/Xamarin Studio.

The first time you make install the AddIn you'll override Xamarin's official one and it will initially be set to disabled, so you need to go to the AddIn manager and ensure the F# AddIn is enabled.

Note: One thing to check is the the version specified in configure.fsx is higher than the pre-installed version, if it's not then the local addin will not be loaded.

For reference on Mac the locally installed addin is at the following location: /Users/<username>/Library/Application Support/XamarinStudio-6.0/LocalInstall/AddIns/fsharpbinding/<version>

Build on Windows (old instructions, unverified, builds and installs the Debug version into Xamarin Studio - adjust as needed)

configure.bat
build-and-install-debug.bat

If you subsequently make changes to the add-in, you will need to build-and-install-debug.bat again and restart MonoDevelop/Xamarin Studio.

For more information about F# see The F# Software Foundation. Join The F# Core Engineering Group.