Comments (8)
@CyrusNajmabadi @tmat do you folks happen to know how does roslyn navigate to the external source? Might be good idea for us to properly support it. We'll likely want to do it in following order: show source link if available, then show F# decompilation (or rather high level representation).
from fsharp.
The main piece of logic for navigating to sourcelink sources starts here: https://github.com/dotnet/roslyn/blob/ca66296efa86bd8078508fe7b38b91b415364f78/src/Features/Core/Portable/PdbSourceDocument/PdbSourceDocumentMetadataAsSourceFileProvider.cs#L66
That call comes in via the IMetadataAsSourceFileService.GetGeneratedFileAsync
, which is implemented here, and a File References on that should hopefully reveal where specific features call into it.
from fsharp.
F12 on anything from FSharp.Core or any other .NET library.
VS 17.10 Preview 1
Ugh, again...is it only decompiled metadata?
from fsharp.
Seems so
from fsharp.
It seems to be the issue because roslyn started calling our new IFSharpFindDefinitionService
(related issue: #14675) instead of old service. It will be a bit harder to fix since before we were creating an on-demand metadata document, and now we need to provide a document and span.
from fsharp.
Adding @davidwengier our expert here
from fsharp.
Roslyn does the same basic process (source link, then decompilation, then metadata) but I don't think the decompilation system is extensible for other languages. The Source Link stuff might mostly work, but there are probably some gates on it only being done for C#/VB at the moment. For example, we create a project and rehydrate compilation options from the PDB as part of the process, so that stuff probably just fails.
from fsharp.
Roslyn does the same basic process (source link, then decompilation, then metadata) but I don't think the decompilation system is extensible for other languages. The Source Link stuff might mostly work, but there are probably some gates on it only being done for C#/VB at the moment. For example, we create a project and rehydrate compilation options from the PDB as part of the process, so that stuff probably just fails.
Ah, I see. Could you please point me to Roslyn's implementation? I see if I can make a workaround meanwhile.
from fsharp.
Related Issues (20)
- Making TypeProviders easier: FS3033 needs base exception message HOT 2
- Integral range optimizations in resumable code computation expressions
- [Automated] PRs inserted in VS build main-34927.16
- Cache and reuse full typecheck results between compiler/tooling runs
- GraphBasedChecking fails when exceptions are defined HOT 6
- Move to 1ES SBOM from the one we use in Arcade HOT 4
- [Automated] PRs inserted in VS build feature.debugger.main-34930.149
- Support TailCallAttribute in nested functions HOT 1
- Fix symbol generation for insertions
- Intellisense commiting on characters including `'`, `;`, `"`
- Preprocessor Directives: #elif missing HOT 2
- Split diagnostics into different diagnostic kinds for better user experience
- .fsproj **should not** need to specify individual Compile .fs files HOT 4
- Investigate: Special case Lock type in the lock function HOT 2
- `ContinuousIntegrationBuild` breaks `__SOURCE_DIRECTORY__` HOT 2
- [Automated] PRs inserted in VS build main-35006.68
- [Automated] PRs inserted in VS build main-35006.55
- [Automated] PRs inserted in VS build feature.debugger.main-35006.210
- `FSharpExpr` documentation references nonexistent module
- Can't Use Library From F# (FS1109 System.Drawing)
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.