Пример #1
0
 public T GetImmediateParentOfType <T>(CodeElement item = null)
 {
     if (item == null)
     {
         return(GetImmediateParentOfType <T>(this));
     }
     else if (item is T p)
     {
         return(p);
     }
     else if (item.Parent == null)
     {
         throw new InvalidOperationException($"item {item.Name} of type {item.GetType()} does not have a parent");
     }
     else if (item.Parent is T p2)
     {
         return(p2);
     }
     else
     {
         return(GetImmediateParentOfType <T>(item.Parent));
     }
 }
Пример #2
0
 public CodeMethod(CodeElement parent) : base(parent)
 {
 }
Пример #3
0
 protected CodeTerminal(CodeElement parent) : base(parent)
 {
 }
Пример #4
0
 public override string NormalizeFileName(CodeElement currentElement) => GetLastFileNameSegment(currentElement).ToFirstCharacterUpperCase();
Пример #5
0
 public CodeBlock(CodeElement parent) : base(parent)
 {
     StartBlock = new BlockDeclaration(this);
     EndBlock   = new BlockEnd(this);
 }
Пример #6
0
 public CodeUnionType(CodeElement parent) : base(parent)
 {
 }
Пример #7
0
 protected static string GetLastFileNameSegment(CodeElement currentElement) => currentElement.Name.Split('.').Last();
Пример #8
0
 private CodeNamespace(CodeElement parent) : base(parent)
 {
 }
Пример #9
0
 public abstract string NormalizeFileName(CodeElement currentElement);
Пример #10
0
 public virtual IEnumerable <string> GetAdditionalSegment(CodeElement currentElement, string fileName) => Enumerable.Empty <string>();
Пример #11
0
 public CodeClass(CodeElement parent) : base(parent)
 {
     StartBlock = new Declaration(this);
     EndBlock   = new End(this);
 }
Пример #12
0
 public CodeEnum(CodeElement parent) : base(parent)
 {
 }
Пример #13
0
 protected CodeTypeBase(CodeElement parent) : base(parent)
 {
 }
Пример #14
0
 public CodeParameter(CodeElement parent) : base(parent)
 {
 }
Пример #15
0
        public static async Task RenderCodeNamespaceToSingleFileAsync(LanguageWriter writer, CodeElement codeElement, string outputFile)
        {
            using var stream = new FileStream(outputFile, FileMode.Create);

            var sw = new StreamWriter(stream);

            writer.SetTextWriter(sw);
            RenderCode(writer, codeElement);
            await sw.FlushAsync();
        }
Пример #16
0
 public CodeProperty(CodeElement parent) : base(parent)
 {
 }
Пример #17
0
 public CodeUsing(CodeElement parent) : base(parent)
 {
 }