diff --git a/.gitignore b/.gitignore
index a77a4fc..c0d82f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
*.sln.docstates
*.ide/
*.ide
+*.vs/
SB_Files/
GithubStaging/
diff --git a/src/SourceBrowser.Generator/App.config b/src/SourceBrowser.Generator/App.config
index 8e15646..c8cc771 100644
--- a/src/SourceBrowser.Generator/App.config
+++ b/src/SourceBrowser.Generator/App.config
@@ -1,6 +1,26 @@
-
+
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs b/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
index e8c76ae..704571f 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
@@ -29,13 +29,13 @@ internal CSWalkerUtils(DocumentWalker walker)
public string LocalVariableDelimiter { get; } = CSharpDelimiters.LOCAL_VARIABLE;
- public string GetFullName(SyntaxToken token) => token.CSharpKind().ToString();
+ public string GetFullName(SyntaxToken token) => token.Kind().ToString();
- public bool IsIdentifier(SyntaxToken token) => token.CSharpKind() == SyntaxKind.IdentifierToken;
+ public bool IsIdentifier(SyntaxToken token) => token.Kind() == SyntaxKind.IdentifierToken;
public bool IsKeyword(SyntaxToken token) => token.IsKeyword();
- public bool IsLiteral(SyntaxToken token) => token.CSharpKind() == SyntaxKind.StringLiteralToken;
+ public bool IsLiteral(SyntaxToken token) => token.Kind() == SyntaxKind.StringLiteralToken;
public override void VisitToken(SyntaxToken token) => _walker.VisitToken(token);
}
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs b/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
index a44fe93..09a2e8d 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
@@ -5,6 +5,7 @@
using SourceBrowser.Generator.Model;
using SourceBrowser.Generator.Extensions;
using Microsoft.CodeAnalysis.FindSymbols;
+using Microsoft.CodeAnalysis.CSharp;
namespace SourceBrowser.Generator.DocumentWalkers
{
@@ -81,7 +82,7 @@ private ICollection ProcessTrivia(SyntaxTriviaList triviaList)
{
var triviaModelList = triviaList.Select(n => new Trivia(
value: n.ToFullString(),
- type: n.CSharpKind().ToString()
+ type: n.Kind().ToString()
)).ToList();
return triviaModelList;
@@ -92,7 +93,7 @@ private ICollection ProcessTrivia(SyntaxTriviaList triviaList)
///
private Token ProcessOtherToken(SyntaxToken token)
{
- string fullName = token.CSharpKind().ToString();
+ string fullName = token.Kind().ToString();
string value = token.ToString();
string type = _walkerUtils.OtherTokenTypeName;
int lineNumber = token.GetLocation().GetLineSpan().StartLinePosition.Line + 1;
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs b/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
index 4f2a6cf..68c9011 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
@@ -29,13 +29,13 @@ internal VBWalkerUtils(DocumentWalker walker)
public string LocalVariableDelimiter { get; } = VBDelimiters.LOCAL_VARIABLE;
- public string GetFullName(SyntaxToken token) => token.CSharpKind().ToString();
+ public string GetFullName(SyntaxToken token) => token.Kind().ToString();
- public bool IsIdentifier(SyntaxToken token) => token.VBKind() == SyntaxKind.IdentifierToken;
+ public bool IsIdentifier(SyntaxToken token) => token.Kind() == SyntaxKind.IdentifierToken;
public bool IsKeyword(SyntaxToken token) => token.IsKeyword();
- public bool IsLiteral(SyntaxToken token) => token.VBKind() == SyntaxKind.StringLiteralToken;
+ public bool IsLiteral(SyntaxToken token) => token.Kind() == SyntaxKind.StringLiteralToken;
public override void VisitToken(SyntaxToken token) => _walker.VisitToken(token);
}
diff --git a/src/SourceBrowser.Generator/SolutionAnalyzer.cs b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
index 16369a1..8f21de0 100644
--- a/src/SourceBrowser.Generator/SolutionAnalyzer.cs
+++ b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
@@ -16,25 +16,40 @@
using SourceBrowser.Generator.Extensions;
using SourceBrowser.Generator.Model;
using SourceBrowser.Generator.DocumentWalkers;
+using Microsoft.DotNet.ProjectModel.Workspaces;
namespace SourceBrowser.Generator
{
public class SolutionAnalayzer
{
- MSBuildWorkspace _workspace;
+ public bool WorkspaceFailed { get; set; }
+ Workspace _workspace;
Solution _solution;
private ReferencesourceLinkProvider _refsourceLinkProvider = new ReferencesourceLinkProvider();
- public SolutionAnalayzer(string solutionPath)
+ public static SolutionAnalayzer FromSolutionPath(string solutionPath)
{
- _workspace = MSBuildWorkspace.Create();
- _workspace.WorkspaceFailed += _workspace_WorkspaceFailed;
- _solution = _workspace.OpenSolutionAsync(solutionPath).Result;
+ var workspace = MSBuildWorkspace.Create();
+ var soln = workspace.OpenSolutionAsync(solutionPath).Result;
+ return new SolutionAnalayzer(workspace);
+ }
+
+ public static SolutionAnalayzer FromProjectJsonPaths(string[] projectJsonPaths)
+ {
+ var projectJsonWorkspace = new ProjectJsonWorkspace(projectJsonPaths);
+ return new SolutionAnalayzer(projectJsonWorkspace);
+ }
+
+ private SolutionAnalayzer(Workspace workspace)
+ {
+ _workspace = workspace;
+ _solution = workspace.CurrentSolution;
_refsourceLinkProvider.Init();
}
private void _workspace_WorkspaceFailed(object sender, WorkspaceDiagnosticEventArgs e)
{
+ WorkspaceFailed = true;
try
{
var logDirectory = System.Web.Hosting.HostingEnvironment.MapPath("/WorkspaceLogs/");
@@ -89,6 +104,7 @@ private void buildDocumentModel(WorkspaceModel workspaceModel, Document document
containingFolder.Children.Add(documentModel);
}
+
private IProjectItem findDocumentParent(WorkspaceModel workspaceModel, Document document)
{
IProjectItem currentNode = workspaceModel;
diff --git a/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj b/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
index e614bf7..f0edf7c 100644
--- a/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
+++ b/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
@@ -9,8 +9,9 @@
Properties
SourceBrowser.Generator
SourceBrowser.Generator
- v4.5
+ v4.6.1
512
+
AnyCPU
@@ -35,50 +36,39 @@
-
- False
- ..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.dll
-
-
- False
- ..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.dll
-
-
- False
- ..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll
-
-
- False
- ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
+
+ ..\packages\Microsoft.CodeAnalysis.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.dll
+ True
-
- ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll
+
+ ..\packages\Microsoft.CodeAnalysis.CSharp.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.dll
+ True
-
- False
- ..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Desktop.dll
+
+ ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
+ True
-
- False
- ..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll
+
+ ..\packages\Microsoft.CodeAnalysis.VisualBasic.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll
+ True
-
- False
- ..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Desktop.dll
+
+ ..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll
+ True
-
- False
- ..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll
+
+ ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll
+ True
-
- ..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll
+
+ ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll
+ True
-
- False
- ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll
+
+ ..\lib\Microsoft.DotNet.ProjectModel.dll
-
- ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll
+
+ ..\lib\Microsoft.DotNet.ProjectModel.Workspaces.dll
False
@@ -86,15 +76,35 @@
-
+
+ ..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll
+ True
+
+
+ ..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll
+ True
+
+
+ ..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll
+ True
+
+
+ ..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll
+ True
+
+
+ ..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll
+ True
+
+
+ ..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll
True
- ..\packages\System.Collections.Immutable.1.1.32-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
-
- False
- ..\packages\System.Reflection.Metadata.1.0.17-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll
+
+ ..\packages\System.Reflection.Metadata.1.1.0\lib\dotnet5.2\System.Reflection.Metadata.dll
+ True
@@ -148,6 +158,10 @@
SourceBrowser.Search
+
+
+
+