All Projects → SLaks → Ref12

SLaks / Ref12

Licence: other
Sends F12 in Visual Studio to the new .Net Reference Source Browser

Programming Languages

C#
18002 projects
Visual Basic .NET
514 projects

Projects that are alternatives of or similar to Ref12

Mappinggenerator
🔄 "AutoMapper" like, Roslyn based, code fix provider that allows to generate mapping code in design time.
Stars: ✭ 831 (+993.42%)
Mutual labels:  visual-studio, roslyn
Bridge
♠️ C# to JavaScript compiler. Write modern mobile and web apps in C#. Run anywhere with Bridge.NET.
Stars: ✭ 2,216 (+2815.79%)
Mutual labels:  visual-studio, roslyn
Uno.sourcegeneration
A Roslyn based C# source generation framework
Stars: ✭ 99 (+30.26%)
Mutual labels:  visual-studio, roslyn
Stack Trace Explorer
Stack Trace Explorer is a Visual Studio plug-in that pretty prints a stack trace by turning types, methods, and paths into hyper links
Stars: ✭ 100 (+31.58%)
Mutual labels:  visual-studio, roslyn
Codist
A visual studio extension which enhances syntax highlighting, quick info (tooltip), navigation bar, scrollbar, display quality and brings smart tool bar to code editor.
Stars: ✭ 134 (+76.32%)
Mutual labels:  visual-studio, roslyn
Codeconverter
Convert code from C# to VB.NET and vice versa using Roslyn
Stars: ✭ 432 (+468.42%)
Mutual labels:  visual-studio, roslyn
Roslynator
A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.
Stars: ✭ 2,221 (+2822.37%)
Mutual labels:  visual-studio, roslyn
Visual-Studio
A Discord Rich Presence extension for both Visual Studio 2017 and 2019.
Stars: ✭ 80 (+5.26%)
Mutual labels:  visual-studio, vs-extension
Retyped
Access 3600+ libraries from C# and let Bridge.NET compile your project into JavaScript.
Stars: ✭ 216 (+184.21%)
Mutual labels:  visual-studio, roslyn
Roslyn Security Guard
Roslyn analyzers that aim to help security audit on .NET applications.
Stars: ✭ 214 (+181.58%)
Mutual labels:  visual-studio, roslyn
Seriloganalyzer
Roslyn-based analysis for code using the Serilog logging library. Checks for common mistakes and usage problems.
Stars: ✭ 214 (+181.58%)
Mutual labels:  visual-studio, roslyn
experimental-tools
A bunch of quality refactorings and code fixes that are going to improve your C# development experience in Visual Studio and remove some common pain.
Stars: ✭ 19 (-75%)
Mutual labels:  visual-studio, roslyn
Roslyn
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
Stars: ✭ 15,296 (+20026.32%)
Mutual labels:  visual-studio, roslyn
Community.VisualStudio.Toolkit
Making it easier to write Visual Studio extensions
Stars: ✭ 165 (+117.11%)
Mutual labels:  visual-studio, vs-extension
vscode-theme
A modern, good-looking, productivity-increaser theme for Visual Studio Code
Stars: ✭ 46 (-39.47%)
Mutual labels:  visual-studio
wine vcpp
Using Visual Studio Compiler with Wine
Stars: ✭ 25 (-67.11%)
Mutual labels:  visual-studio
ThunderboltIoc
One of the very first IoC frameworks for .Net that has no reflection. An IoC that casts its services before thunder casts its bolts.
Stars: ✭ 40 (-47.37%)
Mutual labels:  roslyn
xml-semantic-external-parser
A semantic external parser for XML files that can be used together with GMaster, PlasticSCM or SemanticMerge. Supports various XML formats, such as the Visual Studio project format.
Stars: ✭ 15 (-80.26%)
Mutual labels:  visual-studio
ace-jump
Allows for quick movement around the editor screen. Inspired by AceJump for Webstorm and Vim plugin AceJump.
Stars: ✭ 44 (-42.11%)
Mutual labels:  visual-studio
TPFanCtrl2
ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11
Stars: ✭ 28 (-63.16%)
Mutual labels:  visual-studio

Ref12

This Visual Studio extension intercepts the Go To Definition command (F12) and forwards to the new .Net Reference Source Browser. Simply install the extension from the gallery on Visual Studio 2010 or later, place the cursor on any class or member in the .Net framework, and press F12 to see beautiful, hyperlinked source code, complete with original comments (thanks to Kirill Osenkov for his amazing work on this web app). No more "From Metadata" tabs!

Now with VB support!

VB support may be less reliable; I needed to delve more deeply into the undocumented syntax tree APIs and may have missed some cases.
If you notice that F12 isn't working when it should or if it jumps to the wrong method, please file a bug, and include the full line of VB source that you pressed F12 on.

Known Issues

  • The reference source code does not support links to overloaded operators, so F12 on operators is not handled.
  • C#: F12 in Metadata as Source tabs (from assemblies without source) does not work on VS2012 or 2010. I can't find any way to get the compilation for these tabs from the language service.
  • VB: Type inference on lambda expression parameters does not work; inferred parameters will be incorrectly resolved to Object. This muight be solvable by binding the parent SyntaxNode and walking down the bound tree.
  • VB: F12 on attribute properties does not work. I cannot find any way to resolve them to symbols.
  • VB: F12 on As New constructor references does not work.

Implementation

This extension uses undocumented APIs from the native C# language services to find the RQName of the identifier under the cursor, checks if it's defined in an assembly included in the Reference Source (list), and opens the correct URL in a browser.

It uses MEF to import IReferenceSourceProvider instances that can navigate to members in specific assemblies; you can export implementations of this interface to add other external source providers.

To allow classes to inherit types in unversioned assemblies, the native VB implementation is in a separate Ref12.Unversioned assembly, so that I can add my AssemblyResolve handler without MEF trying to load those types.

Because Roslyn references newer versions of the VS editor assemblies, the Roslyn ISymbolResolver implementation lives in a separate assembly, to avoid compiler version conflicts. This assembly is loaded at runtime if Roslyn is detected. This also includes a Roslyn DLL file which is not (yet?) available on NuGet, but which is required to get a Document from a TextBuffer.

Pull requests welcome

F12 to .Net Reference Source

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].