• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Syntax.CompilationUnitSyntax类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax的典型用法代码示例。如果您正苦于以下问题:C# CompilationUnitSyntax类的具体用法?C# CompilationUnitSyntax怎么用?C# CompilationUnitSyntax使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



CompilationUnitSyntax类属于Microsoft.CodeAnalysis.CSharp.Syntax命名空间,在下文中一共展示了CompilationUnitSyntax类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: RemovePrivateMethods

        static CompilationUnitSyntax RemovePrivateMethods(CompilationUnitSyntax root)
        {
            List<SyntaxNode> removes = new List<SyntaxNode>();

            var classes = root.DescendantNodes().OfType<ClassDeclarationSyntax>();

            foreach (var @class in classes)
            {
                var methods = @class.Members.OfType<MethodDeclarationSyntax>();
                foreach (var method in methods)
                {
                    SyntaxTokenList modifiers = method.Modifiers;
                    bool result = false;
                    foreach (SyntaxToken m in modifiers)
                    {
                        if (m.Text.Equals("private"))
                        {
                            result = true;
                            removes.Add(method);
                            break;
                        }
                    }
                        
                }
            }

            root = root.RemoveNodes(removes,SyntaxRemoveOptions.KeepDirectives);

            return root;
        }
开发者ID:AliSepehri,项目名称:RoslynCodeModifier,代码行数:30,代码来源:Program.cs


示例2: GetUsingsSpan

		private static TextSpan GetUsingsSpan(CompilationUnitSyntax root, NamespaceDeclarationSyntax namespaceDeclaration)
		{
			if (namespaceDeclaration != null)
			{
				var usings = namespaceDeclaration.Usings;
				var start = usings.First().SpanStart;
				var end = usings.Last().Span.End;
				return TextSpan.FromBounds(start, end);
			}
			else
			{
				var rootUsings = root.Usings;
				if (rootUsings.Any())
				{
					var start = rootUsings.First().SpanStart;
					var end = rootUsings.Last().Span.End;
					return TextSpan.FromBounds(start, end);
				}
				else
				{
					var start = 0;
					var end = root.Members.Any()
						? root.Members.First().GetFirstToken().Span.End
						: root.Span.End;
					return TextSpan.FromBounds(start, end);
				}
			}
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:28,代码来源:CompilationUnitSyntaxExtensions.cs


示例3: ImplementNotifyPropertyChangedAsync

 private async Task<Document> ImplementNotifyPropertyChangedAsync(Document document, CompilationUnitSyntax root, SemanticModel model, IEnumerable<ExpandablePropertyInfo> properties, CancellationToken cancellationToken)
 {
     document = document.WithSyntaxRoot(CodeGeneration.ImplementINotifyPropertyChanged(root, model, properties, document.Project.Solution.Workspace));
     document = await Simplifier.ReduceAsync(document, Simplifier.Annotation, cancellationToken: cancellationToken).ConfigureAwait(false);
     document = await Formatter.FormatAsync(document, Formatter.Annotation, cancellationToken: cancellationToken).ConfigureAwait(false);
     return document;
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:7,代码来源:CodeRefactoringProvider.cs


示例4: ParseFileContent

        private static SyntaxElement[] ParseFileContent(CompilationUnitSyntax root, SemanticCache semanticCache)
        {
            var walker = new FileSyntaxWalker(semanticCache);
            walker.Visit(root);

            return walker.ResultsAccumulator.GetResults();
        }
开发者ID:pgrefviau,项目名称:SourceMaster,代码行数:7,代码来源:SourceParsingManager.cs


示例5: AddRequiredUsings

        static CompilationUnitSyntax AddRequiredUsings(CompilationUnitSyntax root)
        {
            NameSyntax name = SyntaxFactory.IdentifierName(" System");
            if (root.Usings.Contains(SyntaxFactory.UsingDirective(name)) == false)
                return root.AddUsings(SyntaxFactory.UsingDirective(name));

            return root;
        }
开发者ID:AliSepehri,项目名称:RoslynCodeModifier,代码行数:8,代码来源:Program.cs


示例6: VisitCompilationUnit

			public override void VisitCompilationUnit (CompilationUnitSyntax node)
			{
				var startNode = node.DescendantNodesAndSelf (n => region.Start <= n.SpanStart).FirstOrDefault ();
				if (startNode == node || startNode == null) {
					base.VisitCompilationUnit (node);
				} else {
					this.Visit (startNode);
				}
			}
开发者ID:michaelc37,项目名称:monodevelop,代码行数:9,代码来源:CSharpNavigationTextEditorExtension.cs


示例7: VisitCompilationUnit

        public override SyntaxNode VisitCompilationUnit(CompilationUnitSyntax node)
        {
            if (node.Usings.Any() || node.Externs.Any())
            {
                node = node.WithAdditionalAnnotations(LayoutAnnotations.MultiLineConstructAnnotation);
            }

            return base.VisitCompilationUnit(node);
        }
开发者ID:madelson,项目名称:MedallionCodeFormatter,代码行数:9,代码来源:MultiLineConstructAnnotator.cs


示例8: AddMethodTo

 internal static CompilationUnitSyntax AddMethodTo(
     CompilationUnitSyntax destination,
     IMethodSymbol method,
     CodeGenerationOptions options,
     IList<bool> availableIndices)
 {
     var declaration = GenerateMethodDeclaration(method, CodeGenerationDestination.CompilationUnit, options);
     var members = Insert(destination.Members, declaration, options, availableIndices, after: LastMethod);
     return destination.WithMembers(members.ToSyntaxList());
 }
开发者ID:modulexcite,项目名称:pattern-matching-csharp,代码行数:10,代码来源:MethodGenerator.cs


示例9: VisitCompilationUnit

 public override void VisitCompilationUnit(CompilationUnitSyntax node)
 {
     foreach (MemberDeclarationSyntax member in node.Members)
     {
         if (member.Kind() == SyntaxKind.GlobalStatement)
         {
             Visit(member);
         }
     }
 }
开发者ID:GloryChou,项目名称:roslyn,代码行数:10,代码来源:LocalBinderFactory.cs


示例10: GetExistingNamespaces

        private IList<INamespaceSymbol> GetExistingNamespaces(
            SemanticModel semanticModel, CompilationUnitSyntax compilationUnit, CancellationToken cancellationToken)
        {
            var q = from u in compilationUnit.Usings
                    let symbol = semanticModel.GetSymbolInfo(u.Name, cancellationToken).Symbol as INamespaceSymbol
                    where symbol != null && !symbol.IsGlobalNamespace
                    select symbol;

            return q.ToList();
        }
开发者ID:modulexcite,项目名称:pattern-matching-csharp,代码行数:10,代码来源:UsingDirectivesAdder.cs


示例11: GetImport

        private IEnumerable<string> GetImport(CompilationUnitSyntax root)
        {
            List<string> result = new List<string>();

            foreach (var import in root.Usings)
            {
                result.Add(import.Name.ToFullString());
            }

            return result;
        }
开发者ID:fendy3002,项目名称:MapperGenerator,代码行数:11,代码来源:SourceCodeToFileModelConverter.cs


示例12: AddNamedTypeTo

 public static CompilationUnitSyntax AddNamedTypeTo(
     ICodeGenerationService service,
     CompilationUnitSyntax destination,
     INamedTypeSymbol namedType,
     CodeGenerationOptions options,
     IList<bool> availableIndices)
 {
     var declaration = GenerateNamedTypeDeclaration(service, namedType, CodeGenerationDestination.CompilationUnit, options);
     var members = Insert(destination.Members, declaration, options, availableIndices);
     return destination.WithMembers(members);
 }
开发者ID:GloryChou,项目名称:roslyn,代码行数:11,代码来源:NamedTypeGenerator.cs


示例13: GetIssuesInternal

    private IEnumerable<Microsoft.CodeAnalysis.CodeActions.CodeIssue> GetIssuesInternal(IEnumerable<ClousotOutput> results, CompilationUnitSyntax compilationUnitDeclaration)
    {
      IEnumerator<ClousotOutput> enumerator;

      try
      {
        enumerator = results.GetEnumerator();
      }
      catch
      {
        yield break;
      }

      bool hasNext;

      try
      {
        hasNext = enumerator.MoveNext();
      }
      catch
      {
        yield break;
      }

      while (hasNext)
      {
        var result = enumerator.Current;
        
        //foreach (var result in results )
        {
          var msg = result.Message;
          var span = result.Span;
          var action = result.action;
          if (span.IsEmpty)
          {
            msg = "Unknown location: " + msg;
            span = compilationUnitDeclaration.GetFirstToken().Span;
          }
          if (action == null)
            yield return new Microsoft.CodeAnalysis.CodeActions.CodeIssue(Microsoft.CodeAnalysis.CodeActions.CodeIssueKind.Warning, span, msg);
          else
            yield return new Microsoft.CodeAnalysis.CodeActions.CodeIssue(Microsoft.CodeAnalysis.CodeActions.CodeIssueKind.Warning, span, msg, action);
        }
        try
        {
          hasNext = enumerator.MoveNext();
        }
        catch
        {
          yield break;
        }
      }
    }
开发者ID:asvishnyakov,项目名称:CodeContracts,代码行数:53,代码来源:CodeIssueProvider.cs


示例14: AddPropertyTo

        internal static CompilationUnitSyntax AddPropertyTo(
            CompilationUnitSyntax destination,
            IPropertySymbol property,
            CodeGenerationOptions options,
            IList<bool> availableIndices)
        {
            var declaration = GeneratePropertyOrIndexer(property, CodeGenerationDestination.CompilationUnit, options);

            var members = Insert(destination.Members, declaration, options,
                availableIndices, after: LastPropertyOrField, before: FirstMember);
            return destination.WithMembers(members);
        }
开发者ID:Rickinio,项目名称:roslyn,代码行数:12,代码来源:PropertyGenerator.cs


示例15: ShouldUseSmartTokenFormatterInsteadOfIndenter

        public static bool ShouldUseSmartTokenFormatterInsteadOfIndenter(
            IEnumerable<IFormattingRule> formattingRules,
            CompilationUnitSyntax root,
            TextLine line,
            OptionSet optionSet,
            CancellationToken cancellationToken)
        {
            Contract.ThrowIfNull(formattingRules);
            Contract.ThrowIfNull(root);

            if (!optionSet.GetOption(FeatureOnOffOptions.AutoFormattingOnReturn, LanguageNames.CSharp))
            {
                return false;
            }

            if (optionSet.GetOption(FormattingOptions.SmartIndent, LanguageNames.CSharp) != FormattingOptions.IndentStyle.Smart)
            {
                return false;
            }

            var firstNonWhitespacePosition = line.GetFirstNonWhitespacePosition();
            if (!firstNonWhitespacePosition.HasValue)
            {
                return false;
            }

            var token = root.FindToken(firstNonWhitespacePosition.Value);
            if (token.IsKind(SyntaxKind.None) ||
                token.SpanStart != firstNonWhitespacePosition)
            {
                return false;
            }

            // first see whether there is a line operation for current token
            var previousToken = token.GetPreviousToken(includeZeroWidth: true);

            // only use smart token formatter when we have two visible tokens.
            if (previousToken.Kind() == SyntaxKind.None || previousToken.IsMissing)
            {
                return false;
            }

            var lineOperation = FormattingOperations.GetAdjustNewLinesOperation(formattingRules, previousToken, token, optionSet);
            if (lineOperation == null || lineOperation.Option == AdjustNewLinesOption.ForceLinesIfOnSingleLine)
            {
                // no indentation operation, nothing to do for smart token formatter
                return false;
            }

            // We're pressing enter between two tokens, have the formatter figure out hte appropriate
            // indentation.
            return true;
        }
开发者ID:XieShuquan,项目名称:roslyn,代码行数:53,代码来源:CSharpIndentationService.cs


示例16: GetLabels

 private static ImmutableArray<LabelSymbol> GetLabels(SynthesizedInteractiveInitializerMethod scriptInitializer, CompilationUnitSyntax syntax)
 {
     var builder = ArrayBuilder<LabelSymbol>.GetInstance();
     foreach (var member in syntax.Members)
     {
         if (member.Kind() != SyntaxKind.GlobalStatement)
         {
             continue;
         }
         LocalScopeBinder.BuildLabels(scriptInitializer, ((GlobalStatementSyntax)member).Statement, ref builder);
     }
     return builder.ToImmutableAndFree();
 }
开发者ID:SoumikMukherjeeDOTNET,项目名称:roslyn,代码行数:13,代码来源:ScriptLocalScopeBinder.cs


示例17: AddFormattingSpans

		private void AddFormattingSpans(
			CompilationUnitSyntax compilationUnit,
			List<TextSpan> spans,
			CancellationToken cancellationToken)
		{
			cancellationToken.ThrowIfCancellationRequested();
			spans.Add(TextSpan.FromBounds(0, GetEndPosition(compilationUnit, compilationUnit.Members)));

			foreach (var @namespace in compilationUnit.Members.OfType<NamespaceDeclarationSyntax>())
			{
				AddFormattingSpans(@namespace, spans, cancellationToken);
			}
		}
开发者ID:pabloescribanoloza,项目名称:monodevelop,代码行数:13,代码来源:CSharpRemoveUnnecessaryImportsService.cs


示例18: ParseSource

 public Model.ParsingResults ParseSource(string filename)
 {
     try
     {
         mTree = CSharpSyntaxTree.ParseFile(filename);
         mRoot = (CompilationUnitSyntax)mTree.GetRoot();
     }
     catch
     {
         throw;
     }
     return Model.ParsingResults.Success;
 }
开发者ID:Zenoware,项目名称:RoslynParser,代码行数:13,代码来源:RoslynCSharpParser.cs


示例19: VisitCompilationUnit

 public override SyntaxNode VisitCompilationUnit(CompilationUnitSyntax node)
 {
     var value = (CompilationUnitSyntax)base.VisitCompilationUnit(node);
     if (_notPartialClass)
     {
         var usings = _globalModelCompilationUnit.Usings.Where(u => !value.Usings.Any(u2 => u2.Name.ToString() == u.Name.ToString())).ToList();
         if (usings.Count != 0)
         {
             value = value.WithUsings(SyntaxFactory.List<UsingDirectiveSyntax>(value.Usings.Union(usings).OrderBy(u => u.Name.ToString())));
         }
     }
     return value;
 }
开发者ID:bnjMichel,项目名称:waqs,代码行数:13,代码来源:ApplicationStartRewriter.cs


示例20: FixGuidExportMetadata

		private static Task<Document> FixGuidExportMetadata(Document document, CompilationUnitSyntax root, ClassDeclarationSyntax classDeclaration, string guid)
		{
			var newSyntax = classDeclaration;
			
			newSyntax = newSyntax.ReplaceNode(
				newSyntax.GetAttributes("ExportMetadata").First(x => x.ArgumentList.Arguments[0].ToString() == "\"Guid\""),
				SyntaxFactory.Attribute(SyntaxFactory.ParseName("ExportMetadata"),
					SyntaxFactory.ParseAttributeArgumentList($"(\"Guid\", \"{guid}\")")));

			var newRoot = root.ReplaceNode(classDeclaration, newSyntax);
			var newDocument = document.WithSyntaxRoot(newRoot);
			return Task.FromResult(newDocument);
		}
开发者ID:batjoker,项目名称:KanColleViewer,代码行数:13,代码来源:InvalidGuidMetadataCodeFixProvider.cs



注:本文中的Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Syntax.ConstructorDeclarationSyntax类代码示例发布时间:2022-05-26
下一篇:
C# Syntax.ClassDeclarationSyntax类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap