Skip to content

Commit d7d6836

Browse files
authored
Merge pull request #116 from vasily-kirichenko/cache-project-response
cache ProjectResponse, invalidate it if project file's last write time changed
2 parents 0ba8b77 + 4c189f4 commit d7d6836

21 files changed

+829
-864
lines changed

FsAutoComplete.sln

Lines changed: 66 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,66 @@
1-
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio 14
3-
VisualStudioVersion = 14.0.24720.0
4-
MinimumVisualStudioVersion = 10.0.40219.1
5-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{1BE8AF57-B314-4C92-82A9-64CD9B7A4990}"
6-
ProjectSection(SolutionItems) = preProject
7-
paket.dependencies = paket.dependencies
8-
EndProjectSection
9-
EndProject
10-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E1A34828-1EA8-44F8-8377-10DCC312EB8B}"
11-
ProjectSection(SolutionItems) = preProject
12-
.gitignore = .gitignore
13-
.travis.yml = .travis.yml
14-
appveyor.yml = appveyor.yml
15-
build.cmd = build.cmd
16-
build.fsx = build.fsx
17-
build.sh = build.sh
18-
LICENSE.md = LICENSE.md
19-
README.md = README.md
20-
RELEASE_NOTES.md = RELEASE_NOTES.md
21-
EndProjectSection
22-
EndProject
23-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{430286DC-C9C0-4EAA-AAED-E72434FD8E34}"
24-
EndProject
25-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete", "src\FsAutoComplete\FsAutoComplete.fsproj", "{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}"
26-
EndProject
27-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Core", "src\FsAutoComplete.Core\FsAutoComplete.Core.fsproj", "{4E4786F3-4566-44E1-8787-91790007F0F6}"
28-
EndProject
29-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Suave", "src\FsAutoComplete.Suave\FsAutoComplete.Suave.fsproj", "{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}"
30-
EndProject
31-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Tests", "test\FsAutoComplete.Tests\FsAutoComplete.Tests.fsproj", "{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}"
32-
EndProject
33-
Global
34-
GlobalSection(SolutionConfigurationPlatforms) = preSolution
35-
Debug|Any CPU = Debug|Any CPU
36-
Release|Any CPU = Release|Any CPU
37-
EndGlobalSection
38-
GlobalSection(ProjectConfigurationPlatforms) = postSolution
39-
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
40-
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Debug|Any CPU.Build.0 = Debug|Any CPU
41-
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Release|Any CPU.ActiveCfg = Release|Any CPU
42-
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Release|Any CPU.Build.0 = Release|Any CPU
43-
{4E4786F3-4566-44E1-8787-91790007F0F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
44-
{4E4786F3-4566-44E1-8787-91790007F0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
45-
{4E4786F3-4566-44E1-8787-91790007F0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
46-
{4E4786F3-4566-44E1-8787-91790007F0F6}.Release|Any CPU.Build.0 = Release|Any CPU
47-
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
48-
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Debug|Any CPU.Build.0 = Debug|Any CPU
49-
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Release|Any CPU.ActiveCfg = Release|Any CPU
50-
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Release|Any CPU.Build.0 = Release|Any CPU
51-
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
52-
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Debug|Any CPU.Build.0 = Debug|Any CPU
53-
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Release|Any CPU.ActiveCfg = Release|Any CPU
54-
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Release|Any CPU.Build.0 = Release|Any CPU
55-
EndGlobalSection
56-
GlobalSection(SolutionProperties) = preSolution
57-
HideSolutionNode = FALSE
58-
EndGlobalSection
59-
GlobalSection(NestedProjects) = preSolution
60-
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88} = {430286DC-C9C0-4EAA-AAED-E72434FD8E34}
61-
EndGlobalSection
62-
GlobalSection(MonoDevelopProperties) = preSolution
63-
StartupItem = FsAutoComplete\FsAutoComplete.fsproj
64-
EndGlobalSection
65-
EndGlobal
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio 14
3+
VisualStudioVersion = 14.0.25420.1
4+
MinimumVisualStudioVersion = 10.0.40219.1
5+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{1BE8AF57-B314-4C92-82A9-64CD9B7A4990}"
6+
ProjectSection(SolutionItems) = preProject
7+
paket.dependencies = paket.dependencies
8+
paket.lock = paket.lock
9+
EndProjectSection
10+
EndProject
11+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E1A34828-1EA8-44F8-8377-10DCC312EB8B}"
12+
ProjectSection(SolutionItems) = preProject
13+
.gitignore = .gitignore
14+
.travis.yml = .travis.yml
15+
appveyor.yml = appveyor.yml
16+
build.cmd = build.cmd
17+
build.fsx = build.fsx
18+
build.sh = build.sh
19+
LICENSE.md = LICENSE.md
20+
README.md = README.md
21+
RELEASE_NOTES.md = RELEASE_NOTES.md
22+
EndProjectSection
23+
EndProject
24+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{430286DC-C9C0-4EAA-AAED-E72434FD8E34}"
25+
EndProject
26+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete", "src\FsAutoComplete\FsAutoComplete.fsproj", "{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}"
27+
EndProject
28+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Core", "src\FsAutoComplete.Core\FsAutoComplete.Core.fsproj", "{4E4786F3-4566-44E1-8787-91790007F0F6}"
29+
EndProject
30+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Suave", "src\FsAutoComplete.Suave\FsAutoComplete.Suave.fsproj", "{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}"
31+
EndProject
32+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsAutoComplete.Tests", "test\FsAutoComplete.Tests\FsAutoComplete.Tests.fsproj", "{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}"
33+
EndProject
34+
Global
35+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
36+
Debug|Any CPU = Debug|Any CPU
37+
Release|Any CPU = Release|Any CPU
38+
EndGlobalSection
39+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
40+
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41+
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Debug|Any CPU.Build.0 = Debug|Any CPU
42+
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Release|Any CPU.ActiveCfg = Release|Any CPU
43+
{B6AB4EF3-8F60-41A1-AB0C-851A6DEB169E}.Release|Any CPU.Build.0 = Release|Any CPU
44+
{4E4786F3-4566-44E1-8787-91790007F0F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45+
{4E4786F3-4566-44E1-8787-91790007F0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
46+
{4E4786F3-4566-44E1-8787-91790007F0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
47+
{4E4786F3-4566-44E1-8787-91790007F0F6}.Release|Any CPU.Build.0 = Release|Any CPU
48+
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
49+
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Debug|Any CPU.Build.0 = Debug|Any CPU
50+
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Release|Any CPU.ActiveCfg = Release|Any CPU
51+
{A4793CEE-5FCB-4660-A6DE-A041C8F4F003}.Release|Any CPU.Build.0 = Release|Any CPU
52+
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
53+
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Debug|Any CPU.Build.0 = Debug|Any CPU
54+
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Release|Any CPU.ActiveCfg = Release|Any CPU
55+
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88}.Release|Any CPU.Build.0 = Release|Any CPU
56+
EndGlobalSection
57+
GlobalSection(SolutionProperties) = preSolution
58+
HideSolutionNode = FALSE
59+
EndGlobalSection
60+
GlobalSection(NestedProjects) = preSolution
61+
{F5EBDD99-5ED7-4311-A5CB-7CFCE696FF88} = {430286DC-C9C0-4EAA-AAED-E72434FD8E34}
62+
EndGlobalSection
63+
GlobalSection(MonoDevelopProperties) = preSolution
64+
StartupItem = FsAutoComplete\FsAutoComplete.fsproj
65+
EndGlobalSection
66+
EndGlobal

paket.dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ nuget NUnit.Runners
1111
nuget Octokit
1212
nuget Suave
1313
nuget FSharpLint.Core prerelease
14-
nuget FSharp.Core
14+
nuget FSharp.Core redirects:on

paket.lock

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,36 @@
1-
REDIRECTS: ON
2-
NUGET
3-
remote: https://www.nuget.org/api/v2
4-
FAKE (4.29)
5-
FParsec (1.0.2)
6-
FSharp.Compiler.Service (3.0)
7-
FSharp.Compiler.Service.ProjectCracker (3.0)
8-
FSharp.Core (4.0.0.1)
9-
FSharpLint.Core (0.3.0-beta)
10-
FParsec
11-
FSharp.Compiler.Service
12-
FSharp.Compiler.Service.ProjectCracker
13-
Microsoft.Bcl (1.1.10) - framework: net10, net11, net20, net30, net35, net40, net40-full
14-
Microsoft.Bcl.Build (>= 1.0.14)
15-
Microsoft.Bcl.Build (1.0.21) - import_targets: false, framework: net10, net11, net20, net30, net35, net40, net40-full
16-
Microsoft.Net.Http (2.2.29) - framework: net10, net11, net20, net30, net35, net40, net40-full
17-
Microsoft.Bcl (>= 1.1.10)
18-
Microsoft.Bcl.Build (>= 1.0.14)
19-
Mono.Cecil (0.9.6.1)
20-
NDesk.Options (0.2.1)
21-
Newtonsoft.Json (8.0.3)
22-
NUnit (3.2.1)
23-
NUnit.ConsoleRunner (3.2.1)
24-
NUnit.Extension.NUnitProjectLoader (3.2.1)
25-
NUnit.Extension.NUnitV2Driver (3.2.1)
26-
NUnit.Extension.NUnitV2ResultWriter (3.2.1)
27-
NUnit.Extension.VSProjectLoader (3.2.1)
28-
NUnit.Runners (3.2.1)
29-
NUnit.ConsoleRunner (3.2.1)
30-
NUnit.Extension.NUnitProjectLoader (3.2.1)
31-
NUnit.Extension.NUnitV2Driver (3.2.1)
32-
NUnit.Extension.NUnitV2ResultWriter (3.2.1)
33-
NUnit.Extension.VSProjectLoader (3.2.1)
34-
Octokit (0.20)
35-
Microsoft.Net.Http - framework: net10, net11, net20, net30, net35, net40, net40-full
36-
Suave (1.1.2)
37-
FSharp.Core (>= 3.1.2.5)
1+
NUGET
2+
remote: https://www.nuget.org/api/v2
3+
FAKE (4.29)
4+
FParsec (1.0.2)
5+
FSharp.Compiler.Service (3.0)
6+
FSharp.Compiler.Service.ProjectCracker (3.0)
7+
FSharp.Core (4.0.0.1)
8+
FSharpLint.Core (0.3.0-beta)
9+
FParsec
10+
FSharp.Compiler.Service
11+
FSharp.Compiler.Service.ProjectCracker
12+
Microsoft.Bcl (1.1.10) - framework: net10, net11, net20, net30, net35, net40, net40-full
13+
Microsoft.Bcl.Build (>= 1.0.14)
14+
Microsoft.Bcl.Build (1.0.21) - import_targets: false, framework: net10, net11, net20, net30, net35, net40, net40-full
15+
Microsoft.Net.Http (2.2.29) - framework: net10, net11, net20, net30, net35, net40, net40-full
16+
Microsoft.Bcl (>= 1.1.10)
17+
Microsoft.Bcl.Build (>= 1.0.14)
18+
Mono.Cecil (0.9.6.1)
19+
NDesk.Options (0.2.1)
20+
Newtonsoft.Json (8.0.3)
21+
NUnit (3.2.1)
22+
NUnit.ConsoleRunner (3.2.1)
23+
NUnit.Extension.NUnitProjectLoader (3.2.1)
24+
NUnit.Extension.NUnitV2Driver (3.2.1)
25+
NUnit.Extension.NUnitV2ResultWriter (3.2.1)
26+
NUnit.Extension.VSProjectLoader (3.2.1)
27+
NUnit.Runners (3.2.1)
28+
NUnit.ConsoleRunner (3.2.1)
29+
NUnit.Extension.NUnitProjectLoader (3.2.1)
30+
NUnit.Extension.NUnitV2Driver (3.2.1)
31+
NUnit.Extension.NUnitV2ResultWriter (3.2.1)
32+
NUnit.Extension.VSProjectLoader (3.2.1)
33+
Octokit (0.20)
34+
Microsoft.Net.Http - framework: net10, net11, net20, net30, net35, net40, net40-full
35+
Suave (1.1.2)
36+
FSharp.Core (>= 3.1.2.5)

src/FsAutoComplete.Core/CommandResponse.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ module CommandResponse =
7070

7171
type ProjectResponse =
7272
{
73-
Project: string
74-
Files: List<string>
73+
Project: ProjectFilePath
74+
Files: List<SourceFilePath>
7575
Output: string
76-
References: List<string>
76+
References: List<ProjectFilePath>
7777
Logs: Map<string, string>
7878
}
7979

0 commit comments

Comments
 (0)