diff --git a/.gitignore b/.gitignore
index f0094c069..57c00c713 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,21 +22,8 @@ lib/NUnit*
lib/FsUnit
FSharp.AutoComplete/test/unit/build
-FSharp.AutoComplete/packages
+packages
+.paket/paket.exe
-# Vim
-
-vim/packages
-
-# Emacs
-*.elc
-emacs/deps
-emacs/tmp
-
-# Sublime Text
-*.sublime-workspace
-
-sublimetext/FSharp/fsac/fsac/*.*
-sublimetext/plugin_dev.json
.DS_Store
diff --git a/.paket/paket.bootstrapper.exe b/.paket/paket.bootstrapper.exe
new file mode 100644
index 000000000..1f862639d
Binary files /dev/null and b/.paket/paket.bootstrapper.exe differ
diff --git a/.paket/paket.targets b/.paket/paket.targets
new file mode 100644
index 000000000..22c9f0a87
--- /dev/null
+++ b/.paket/paket.targets
@@ -0,0 +1,38 @@
+
+
+
+
+ true
+
+ true
+ $(MSBuildThisFileDirectory)
+ $(MSBuildThisFileDirectory)..\
+
+
+
+ $(PaketToolsPath)paket.exe
+ $(PaketToolsPath)paket.bootstrapper.exe
+ "$(PaketExePath)"
+ mono --runtime=v4.0.30319 $(PaketExePath)
+ "$(PaketBootStrapperExePath)"
+ mono --runtime=v4.0.30319 $(PaketBootStrapperExePath)
+
+ $(MSBuildProjectDirectory)\paket.references
+ $(MSBuildProjectFullPath).paket.references
+ $(PaketCommand) restore --references-files "$(PaketReferences)"
+ $(PaketBootStrapperCommand)
+
+ RestorePackages; $(BuildDependsOn);
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.travis.yml b/.travis.yml
index 3e4df23bb..ca3aa99e8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,10 +11,9 @@ before_install:
- sudo apt-get update -qq
install:
- - sudo apt-get install -yq emacs24 emacs24-el emacs24-common-non-dfsg
- sudo apt-get install -yq mono-complete nuget
- sudo apt-get install -yq fsharp
script:
- - FSharp.AutoComplete/fake Test
+ - ./build.sh Test
diff --git a/FSharp.AutoComplete/FSharp.AutoComplete.sln b/FSharp.AutoComplete.sln
similarity index 85%
rename from FSharp.AutoComplete/FSharp.AutoComplete.sln
rename to FSharp.AutoComplete.sln
index 2b24b3c86..3b095224d 100644
--- a/FSharp.AutoComplete/FSharp.AutoComplete.sln
+++ b/FSharp.AutoComplete.sln
@@ -1,11 +1,16 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.CompilerBinding", "..\FSharp.CompilerBinding\FSharp.CompilerBinding.fsproj", "{88F6940F-D300-474C-B2A7-E2ECD5B04B57}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{1BE8AF57-B314-4C92-82A9-64CD9B7A4990}"
+ ProjectSection(SolutionItems) = preProject
+ paket.dependencies = paket.dependencies
+ EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.AutoComplete", "FSharp.AutoComplete.fsproj", "{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.CompilerBinding", "FSharp.CompilerBinding\FSharp.CompilerBinding.fsproj", "{88F6940F-D300-474C-B2A7-E2ECD5B04B57}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.AutoComplete", "FSharp.AutoComplete\FSharp.AutoComplete.fsproj", "{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/FSharp.AutoComplete/.nuget/NuGet.targets b/FSharp.AutoComplete/.nuget/NuGet.targets
deleted file mode 100644
index af2e5c9a2..000000000
--- a/FSharp.AutoComplete/.nuget/NuGet.targets
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), "..", "lib", "nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
-
-
-
-
- $(SolutionDir)..\lib\nuget
- packages.config
-
-
-
-
- $(NuGetToolsPath)\NuGet.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
- -NonInteractive
-
- "$(SolutionDir) "
- "$(SolutionDir)"
-
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)
- $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FSharp.AutoComplete/FSharp.AutoComplete.fsproj b/FSharp.AutoComplete/FSharp.AutoComplete.fsproj
index d8570cbe3..33b524e81 100644
--- a/FSharp.AutoComplete/FSharp.AutoComplete.fsproj
+++ b/FSharp.AutoComplete/FSharp.AutoComplete.fsproj
@@ -10,10 +10,9 @@
FSharp.AutoComplete
fsautocomplete
v4.5
- .\
+ ..\
FSharp.InteractiveAutocomplete
False
- true
4.3.0.0
11
@@ -57,13 +56,12 @@
-->
-
-
+
@@ -72,21 +70,33 @@
- ..\lib\ndesk-options\NDesk.Options.dll
+ ..\packages\NDesk.Options\lib\NDesk.Options.dll
+ True
- ..\lib\newtonsoft.json\Newtonsoft.Json.dll
+ ..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ ..\packages\FSharp.Core\lib\net40\FSharp.Core.dll
+ True
+
+
+ ..\packages\FsUnit\Lib\Net40\FsUnit.NUnit.dll
+ True
+
+
+ ..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll
+ True
+
+
+ ..\packages\NUnit\lib\nunit.framework.dll
True
{88F6940F-D300-474C-B2A7-E2ECD5B04B57}
FSharp.CompilerBinding
-
- $(SolutionDir)\packages\FSharp.Compiler.Service.0.0.85\lib\net45\FSharp.Compiler.Service.dll
-
-
\ No newline at end of file
+
+
diff --git a/FSharp.AutoComplete/FSharp.AutoComplete.fsproj.paket.references b/FSharp.AutoComplete/FSharp.AutoComplete.fsproj.paket.references
new file mode 100644
index 000000000..32c9914cb
--- /dev/null
+++ b/FSharp.AutoComplete/FSharp.AutoComplete.fsproj.paket.references
@@ -0,0 +1,6 @@
+FSharp.Compiler.Service
+FSUnit
+NUnit
+NUnit.Runners
+NDesk.Options
+Newtonsoft.Json
\ No newline at end of file
diff --git a/FSharp.AutoComplete/Options.fs b/FSharp.AutoComplete/Options.fs
index c8d9fc5f5..09bd6ab5d 100644
--- a/FSharp.AutoComplete/Options.fs
+++ b/FSharp.AutoComplete/Options.fs
@@ -6,7 +6,7 @@ namespace FSharp.InteractiveAutocomplete
open System
module Version =
- let string = "FSharp.AutoComplete 0.13.3"
+ let string = "FSharp.AutoComplete 0.14.0"
module Options =
diff --git a/FSharp.AutoComplete/README.md b/FSharp.AutoComplete/README.md
index 82787605f..9b9c0d3bc 100644
--- a/FSharp.AutoComplete/README.md
+++ b/FSharp.AutoComplete/README.md
@@ -58,7 +58,3 @@ The structured data returned is able to be richer. Note for example that the out
For further insight into the communication protocol, have a look over the integration tests, which have examples of all the features. Each folder contains one or more `*Runner.fsx` files which specify a sequence of commands to send, and `*.txt` or `*.json` files, which contain the output.
-### Scripts and projects
-
-Currently, intellisense can be offered for any number of scripts and one project at any one time. Intellisense requests are honoured for any script (`.fsx`) file and any `.fs` file for which a project containing it has most recently been loaded using the `project` command. It is an aim to lift this limitation.
-
diff --git a/FSharp.AutoComplete/fake b/FSharp.AutoComplete/fake
deleted file mode 100755
index a83e8c2b5..000000000
--- a/FSharp.AutoComplete/fake
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-cd `dirname $0`
-
-FAKE="packages/FAKE/tools/FAKE.exe"
-
-if [[ ! -e ~/.config/.mono/certs ]];
-then
- mozroots --import --sync --quiet
-fi
-
-if [[ ! -e $FAKE ]];
-then
- mono ../lib/nuget/NuGet.exe "Install" "FAKE" "-OutputDirectory" "packages" "-ExcludeVersion"
-fi
-
-mono $FAKE "$@"
-
diff --git a/FSharp.AutoComplete/fake.cmd b/FSharp.AutoComplete/fake.cmd
deleted file mode 100644
index e4e9621ee..000000000
--- a/FSharp.AutoComplete/fake.cmd
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-
-pushd %~dp0
-
-IF EXIST packages\FAKE\tools\Fake.exe GOTO FAKEINSTALLED
-
-"..\lib\nuget\NuGet.exe" "install" "FAKE" "-OutputDirectory" "packages" "-ExcludeVersion" "-Prerelease"
-
-:FAKEINSTALLED
-
-SET TARGET="All"
-
-IF NOT [%1]==[] (set TARGET="%1")
-
-"packages\FAKE\tools\Fake.exe" "build.fsx" "target=%TARGET%"
-
-popd
-
diff --git a/FSharp.AutoComplete/packages.config b/FSharp.AutoComplete/packages.config
deleted file mode 100644
index 7c773fb9c..000000000
--- a/FSharp.AutoComplete/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/FSharp.CompilerBinding/FSharp.CompilerBinding.fsproj b/FSharp.CompilerBinding/FSharp.CompilerBinding.fsproj
index b06b5b5da..e37a93e08 100644
--- a/FSharp.CompilerBinding/FSharp.CompilerBinding.fsproj
+++ b/FSharp.CompilerBinding/FSharp.CompilerBinding.fsproj
@@ -11,8 +11,7 @@
False
FSharp.CompilerBinding
v4.5
- ..\FSharp.AutoComplete\
- true
+ ..\
4.3.0.0
11
@@ -58,22 +57,25 @@
-
+
+ ..\packages\FSharp.Core\net40\FSharp.Core.dll
True
- ..\lib\mono.cecil\Mono.Cecil.dll
+ ..\packages\Mono.Cecil\lib\net45\Mono.Cecil.dll
+ True
- $(SolutionDir)\packages\FSharp.Compiler.Service.0.0.85\lib\net45\FSharp.Compiler.Service.dll
+ ..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll
+ True
-
+
diff --git a/FSharp.CompilerBinding/packages.config b/FSharp.CompilerBinding/packages.config
deleted file mode 100644
index 4fc28f8b2..000000000
--- a/FSharp.CompilerBinding/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/FSharp.CompilerBinding/paket.references b/FSharp.CompilerBinding/paket.references
new file mode 100644
index 000000000..ea534d5c8
--- /dev/null
+++ b/FSharp.CompilerBinding/paket.references
@@ -0,0 +1 @@
+FSharp.Compiler.Service
\ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
index 7d3169e7b..a67fc21ee 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,12 +1,8 @@
environment:
- EMACSBIN: emacs-24.4-bin-i686-mingw32.7z
FSharpBinding_BlockingTimeout: 1000
FSharpBinding_MaxTimeout: 10000
matrix:
fast_finish: true
-install:
- - ps: Start-FileDownload "http://downloads.sourceforge.net/project/emacs-bin/releases/$env:EMACSBIN"
- - ps: 7z x $env:EMACSBIN -oemacs-local | FIND /V "ing "
build_script:
- - cmd: FSharp.AutoComplete\fake.cmd Test
+ - cmd: fake.cmd Test
test: off
diff --git a/build.cmd b/build.cmd
new file mode 100644
index 000000000..03d70ec28
--- /dev/null
+++ b/build.cmd
@@ -0,0 +1,18 @@
+echo off
+cls
+
+.paket\paket.bootstrapper.exe
+if errorlevel 1 (
+ exit /b %errorlevel%
+)
+
+.paket\paket.exe restore
+if errorlevel 1 (
+ exit /b %errorlevel%
+)
+
+IF NOT EXIST build.fsx (
+ .paket\paket.exe update
+ packages\FAKE\tools\FAKE.exe init.fsx
+)
+packages\FAKE\tools\FAKE.exe build.fsx %*
diff --git a/FSharp.AutoComplete/build.fsx b/build.fsx
similarity index 53%
rename from FSharp.AutoComplete/build.fsx
rename to build.fsx
index 379bd57f6..664eeddbc 100644
--- a/FSharp.AutoComplete/build.fsx
+++ b/build.fsx
@@ -5,17 +5,9 @@ open System
open System.IO
open System.Text.RegularExpressions
-Target "RestorePackages" (fun _ ->
- "packages.config"
- |> RestorePackage (fun p ->
- { p with
- ToolPath = "../lib/nuget/NuGet.exe" })
- )
-
-let buildDir = "./bin/Debug/"
-let buildReleaseDir = "./bin/Release/"
-let integrationTestDir = "./test/integration/"
-let emacsBinDir = "../emacs/bin/"
+let buildDir = "./FSharp.AutoComplete/bin/Debug/"
+let buildReleaseDir = "./FSharp.AutoComplete/bin/Release/"
+let integrationTestDir = "./FSharp.AutoComplete/test/integration/"
Target "BuildDebug" (fun _ ->
MSBuildDebug buildDir "Build" ["./FSharp.AutoComplete.sln"]
@@ -90,85 +82,18 @@ Target "IntegrationTest" (fun _ ->
failwithf "Integration tests failed:\n%s" err
)
-
-Target "BuildEmacs" (fun _ ->
- MSBuildDebug emacsBinDir "Build" ["./FSharp.AutoComplete.sln"]
- |> Log "Build-Output: "
-)
-
-module Emacs =
- let emacsd = "../emacs/"
- let srcFiles = !! (emacsd + "*.el")
-
- let testd = emacsd + "test/"
- let utils = !! (testd + "/test-common.el")
-
- let tmpd = emacsd + "tmp/"
- let bind = emacsd + "bin/"
-
- let exe =
- match buildServer with
- | AppVeyor -> Path.GetFullPath "../emacs-local/bin/emacs.exe"
- | _ -> @"emacs"
-
- let compileOpts =
- [ for f in srcFiles do
- yield sprintf """--batch --eval "(package-initialize)" --eval "(add-to-list 'load-path \"%s\")" --eval "(setq byte-compile-error-on-warn t)" -f batch-byte-compile %s"""
- ((Path.GetFullPath emacsd).Replace(@"\", @"\\").TrimEnd('\\'))
- f ]
-
- let checkDeclareOpts =
- sprintf """--batch --eval "(package-initialize)" --eval "(when (check-declare-directory \"%s\") (kill-emacs 1)))" """
- ((Path.GetFullPath emacsd).Replace(@"\", @"\\").TrimEnd('\\'))
-
- let makeLoad glob =
- [ for f in glob do yield "-l " + f ]
- |> String.concat " "
-
-Target "EmacsTest" (fun _ ->
- if not (Directory.Exists (Path.GetFullPath Emacs.tmpd)) then
- Directory.CreateDirectory Emacs.tmpd |> ignore
- let home = Environment.GetEnvironmentVariable("HOME")
- Environment.SetEnvironmentVariable("HOME", Path.GetFullPath Emacs.tmpd)
-
- let loadFiles = Emacs.makeLoad Emacs.utils
-
- let tests =
- [ yield Emacs.exe, loadFiles + " --batch --eval \"(progn (set-default-coding-systems 'utf-8) (load-packages))\""
- yield Emacs.exe, loadFiles + " --batch -f run-fsharp-unit-tests"
- // AppVeyor doesn't currently run the integration tests
- if buildServer <> AppVeyor then
- yield Emacs.exe, loadFiles + " --batch -f run-fsharp-integration-tests"
- yield! [ for opts in Emacs.compileOpts do yield Emacs.exe, opts ]
- // AppVeyor also fails to run check-declare-directory
- if buildServer <> AppVeyor then
- yield Emacs.exe, Emacs.checkDeclareOpts ]
-
- ProcessTestRunner.RunConsoleTests
- (fun p -> { p with WorkingDir = Emacs.emacsd })
- tests
-
- Environment.SetEnvironmentVariable("HOME", home)
-)
-
Target "Clean" (fun _ ->
- CleanDirs [ buildDir; buildReleaseDir; emacsBinDir ]
+ CleanDirs [ buildDir; buildReleaseDir ]
)
Target "Build" id
Target "Test" id
Target "All" id
-"RestorePackages"
- ==> "BuildDebug"
+"BuildDebug"
==> "Build"
==> "IntegrationTest"
-"RestorePackages"
- ==> "BuildEmacs"
- ==> "EmacsTest"
-
-"EmacsTest" ==> "Test"
"IntegrationTest" ==> "Test"
"BuildDebug" ==> "All"
diff --git a/build.sh b/build.sh
new file mode 100755
index 000000000..4c9d58569
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+set -eu
+set -o pipefail
+
+cd `dirname $0`
+
+
+LOADER=""
+FSIARGS=""
+OS=${OS:-"unknown"}
+if test "$OS" != "Windows_NT"
+then
+ LOADER=mono
+ FSIARGS="-d:MONO"
+fi
+
+"$LOADER" .paket/paket.bootstrapper.exe
+
+[ ! -e ~/.config/.mono/certs ] && mozroots --import --sync --quiet
+
+"$LOADER" .paket/paket.exe restore
+
+"$LOADER" packages/FAKE/tools/FAKE.exe "$@" "$FSIARGS" build.fsx
diff --git a/paket.dependencies b/paket.dependencies
new file mode 100644
index 000000000..e6ab60763
--- /dev/null
+++ b/paket.dependencies
@@ -0,0 +1,11 @@
+source https://www.nuget.org/api/v2/
+
+nuget FSharp.Compiler.Service 0.0.85 framework: >= net45
+nuget FSUnit 1.3.0.1 framework: >= net40
+nuget Mono.Cecil
+nuget NDesk.Options
+nuget NUnit 2.6.3 framework: >= net40
+nuget NUnit.Runners 2.6.3 framework: >= net40
+nuget Newtonsoft.Json
+nuget FAKE
+nuget FSharp.Core 3.0.2
\ No newline at end of file
diff --git a/paket.lock b/paket.lock
new file mode 100644
index 000000000..2662d1776
--- /dev/null
+++ b/paket.lock
@@ -0,0 +1,13 @@
+NUGET
+ remote: https://www.nuget.org/api/v2
+ specs:
+ FAKE (3.31.4)
+ FSharp.Compiler.Service (0.0.85) - framework: >= net45
+ FSharp.Core (3.0.2)
+ FsUnit (1.3.0.1) - framework: >= net40
+ NUnit (>= 2.6.3)
+ Mono.Cecil (0.9.6.1)
+ NDesk.Options (0.2.1)
+ Newtonsoft.Json (6.0.8)
+ NUnit (2.6.3) - framework: >= net40
+ NUnit.Runners (2.6.3) - framework: >= net40