Exemplo n.º 1
0
        /// <inheritdoc />
        public string CreateDocLines(int lineNumber, string code)
        {
            var tree     = CSharpSyntaxTree.ParseText(code);
            var root     = tree.GetCompilationUnitRoot();
            var lineSpan = tree.GetText().Lines[lineNumber - 1].Span;
            var def      = root.DescendantNodes()
                           .LastOrDefault(n =>
                                          n.FullSpan.Contains(lineSpan));

            var outString = string.Empty;

            switch (def)
            {
            case MethodDeclarationSyntax methodDef:
                outString = _documentationGenerator.GenerateMethodDocs(methodDef);
                break;

            case ClassDeclarationSyntax classDef:
                outString = _documentationGenerator.GenerateClassDocs(classDef);
                break;

            case ConstructorDeclarationSyntax ctorDef:
                outString = _documentationGenerator.GenerateConstructorDocs(ctorDef);
                break;

            case InterfaceDeclarationSyntax interfaceDef:
                outString = _documentationGenerator.GenerateInterfaceDocs(interfaceDef);
                break;

            case PropertyDeclarationSyntax propertyDef:
                outString = _documentationGenerator.GeneratePropertyDocs(propertyDef);
                break;

            case FieldDeclarationSyntax fieldDef:
                outString = _documentationGenerator.GenerateFieldDocs(fieldDef);
                break;

            case EnumDeclarationSyntax enumDef:
                outString = _documentationGenerator.GenerateEnumDocs(enumDef);
                break;

            case StructDeclarationSyntax structDef:
                outString = _documentationGenerator.GenerateStructDocs(structDef);
                break;
            }

            return(outString);
        }