Browse Source

F# interactive window now uses F# 3.0 if it is installed.

pull/42/head
Matt Ward 12 years ago
parent
commit
fc15017104
  1. 21
      src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs

21
src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs

@ -46,9 +46,8 @@ namespace FSharpBinding @@ -46,9 +46,8 @@ namespace FSharpBinding
fsiProcess.StartInfo.FileName = Path.Combine(path, "fsi.exe");
foundCompiler = true;
} else {
string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
path = Path.Combine(programFiles, @"Microsoft F#\v4.0\Fsi.exe");
if (File.Exists(path)) {
path = FindFSharpInteractiveInProgramFilesFolder();
if (path != null) {
fsiProcess.StartInfo.FileName = path;
foundCompiler = true;
} else {
@ -91,6 +90,22 @@ namespace FSharpBinding @@ -91,6 +90,22 @@ namespace FSharpBinding
}
}
string FindFSharpInteractiveInProgramFilesFolder()
{
var fileNames = new string [] {
@"Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe",
@"Microsoft F#\v4.0\Fsi.exe"
};
return FindFirstMatchingFileInProgramFiles(fileNames);
}
string FindFirstMatchingFileInProgramFiles(string[] fileNames)
{
string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
return fileNames.Select(fileName => Path.Combine(programFiles, fileName))
.FirstOrDefault(fullPath => File.Exists(fullPath));
}
void StartFSharp()
{
fsiProcess.Start();

Loading…
Cancel
Save