Name |
Description |
AddFieldDeclarationForMixinCommand |
generates a field reference in the child class that points to the mixin |
AddInterfacesToChildSyntaxWriter |
|
AddMixinToBaseListCommand |
the mixin and its interfaces will be added to the base class list of the child class |
BaseClassSyntaxReader |
|
BaseTypeSyntaxExtension |
|
Class |
a class represents an class declaration that was either read from source code or from a type symbol |
ClassFactory |
can create class objects either from plain source code or from symbol information. Even when source code is read, symbol information is needed to resolve the base class. Furhter base classes will be resolved recursivly. |
ClassWithSourceCode |
this class contains also its syntax node which was used to create it. It can be used to extend the syntax later with delegation methods |
ClassWithTypeSymbol |
|
CompositeCommand |
base class for commands composed of other commands. A composite command will execute all its commands sequentially and will create |
Constructor |
|
ConstructorDeclarationExtension |
|
ConstructorInjectionSyntaxWriter |
extends a given class declaration by adding/extending constructors with an injected mixin instance |
ConstructorList |
|
ConstructorSyntaxReader |
simply checks if a class declaration contains a constructor. |
CreateMixinFromFieldDeclarationCommand |
Composite command that includes a mixin into a child class. A reference to the mixin is already defined as a field in the child class. |
CreateMixinFromInterfaceCommand |
A composite command that includes a mixin to a child class by generating the mixin from an interface of the child class. A reference field to the mixin instance will also be created in the child class. |
DocumentationComment |
stores the document comment of a class member. |
DocumentationComment.Attribute |
represents an attribute in an xml comment |
DocumentationComment.DocumentationElement |
stores an xml document element. |
Event |
representation of an event |
EventSymbolReader |
|
EventSyntaxReader |
reads event syntax from a child class and stores them in an event object list |
FieldSyntaxReader |
|
IncludeMixinCommand |
includes a mixin in a child class. |
IncludeMixinSyntaxWriter |
class that generates the syntax nodes needed for forwarding member calls to the mixin reference. |
IndexerProperty |
index properties can also have a parameterlist, also their name is not relevant, so their meta name, which is "Item" is used |
InjectConstructorImplementationStrategy |
this method injects the mixin as parameter into the child class constructor. The logic works by the following rules: 1. Every constructor in the class will be extended 2. If a constructor does not have an initialization list with a constructor of the same class, the mixin field will be assigned in this constructors body. 3. If the constructor initializer has a constructor of the same class, the parameter will be delegated to this constructor. 4. If the constructor already has a parameter of the same type with the same name, do not add it again Example: public class Test { private Mixin _mixin; public Test(){} public Test(int i):this(){} } becomes: public class Test { private Mixin _mixin; public Test(Mixin mixin){_mixin = mixin;} public Test(int i,Mixin mixin=null):this(mixin){} } In that way, the mixin instance will always be initialized, no matter which constructor is called. |
InjectConstructorImplementationStrategy.ConstructorArgument |
this is just a little helper class used to organize the mapping information between a constructor parameter and its corresponding argument in the initializers list |
InjectMixinCommandUnitTest |
|
InjectMixinsIntoChildCommand |
command that adds the constructor injection code of the mixins into the child class |
Interface |
representation of an interface that is implemented by a class. Currently, only the name of the interface is important to us |
InterfaceSyntaxReader |
|
Member |
|
MemberComparer |
|
MemberDeclarationSyntaxExtension |
|
MetaDataReferenceResolver |
|
Method |
|
MethodSymbolReader |
|
MethodSyntaxReader |
|
Mixer |
the mixers includes a mixin into a target (the mixin child) by adding an implementation of every mixin member to the mixin child |
MixinCommandBase |
base class for mixin operations |
MixinRefactoringCodeRefactoringProvider |
|
MixinReference |
class that represents the reference to a mixin with a mixin child |
MixinReferenceFactory |
|
NameMixin |
|
Parameter |
|
ParameterSymbolReader |
|
ParameterSyntaxExpression |
|
ParameterSyntaxReader |
|
Property |
|
PropertySymbolReader |
|
PropertySyntaxReader |
|
RemoveWhitespaceVisitor |
syntax writer that removes the whitespaces from a syntax node. Parts of this implementation are based on https://github.com/JosefPihrt/Pihrtsoft.CodeAnalysis/blob/master/source/Pihrtsoft.CodeAnalysis.Common/CSharp/Removers/WhitespaceOrEndOfLineRemover.cs from Josef Pihrt, licensed under the Apache License, Version 2.0 |
SemanticTypeReaderBase |
|
Settings |
stores the settings for the code generation. The settings can be set via an options dialog. |
SettingsSerializer |
class handles the serialization / deserialization of option values from and to the settings storage. |
StringExtension |
|
SyntaxNodeExtension |
|
SyntaxWalkerWithSemantic |
|
TypeSymbolExtension |
|