Landing repo for discussions, issues, and wiki for https://ref12.io.
ref12.io is a replacement/successor to https://referencesource.microsoft.com, http://sourceroslyn.io, https://source.dot.net, and other sites generated by SourceBrowser. Though they serve a similar function, Ref12's architecture and backend are completely different.
To browse source, simply open https://ref12.io in your browser. By default, you can navigate the dotnet/runtime and other assorted repos currently found in https://source.dot.net. A much larger set of repos is available to sponsors. Our sponsors can also request other public repos to be added to the index. NOTE: Login is required for sponsors to view the full set of repos. See full list here.
Currently, indexing private repositories is not supported.
Contact us if you're interested in self-hosting the ReF12 engine on-prem for your private enterprise. We provide a license and paid support. Your private source code stays hosted on your infrastructure.
- Semantic analysis of C#, VB, and MSBuild
- Syntax coloring for C#, VB, MSBuild, XML
- Scope to a repo using format https://ref12.io/{owner}/{repository} (i.e https://ref12.io/dotnet/wpf)
- Go To Definition (click on a reference)
- Find All References (click on a definition)
- Project Explorer - in any document click on the Project link at the bottom
- Document Outline - for a document click on the button in top right to display types and members in the current file
- Clicking on the partial keyword will display a list of all files where this type is declared
- MSBuild files (.csproj etc) have hyperlinks
Indexing happens in two phases: Analysis and Ingestion. During analysis, C#/VB source files are analyzed using Roslyn and files are generated containing the extracted semantic information. These files are typically packaged into a zip file and ingested elsewhere. During ingestion, the analysis files are loaded an their information is added to a custom database. The database is used to satisfy all queries. The database format allows it to be queried in a serverless manner using WASM but this is untenable for larger codebases or aggregations of codebases.
Indexing is incremental. Many repos can be analyzed and ingested at different times.
- Analysis requires a successful build of projects or successful extraction of compilation using Roslyn MSBuildWorkspace.