Comments (11)
One concern is that this approach still won't work for mixed-language solutions.
Presumably in XS and Roslynified-VS the idea is to draw cross-project metadata from the symbol APIs provided by the IDE. But that's a big change for FCS.
I suppose enabling single -language cross-project in FCS is still the best thing to do (particularly for F# projects that have a corresponding unit test project, for example)
from fsharp-compiler-docs.
In XS this would be done be creating a larger NRefactory bridge from the data FCS returns. Building up from compilation units etc.
from fsharp-compiler-docs.
It would be nice if symbol requests for different project were aggregated inside FCS, so that a symbol retrieved from project a could be searched for in project b.
from fsharp-compiler-docs.
Right, but we'd also need the other way around - take NRefactory information and feed it into the F# compiler (a bit like a type provider, actually, and the same codepaths could possibly be used). But its a big change to do this, and in any case cross-language metadata is not yet readily available in VS AFAIK.
Adding F#-to-F# project references to FCS is much more tractable though.
from fsharp-compiler-docs.
As far as XS is concerned NRefactory its supposed to be a language neutral way of storing all that information, csc is used to fill NRefactory with the C# symbol information.
I think the will be a certain gap in services once you try to bridge different IDE's like XS and VS due the the mechanisms involved internally etc.
from fsharp-compiler-docs.
Im not sure if spending time building it is worth it. Cant the symbol finder simply be called once for each project?
from fsharp-compiler-docs.
One step at a time. I think enabling F# cross-project analysis is already useful in a lot of use cases.
from fsharp-compiler-docs.
Yes, but what Im saying is, can't you do that with the current FCS, get the symbols from each project and search them.
from fsharp-compiler-docs.
It's doable with current FCS but delegating multi-project analysis to FCS could probably give better performance and incrementality. And it's an IDE-agnostic process which benefits all the clients :).
I understand the concern about mismatch between different IDEs in handling cross-language solutions though.
from fsharp-compiler-docs.
@7sharp9 It's only doable with the current service if compiled DLLs exist for the cross-project references. This also adds an extra level of (largely hidden) state for the user.
from fsharp-compiler-docs.
Some initial support for cross-project references has been added to FCS in 0.0.30.
See “Analyzing multiple projects” in http://fsharp.github.io/FSharp.Compiler.Service/project.html
from fsharp-compiler-docs.
Related Issues (20)
- First interactive prompt is printed prematurely on --use:x.fsx
- [Meta] Can't disable appveyor builds for this repo HOT 3
- How to use interpolated strings with FSharp.Compiler.Service (37.0)? HOT 2
- Driver.compileOfAst fails on Xamarin.Mac due to reference to .NET Core HOT 3
- how to set __SOURCE_DIRECTORY__ , File and TopLine on FsiEvaluationSession HOT 2
- FCS update? HOT 7
- Testhost.exe in Azure DevOps on Prime Pipeline hangs after switch from 36.0.3 to 37.0.0 version
- FCS v38.0 fails with the official sample in net472 app HOT 4
- Unable to find package 'FSharp.Compiler.Service.MSBuild.v12.0'
- Expression tree with anonymous type created incorrectly HOT 1
- FSharpCompilerService not working on .NETCore 3.1.12 due to mismatch version of the App ref directory HOT 1
- a syntax highlighter for fslex, fsyacc, F#
- TypeInitializationException in GetProjectOptionsFromScript in published console application HOT 4
- This repo now contains a doc build for FSharp.Compiler.Service
- Doc warnings
- Strict build of docs
- Broken links on docs homepage HOT 4
- Docs are broken, may be fixed by fsdocs 16.1.0 HOT 1
- `nativeint` docs 404 HOT 1
- Product-specific changelogs aren't rendered helpfully in the nav HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fsharp-compiler-docs.