public void GenericClassNameWithoutDirectGenericNameSyntaxInLine() { var code = @"using System; using System.Collections.Generic; class C { void M() { var test = new List<int>(); test.Add(0); } } "; SyntaxTree tree = CSharpSyntaxTree.ParseText(code); var compilation = CSharpCompilation.Create("HelloWorld") .AddReferences( MetadataReference.CreateFromFile( typeof(object).Assembly.Location)) .AddSyntaxTrees(tree); var model = compilation.GetSemanticModel(tree); var span = tree.GetText().Lines[7].Span; var root = (CompilationUnitSyntax)tree.GetRoot(); var allNodes = root.DescendantNodesAndSelf(); var lineNodes = root.DescendantNodesAndSelf(span); var nodeHelperInstance = new NodeHelpers(model); var genericName = nodeHelperInstance.GetClassNameUsedAsGenericParameter(lineNodes, allNodes); Assert.Equal("Int32", genericName); }
public override IEnumerable <Node> GetReachableNodes() { if (!Anchored) { yield break; } if (IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID == GridId.Invalid) { yield break; // No funny nodes in spess. } var entMan = IoCManager.Resolve <IEntityManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID); var gridIndex = grid.TileIndicesFor(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).Coordinates); var nodes = NodeHelpers.GetCardinalNeighborNodes(entMan, grid, gridIndex, includeSameTile: false); foreach (var(_, node) in nodes) { if (node is CableTerminalNode) { yield return(node); } } }
public override IEnumerable <Node> GetReachableNodes() { if (!Anchored) { yield break; } var entMan = IoCManager.Resolve <IEntityManager>(); // If we're in an invalid grid, such as grid 0, we cannot connect to anything. if (!IoCManager.Resolve <IMapManager>().TryGetGrid(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID, out var grid)) { yield break; } var gridIndex = grid.TileIndicesFor(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).Coordinates); foreach (var node in NodeHelpers.GetNodesInTile(entMan, grid, gridIndex)) { if (node is CableNode) { yield return(node); } } }
public override IEnumerable <Node> GetReachableNodes(TransformComponent xform, EntityQuery <NodeContainerComponent> nodeQuery, EntityQuery <TransformComponent> xformQuery, IMapGrid?grid, IEntityManager entMan) { if (!xform.Anchored || grid == null) { yield break; } var gridIndex = grid.TileIndicesFor(xform.Coordinates); var dir = xform.LocalRotation.GetDir(); var targetIdx = gridIndex.Offset(dir); foreach (var node in NodeHelpers.GetNodesInTile(nodeQuery, grid, targetIdx)) { if (node is CableTerminalPortNode) { yield return(node); } } foreach (var node in base.GetReachableNodes(xform, nodeQuery, xformQuery, grid, entMan)) { yield return(node); } }
public override IEnumerable <Node> GetReachableNodes() { if (!Anchored) { yield break; } var entMan = IoCManager.Resolve <IEntityManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID); var gridIndex = grid.TileIndicesFor(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).Coordinates); // While we go over adjacent nodes, we build a list of blocked directions due to // incoming or outgoing wire terminals. var terminalDirs = 0; List <(Direction, Node)> nodeDirs = new(); foreach (var(dir, node) in NodeHelpers.GetCardinalNeighborNodes(entMan, grid, gridIndex)) { if (node is CableNode && node != this) { nodeDirs.Add((dir, node)); } if (node is CableDeviceNode && dir == Direction.Invalid) { // device on same tile nodeDirs.Add((Direction.Invalid, node)); } if (node is CableTerminalNode) { if (dir == Direction.Invalid) { // On own tile, block direction it faces terminalDirs |= 1 << (int)IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(node.Owner).LocalRotation.GetCardinalDir(); } else { var terminalDir = IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(node.Owner).LocalRotation.GetCardinalDir(); if (terminalDir.GetOpposite() == dir) { // Target tile has a terminal towards us, block the direction. terminalDirs |= 1 << (int)dir; break; } } } } foreach (var(dir, node) in nodeDirs) { // If there is a wire terminal connecting across this direction, skip the node. if (dir != Direction.Invalid && (terminalDirs & (1 << (int)dir)) != 0) { continue; } yield return(node); } }
public bool ExecuteRename(KeyValuePair <IndexerKey, List <CSharpQuery> > codeKeyValuePair, RenameViewModel renameViewModel, VisualStudioWorkspace workspace) { bool result = true; foreach (var file in codeKeyValuePair.Value.GroupBy(x => x.DocumentId, x => x)) { var doc = workspace.CurrentSolution.GetDocument(file.Key); SemanticModel semModel = ThreadHelper.JoinableTaskFactory.Run(async() => await doc.GetSemanticModelAsync()); NodeHelpers helper = new NodeHelpers(semModel); doc.TryGetSyntaxTree(out SyntaxTree synTree); var root = (CompilationUnitSyntax)synTree.GetRoot(); var newArgumentSyntax = SyntaxFactory.Argument(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(renameViewModel.QueryText))); foreach (var query in file) { var span = synTree.GetText().Lines[query.QueryLineNumber - 1].Span; var nodes = root.DescendantNodesAndSelf(span); var existingQueryArgumentSyntax = helper.GetProperArgumentNodeInNodes(nodes); var newRoot = root.ReplaceNode(existingQueryArgumentSyntax, newArgumentSyntax); root = newRoot; doc = doc.WithText(newRoot.GetText()); var applyResult = workspace.TryApplyChanges(doc.Project.Solution); result = result && applyResult; } } return(result); }
public override IEnumerable <Node> GetReachableNodes() { if (IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID == GridId.Invalid) { yield break; // No funny nodes in spess. } var entMan = IoCManager.Resolve <IEntityManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).GridID); var gridIndex = grid.TileIndicesFor(IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).Coordinates); var dir = IoCManager.Resolve <IEntityManager>().GetComponent <TransformComponent>(Owner).LocalRotation.GetDir(); var targetIdx = gridIndex + NodeHelpers.TileOffsetForDir(dir); foreach (var node in NodeHelpers.GetNodesInTile(entMan, grid, targetIdx)) { if (node is CableTerminalPortNode) { yield return(node); } } foreach (var node in base.GetReachableNodes()) { yield return(node); } }
private UstNode ParseAndConvert(string code, AspxParser.Location location) { SyntaxTree tree = CSharpSyntaxTree.ParseText(code, new CSharpParseOptions(kind: SourceCodeKind.Script)); var converter = new RoslynUstCommonConverterVisitor(tree, fileNode); FileNode resultFileNode = converter.Walk(); UstNode result = NodeHelpers.CreateLanguageNamespace(resultFileNode.Root, Language.Aspx, fileNode); result.ApplyActionToDescendants(ustNode => ustNode.TextSpan = ustNode.TextSpan.AddOffset(location.Start)); return(result); }
private void InitializeUsingSemanticModel(SemanticModel semModel) { _helperInstance = new NodeHelpers(semModel); SyntaxTree synTree = semModel.SyntaxTree; var span = synTree.GetText().Lines[_selectedLineNumber].Span; var root = (CompilationUnitSyntax)synTree.GetRoot(); _lineNodes = root.DescendantNodesAndSelf(span); _documentNodes = new Lazy <IEnumerable <SyntaxNode> >(() => root.DescendantNodesAndSelf()); }
public override IEnumerable <Node> GetReachableNodes() { var compMgr = IoCManager.Resolve <IComponentManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(Owner.Transform.GridID); var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates); foreach (var node in NodeHelpers.GetNodesInTile(compMgr, grid, gridIndex)) { if (node is CableNode) { yield return(node); } } }
public override IEnumerable <Node> GetReachableNodes() { var compMgr = IoCManager.Resolve <IComponentManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(Owner.Transform.GridID); var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates); var nodes = NodeHelpers.GetCardinalNeighborNodes(compMgr, grid, gridIndex, includeSameTile: false); foreach (var(_, node) in nodes) { if (node is CableTerminalNode) { yield return(node); } } }
private void AnalyzeNode(SyntaxNodeAnalysisContext context) { NodeHelpers helper = new NodeHelpers(context.SemanticModel); if (helper.IsBatisMethod(context.Node as InvocationExpressionSyntax) && helper.TryGetArgumentNodeFromInvocation(context.Node as InvocationExpressionSyntax, 0, out ExpressionSyntax expressionSyntax)) { var resolverResult = new ExpressionResolver().GetStringValueOfExpression(expressionSyntax, context.SemanticModel); if (resolverResult.IsSolved) { var queryKeys = GotoAsyncPackage.Storage.XmlQueries.GetKeys(resolverResult.TextResult, MapNamespaceHelper.IsQueryWithNamespace(resolverResult.TextResult)); if (queryKeys.Count < 1) { context.ReportDiagnostic(Diagnostic.Create(QueryNotExistsRule, expressionSyntax.GetLocation(), resolverResult.TextResult)); } } } }
public override IEnumerable <Node> GetReachableNodes(TransformComponent xform, EntityQuery <NodeContainerComponent> nodeQuery, EntityQuery <TransformComponent> xformQuery, IMapGrid?grid, IEntityManager entMan) { if (!xform.Anchored || grid == null) { yield break; } var gridIndex = grid.TileIndicesFor(xform.Coordinates); foreach (var node in NodeHelpers.GetNodesInTile(nodeQuery, grid, gridIndex)) { if (node is CableNode) { yield return(node); } } }
/// <summary> /// Stores the JSON data. /// </summary> /// <param name="request">The request.</param> /// <returns>A response of the operation.</returns> async Task <int> IUploadService.StoreJsonData(StoreJsonDataRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var nodes = NodeHelpers.ParseJson(request.Json, request.CipherKey); var files = nodes .Where(node => node.IsFile) .Select(node => new ArchiveContent { IsFile = node.IsFile, Name = node.DecryptedName }); await _context.ArchiveItems.AddRangeAsync(files); return(await _context.SaveChangesAsync()); }
public override IEnumerable <Node> GetReachableNodes() { var entMan = IoCManager.Resolve <IEntityManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(Owner.Transform.GridID); var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates); var dir = Owner.Transform.LocalRotation.GetDir(); var targetIdx = gridIndex + NodeHelpers.TileOffsetForDir(dir); foreach (var node in NodeHelpers.GetNodesInTile(entMan, grid, targetIdx)) { if (node is CableTerminalPortNode) { yield return(node); } } foreach (var node in base.GetReachableNodes()) { yield return(node); } }
public override IEnumerable <Node> GetReachableNodes(TransformComponent xform, EntityQuery <NodeContainerComponent> nodeQuery, EntityQuery <TransformComponent> xformQuery, IMapGrid?grid, IEntityManager entMan) { if (!xform.Anchored || grid == null) { yield break; } var gridIndex = grid.TileIndicesFor(xform.Coordinates); var nodes = NodeHelpers.GetCardinalNeighborNodes(nodeQuery, grid, gridIndex, includeSameTile: false); foreach (var(_, node) in nodes) { if (node is CableTerminalNode) { yield return(node); } } }
/// <summary> /// Processes the file. /// </summary> /// <param name="request">The request.</param> /// <returns>The HTTP content.</returns> async Task <string> IUploadService.ProcessFile(ProcessFileRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrWhiteSpace(request.FilePath)) { throw new ArgumentException(nameof(request.FilePath)); } var items = ZipArchiveHelpers.ListArchiveItems(request.FilePath); var json = NodeHelpers.ToJson(items, request.CipherKey); return(await _transferService.SendFile(new SendFileRequest { ContentType = ApplicationConstants.JsonContentType, Password = request.Password, StringContent = json, Url = request.ApiUrl, UserName = request.Username })); }
protected static NodeView GetNodeView() { return(NodeHelpers.CreateNodeView(Brushes.Red)); }
static NodeView GetNodeView() { return(NodeHelpers.CreateNodeView(Brushes.Black)); }
protected static NodeView GetNodeView() { return(NodeHelpers.CreateNodeView(Brushes.DarkViolet)); }
public static string Uuid() { return(NodeHelpers.UUID64().Substring(0, 8)); }