├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── feature_request.md
│ └── task.md
└── workflows
│ └── dot-core.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── sourceWiki
└── modulardoc
│ ├── composer
│ └── ITypeComposer.md
│ ├── core
│ ├── IDefiniteProcess.md
│ ├── IDialogView.md
│ ├── IDialogViewModel.md
│ ├── IDialogViewT.md
│ ├── IGlobalSettings.md
│ ├── IIndefiniteProcess.md
│ ├── ILibrarySettings.md
│ ├── IModularDocLogger.md
│ ├── IPlugin.md
│ ├── IPluginStep.md
│ ├── IProcess.md
│ ├── ISettingsCreator.md
│ ├── IStepViewModel.md
│ ├── IStepViewModelT.md
│ ├── IStepViewT.md
│ ├── IStepViewTT.md
│ ├── IView.md
│ ├── IViewModel.md
│ ├── IViewT.md
│ ├── LogMessage.md
│ ├── imodulardoclogger
│ │ └── LogType.md
│ └── iprocess
│ │ └── ProcessState.md
│ ├── diagrams
│ └── IDiagramResolver.md
│ ├── documentation
│ ├── IDocElement.md
│ ├── IDocMember.md
│ ├── IDocResolver.md
│ ├── IDocSettings.md
│ ├── IDocumentation.md
│ ├── idocmember
│ │ └── MemberType.md
│ └── tags
│ │ ├── IContent.md
│ │ ├── IInnerTag.md
│ │ ├── IListTag.md
│ │ ├── ITag.md
│ │ ├── ITextTag.md
│ │ ├── iinnertag
│ │ └── InnerTagType.md
│ │ ├── ilisttag
│ │ └── ListType.md
│ │ └── itag
│ │ └── TagType.md
│ ├── elements
│ ├── IDiagram.md
│ ├── IElement.md
│ ├── IElementCreator.md
│ ├── ILink.md
│ ├── IList.md
│ ├── IPage.md
│ ├── ISection.md
│ ├── ITable.md
│ ├── IText.md
│ ├── ITextBuilder.md
│ ├── ITextContent.md
│ ├── extensions
│ │ ├── IHasContentT.md
│ │ └── IHasHeading.md
│ ├── ilist
│ │ └── ListType.md
│ └── itext
│ │ └── TextStyle.md
│ ├── linker
│ ├── ILinker.md
│ └── ILinkerSettings.md
│ ├── members
│ ├── IMemberSettings.md
│ ├── IResolver.md
│ ├── enums
│ │ ├── AccessorType.md
│ │ ├── ArgumentType.md
│ │ ├── DotNetType.md
│ │ ├── MemberInheritance.md
│ │ ├── OperatorType.md
│ │ └── Variance.md
│ ├── members
│ │ ├── IArgument.md
│ │ ├── IConstructor.md
│ │ ├── IDelegate.md
│ │ ├── IEnumField.md
│ │ ├── IEvent.md
│ │ ├── IMember.md
│ │ ├── IMethod.md
│ │ └── IProperty.md
│ ├── resolvedtypes
│ │ ├── IResArray.md
│ │ ├── IResGeneric.md
│ │ ├── IResTuple.md
│ │ └── IResType.md
│ └── types
│ │ ├── IClass.md
│ │ ├── IEnum.md
│ │ ├── IInterface.md
│ │ ├── IRecord.md
│ │ ├── IStruct.md
│ │ ├── IType.md
│ │ └── TreeNode.md
│ └── printer
│ └── IPrinter.md
├── src
├── Components
│ ├── Diagrams
│ │ ├── ModularDoc.Diagrams.Mermaid
│ │ │ ├── MermaidResolver.cs
│ │ │ └── ModularDoc.Diagrams.Mermaid.csproj
│ │ └── ModularDoc.Diagrams.PlantUML
│ │ │ ├── ModularDoc.Diagrams.PlantUML.csproj
│ │ │ └── PlantUmlResolver.cs
│ ├── Documentation
│ │ └── ModularDoc.Documentation.Xml
│ │ │ ├── ContentResolver.cs
│ │ │ ├── DocElement.cs
│ │ │ ├── DocMember.cs
│ │ │ ├── DocResolver.cs
│ │ │ ├── DocSettings.cs
│ │ │ ├── DocumentationContent.cs
│ │ │ ├── ModularDoc.Documentation.Xml.csproj
│ │ │ ├── ModuleDocResolver.cs
│ │ │ └── Tags
│ │ │ ├── InnerTag.cs
│ │ │ ├── ListTag.cs
│ │ │ ├── Tag.cs
│ │ │ └── TextTag.cs
│ ├── Elements
│ │ └── ModularDoc.Elements.Markdown
│ │ │ ├── BaseElement.cs
│ │ │ ├── Diagram.cs
│ │ │ ├── Helpers.cs
│ │ │ ├── Link.cs
│ │ │ ├── ListElement.cs
│ │ │ ├── ModularDoc.Elements.Markdown.csproj
│ │ │ ├── Page.cs
│ │ │ ├── Section.cs
│ │ │ ├── Table.cs
│ │ │ ├── TextBuilder.cs
│ │ │ └── TextElement.cs
│ ├── Generators
│ │ └── ModularDoc.Composer.Basic
│ │ │ ├── Helpers
│ │ │ ├── ContentHelpers.fs
│ │ │ ├── ContentProcessor.fs
│ │ │ ├── ElementHelpers.fs
│ │ │ ├── SignatureHelpers.fs
│ │ │ ├── SomeHelpers.fs
│ │ │ ├── StringConverters.fs
│ │ │ ├── TagHelpers.fs
│ │ │ ├── TextHelpers.fs
│ │ │ ├── TypeContentHelpers.fs
│ │ │ └── TypeHelpers.fs
│ │ │ ├── ModularDoc.Composer.Basic.fsproj
│ │ │ ├── Tools.fs
│ │ │ └── TypeComposer.fs
│ ├── Linkers
│ │ └── ModularDoc.Linker.Markdown
│ │ │ ├── AnchorGenerator.fs
│ │ │ ├── GitPlatform.fs
│ │ │ ├── LinkGenerator.fs
│ │ │ ├── LinkerSettings.fs
│ │ │ ├── MarkdownLinker.fs
│ │ │ ├── ModularDoc.Linker.Markdown.fsproj
│ │ │ ├── SourceCodeLinkGenerator.fs
│ │ │ ├── StructureGenerator.fs
│ │ │ └── TypeHelper.fs
│ ├── Members
│ │ └── ModularDoc.Members.Dnlib
│ │ │ ├── Helpers
│ │ │ ├── GenericsHelper.cs
│ │ │ ├── MetadataHelpers.cs
│ │ │ └── RegexHelpers.cs
│ │ │ ├── MemberSettings.cs
│ │ │ ├── Members
│ │ │ ├── ArgumentDef.cs
│ │ │ ├── ConstructorDef.cs
│ │ │ ├── DelegateDef.cs
│ │ │ ├── EnumFieldDef.cs
│ │ │ ├── EventDef.cs
│ │ │ ├── FieldDef.cs
│ │ │ ├── MemberDef.cs
│ │ │ ├── MethodDef.cs
│ │ │ └── PropertyDef.cs
│ │ │ ├── ModularDoc.Members.Dnlib.csproj
│ │ │ ├── ModuleDnlibResolver.cs
│ │ │ ├── Properties
│ │ │ ├── Resources.Designer.cs
│ │ │ └── Resources.resx
│ │ │ ├── ResolvedTypes
│ │ │ ├── ResArray.cs
│ │ │ ├── ResGeneric.cs
│ │ │ ├── ResGenericValueType.cs
│ │ │ ├── ResTuple.cs
│ │ │ ├── ResType.cs
│ │ │ └── ResValueType.cs
│ │ │ ├── Resolver.cs
│ │ │ └── Types
│ │ │ ├── ClassDef.cs
│ │ │ ├── EnumDef.cs
│ │ │ ├── InterfaceDef.cs
│ │ │ ├── RecordDef.cs
│ │ │ ├── StructDef.cs
│ │ │ └── TypeDef.cs
│ └── Printers
│ │ └── ModularDoc.Printer.Markdown
│ │ ├── ModularDoc.Printer.Markdown.csproj
│ │ └── PrinterMarkdown.cs
├── Libraries
│ ├── Core
│ │ ├── ModularDoc.Composer
│ │ │ ├── ITypeComposer.cs
│ │ │ └── ModularDoc.Composer.csproj
│ │ ├── ModularDoc.Constants
│ │ │ ├── ModularDoc.Constants.csproj
│ │ │ └── PageNames.cs
│ │ ├── ModularDoc.Core
│ │ │ ├── IDefiniteProcess.cs
│ │ │ ├── IDialogView.cs
│ │ │ ├── IDialogViewModel.cs
│ │ │ ├── IGlobalSettings.cs
│ │ │ ├── IIndefiniteProcess.cs
│ │ │ ├── ILibrarySettings.cs
│ │ │ ├── IModularDocLogger.cs
│ │ │ ├── IPlugin.cs
│ │ │ ├── IPluginStep.cs
│ │ │ ├── IProcess.cs
│ │ │ ├── ISettingsCreator.cs
│ │ │ ├── IStepView.cs
│ │ │ ├── IStepViewModel.cs
│ │ │ ├── IView.cs
│ │ │ ├── IViewModel.cs
│ │ │ ├── LogMessage.cs
│ │ │ └── ModularDoc.Core.csproj
│ │ ├── ModularDoc.Diagrams
│ │ │ ├── IDiagramResolver.cs
│ │ │ └── ModularDoc.Diagrams.csproj
│ │ ├── ModularDoc.Documentation
│ │ │ ├── IDocMember.cs
│ │ │ ├── IDocResolver.cs
│ │ │ ├── IDocSettings.cs
│ │ │ ├── IDocType.cs
│ │ │ ├── IDocumentation.cs
│ │ │ ├── ModularDoc.Documentation.csproj
│ │ │ └── Tags
│ │ │ │ ├── IContent.cs
│ │ │ │ ├── IInnerTag.cs
│ │ │ │ ├── IListTag.cs
│ │ │ │ ├── ITag.cs
│ │ │ │ └── ITextTag.cs
│ │ ├── ModularDoc.Elements
│ │ │ ├── Extensions
│ │ │ │ ├── IHasContent.cs
│ │ │ │ └── IHasHeading.cs
│ │ │ ├── IDiagram.cs
│ │ │ ├── IElement.cs
│ │ │ ├── IElementCreator.cs
│ │ │ ├── ILink.cs
│ │ │ ├── IList.cs
│ │ │ ├── IPage.cs
│ │ │ ├── ISection.cs
│ │ │ ├── ITable.cs
│ │ │ ├── IText.cs
│ │ │ ├── ITextBuilder.cs
│ │ │ ├── ITextContent.cs
│ │ │ └── ModularDoc.Elements.csproj
│ │ ├── ModularDoc.Linker
│ │ │ ├── ILinker.cs
│ │ │ ├── ILinkerSettings.cs
│ │ │ └── ModularDoc.Linker.csproj
│ │ ├── ModularDoc.Members
│ │ │ ├── Enums
│ │ │ │ ├── AccessorType.cs
│ │ │ │ ├── ArgumentType.cs
│ │ │ │ ├── DotNetType.cs
│ │ │ │ ├── MemberVisibility.cs
│ │ │ │ ├── OperatorType.cs
│ │ │ │ └── Variance.cs
│ │ │ ├── IMemberSettings.cs
│ │ │ ├── IResolver.cs
│ │ │ ├── Members
│ │ │ │ ├── IArgument.cs
│ │ │ │ ├── IConstructor.cs
│ │ │ │ ├── IDelegate.cs
│ │ │ │ ├── IEnumField.cs
│ │ │ │ ├── IEvent.cs
│ │ │ │ ├── IField.cs
│ │ │ │ ├── IMember.cs
│ │ │ │ ├── IMethod.cs
│ │ │ │ └── IProperty.cs
│ │ │ ├── ModularDoc.Members.csproj
│ │ │ ├── ResolvedTypes
│ │ │ │ ├── IResArray.cs
│ │ │ │ ├── IResGeneric.cs
│ │ │ │ ├── IResTuple.cs
│ │ │ │ └── IResType.cs
│ │ │ └── Types
│ │ │ │ ├── IClass.cs
│ │ │ │ ├── IEnum.cs
│ │ │ │ ├── IInterface.cs
│ │ │ │ ├── IRecord.cs
│ │ │ │ ├── IStruct.cs
│ │ │ │ ├── IType.cs
│ │ │ │ └── TreeNode.cs
│ │ └── ModularDoc.Printer
│ │ │ ├── IPrinter.cs
│ │ │ └── ModularDoc.Printer.csproj
│ ├── Helpers
│ │ ├── ModularDoc.Helpers
│ │ │ ├── BaseProcess.cs
│ │ │ ├── BaseTrie.cs
│ │ │ ├── Configuration.cs
│ │ │ ├── DefiniteProcess.cs
│ │ │ ├── EqualityComparerEx.cs
│ │ │ ├── IComponentMetadata.cs
│ │ │ ├── IDialogManager.cs
│ │ │ ├── IThemeManager.cs
│ │ │ ├── IndefiniteProcess.cs
│ │ │ ├── Linq.cs
│ │ │ ├── Logger.cs
│ │ │ ├── ModularDoc.Helpers.csproj
│ │ │ ├── Option.cs
│ │ │ ├── Properties
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ └── Resources.resx
│ │ │ ├── TrieNamespace.cs
│ │ │ └── TrieNode.cs
│ │ └── ModularDoc.MVVM.Helpers
│ │ │ ├── BaseDialogViewModel.cs
│ │ │ ├── BaseStepUserControl.cs
│ │ │ ├── BaseStepViewModel.cs
│ │ │ ├── BaseUserControl.cs
│ │ │ ├── BaseViewModel.cs
│ │ │ ├── ModularDoc.MVVM.Helpers.csproj
│ │ │ ├── NavigationManager.cs
│ │ │ ├── PluginManager.cs
│ │ │ ├── TreeViewHelper.cs
│ │ │ └── TypeResolver.cs
│ ├── ViewModels
│ │ ├── ModularDoc.ViewModels.GitMarkdown
│ │ │ ├── AssemblyStepViewModel.cs
│ │ │ ├── DocumentationStepViewModel.cs
│ │ │ ├── GlobalStepViewModel.cs
│ │ │ ├── LinkerStepViewModel.cs
│ │ │ ├── ModularDoc.ViewModels.GitMarkdown.csproj
│ │ │ ├── NamespaceNode.cs
│ │ │ └── Selection.cs
│ │ ├── ModularDoc.ViewModels.Main
│ │ │ ├── ConfiguratorViewModel.cs
│ │ │ ├── HomeViewModel.cs
│ │ │ ├── ModularDoc.ViewModels.Main.csproj
│ │ │ ├── SettingsViewModel.cs
│ │ │ ├── StartupViewModel.cs
│ │ │ └── SummaryViewModel.cs
│ │ └── ModularDoc.ViewModels
│ │ │ ├── ICanGoBack.cs
│ │ │ ├── IConfiguratorViewModel.cs
│ │ │ ├── IHomeViewModel.cs
│ │ │ ├── ISettingsViewModel.cs
│ │ │ ├── IStartupViewModel.cs
│ │ │ ├── ISummaryViewModel.cs
│ │ │ └── ModularDoc.ViewModels.csproj
│ └── Views
│ │ ├── ModularDoc.Views.GitMarkdown
│ │ ├── AssemlyStepView.axaml
│ │ ├── AssemlyStepView.axaml.cs
│ │ ├── Converters
│ │ │ ├── NegateConverter.cs
│ │ │ ├── PathToDirectoryConverter.cs
│ │ │ └── PathToFileConverter.cs
│ │ ├── DocumentationStepView.axaml
│ │ ├── DocumentationStepView.axaml.cs
│ │ ├── GlobalStepView.axaml
│ │ ├── GlobalStepView.axaml.cs
│ │ ├── LinkerStepView.axaml
│ │ ├── LinkerStepView.axaml.cs
│ │ └── ModularDoc.Views.GitMarkdown.csproj
│ │ ├── ModularDoc.Views.Main
│ │ ├── ConfiguratorView.axaml
│ │ ├── ConfiguratorView.axaml.cs
│ │ ├── Controls
│ │ │ └── ListBoxItemEx.cs
│ │ ├── Converters
│ │ │ ├── ActivePluginStepToBoolConverter.cs
│ │ │ ├── BitmapConverter.cs
│ │ │ ├── IsEmptyConverter.cs
│ │ │ ├── LogGroupingConverter.cs
│ │ │ ├── LogTypeToColorConverter.cs
│ │ │ ├── LogTypeToIconConverter.cs
│ │ │ ├── LogTypeToStringConverter.cs
│ │ │ ├── ProcessStateToColorConverter.cs
│ │ │ ├── ProcessStateToIconConverter.cs
│ │ │ ├── ProcessStateToStringConverter.cs
│ │ │ └── ProcessStateToVisibilityConverter.cs
│ │ ├── HomeView.axaml
│ │ ├── HomeView.axaml.cs
│ │ ├── ModularDoc.Views.Main.csproj
│ │ ├── SettingsView.axaml
│ │ ├── SettingsView.axaml.cs
│ │ ├── StartupView.axaml
│ │ ├── StartupView.axaml.cs
│ │ ├── SummaryView.axaml
│ │ ├── SummaryView.axaml.cs
│ │ └── TreeHelper.cs
│ │ └── ModularDoc.Views
│ │ ├── IConfiguratorView.cs
│ │ ├── IHomeView.cs
│ │ ├── ISettingsView.cs
│ │ ├── IStartupView.cs
│ │ ├── ISummaryView.cs
│ │ └── ModularDoc.Views.csproj
├── ModularDoc.App
│ ├── App.axaml
│ ├── App.axaml.cs
│ ├── Assets
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ └── logo.ico
│ ├── Managers
│ │ ├── DialogManager.cs
│ │ └── ThemeManager.cs
│ ├── ModularDoc.App.csproj
│ ├── Program.cs
│ └── Views
│ │ ├── DialogView.axaml
│ │ ├── DialogView.axaml.cs
│ │ ├── MainWindow.axaml
│ │ └── MainWindow.axaml.cs
├── ModularDoc.CLI
│ ├── ModularDoc.CLI.csproj
│ └── Program.cs
├── ModularDoc.sln
├── Plugins
│ └── ModularDoc.Plugins.GitMarkdown
│ │ ├── AssembliesStep.cs
│ │ ├── BasePluginStep.cs
│ │ ├── DocumentationStep.cs
│ │ ├── GlobalStep.cs
│ │ ├── LinkerStep.cs
│ │ ├── ModularDoc.Plugins.GitMarkdown.csproj
│ │ ├── PluginGitMarkdown.cs
│ │ └── icon.png
└── Tests
│ └── UnitTests
│ └── Components
│ ├── UT.Documentation
│ ├── Data
│ │ ├── Constants.cs
│ │ └── ResolversProvider.cs
│ ├── TagTests
│ │ ├── TagTests.cs
│ │ └── TextTagTests.cs
│ └── UT.Documentation.csproj
│ └── UT.Members
│ ├── Data
│ ├── Constants.cs
│ ├── DataProvider.cs
│ └── ResolversProvider.cs
│ ├── GlobalSuppressions.cs
│ ├── MemberTests
│ ├── ArgumentTests.cs
│ ├── DelegateTests.cs
│ ├── EventTests.cs
│ ├── MethodTests.cs
│ └── PropertyTests.cs
│ ├── ResolvedTypeTests
│ ├── ResArrayTests.cs
│ ├── ResGenericTests.cs
│ ├── ResGenericValueTypeTests.cs
│ ├── ResTupleTests.cs
│ ├── ResTypeTests.cs
│ └── ResValueTypeTests.cs
│ ├── TypeTests
│ ├── ClassTests.cs
│ ├── EnumTests.cs
│ ├── InterfaceTests.cs
│ ├── RecordTests.cs
│ ├── ResolverTests.cs
│ ├── StructTests.cs
│ └── TypeHelpers.cs
│ └── UT.Members.csproj
└── tests
├── ModularDoc.Tests.sln
├── TestDocLibrary
├── SimpleClass.cs
└── TestDocLibrary.csproj
└── TestLibrary
├── Classes
├── ClassComplexInheritance.cs
├── ClassParent.cs
├── ClassTypeFile.cs
├── ClassTypeInternal.cs
├── ClassTypePublic.cs
├── ClassTypePublicAbstract.cs
├── ClassTypePublicSealed.cs
├── ClassTypePublicStatic.cs
├── ClassWithDefaultConstructor.cs
├── ClassWithParamConstructor.cs
├── GenericClass.cs
├── InheritingClass.cs
├── InheritingClassComplex.cs
├── InheritingClassComplexEmpty.cs
├── InheritingClassComplexWithBase.cs
├── InheritingClassComplexWithBaseEmpty.cs
├── InheritingClassEmpty.cs
├── InheritingClassWithBase.cs
└── InheritingClassWithBaseEmpty.cs
├── Enums
├── EnumParent.cs
├── EnumTypeFile.cs
├── EnumTypeInternal.cs
└── EnumTypePublic.cs
├── Interfaces
├── IGenericInterface.cs
├── IInheritedInterface.cs
├── IInheritingAndInheritedInterface.cs
├── IInheritingInterface.cs
├── IInheritingInterfaceComplex.cs
├── IInheritingInterfaceComplexEmpty.cs
├── IInheritingInterfaceEmpty.cs
├── IInterfaceTypeFile.cs
├── IInterfaceTypeInternal.cs
├── IInterfaceTypePublic.cs
└── InterfaceParent.cs
├── Members
├── Arguments
│ └── ClassArguments.cs
├── Delegates
│ ├── ClassDelegates.cs
│ ├── ClassDelegatesGenerics.cs
│ ├── ClassDelegatesParent.cs
│ ├── IInterfaceDelegates.cs
│ └── StructDelegates.cs
├── Events
│ ├── ClassEvents.cs
│ ├── ClassEventsAbstract.cs
│ ├── ClassEventsBase.cs
│ ├── ClassEventsParent.cs
│ ├── IInterfaceEvents.cs
│ └── StructEvents.cs
├── Methods
│ ├── ClassMethods.cs
│ ├── ClassMethodsAbstract.cs
│ ├── ClassMethodsBase.cs
│ ├── ClassMethodsGenerics.cs
│ ├── ClassMethodsParent.cs
│ ├── IInterfaceMethods.cs
│ └── StructMethods.cs
└── Properties
│ ├── ClassProperties.cs
│ ├── ClassPropertiesAbstract.cs
│ ├── ClassPropertiesBase.cs
│ ├── ClassPropertiesParent.cs
│ ├── IInterfaceProperties.cs
│ ├── RecordProperties.cs
│ └── StructProperties.cs
├── Records
├── GenericRecord.cs
├── InheritingRecord.cs
├── InheritingRecordComplex.cs
├── InheritingRecordComplexEmpty.cs
├── InheritingRecordEmpty.cs
├── RecordParent.cs
├── RecordTypeFile.cs
├── RecordTypeInternal.cs
├── RecordTypePublic.cs
├── RecordTypePublicAbstract.cs
└── RecordTypePublicSealed.cs
├── ResTypes
├── ClassResGenericValueTypes.cs
├── ClassResTuples.cs
├── ClassResTypeGenerics.cs
├── ClassResTypes.cs
├── ClassResTypesArrays.cs
└── ClassResTypesValueTypes.cs
├── Structs
├── GenericStruct.cs
├── InheritingStruct.cs
├── InheritingStructComplex.cs
├── InheritingStructComplexEmpty.cs
├── InheritingStructEmpty.cs
├── StructEmptyConstructor.cs
├── StructParent.cs
├── StructReadonlyType.cs
├── StructTypeFile.cs
├── StructTypeInternal.cs
├── StructTypePublic.cs
└── StructWithParamConstructor.cs
└── TestLibrary.csproj
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: Issue name
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **Reproducibility**
14 | Always/Once/Random
15 |
16 | **To Reproduce**
17 | Steps to reproduce the behavior:
18 | 1. Go to '...'
19 | 2. Click on '....'
20 | 3. Scroll down to '....'
21 | 4. See error
22 |
23 | **Expected behavior**
24 | A clear and concise description of what you expected to happen.
25 |
26 | **Screenshots**
27 | If applicable, add screenshots to help explain your problem.
28 |
29 | **Additional context**
30 | Add any other context about the problem here.
31 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/task.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Task
3 | about: Standard development task
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | # Library name(s)
11 | TODO
12 |
13 | # Description
14 | Todo
15 |
16 | # Subtasks
17 |
18 | - [ ] Todo
19 | - [ ] Todo
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Denis Akopyan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/composer/ITypeComposer.md:
--------------------------------------------------------------------------------
1 | # ITypeComposer `interface`
2 |
3 | ## Description
4 | Interface for type printers
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Composer
12 | ModularDoc.Composer.ITypeComposer[[ITypeComposer]]
13 | class ModularDoc.Composer.ITypeComposer interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Methods
19 | #### Public methods
20 | | Returns | Name |
21 | | --- | --- |
22 | | [`IPage`](../elements/IPage.md) | [`Compose`](#compose)([`IType`](../members/types/IType.md) type)
Prints a [IPage](../elements/IPage.md) from the provided `type` |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for type printers
27 |
28 | ### Methods
29 | #### Compose
30 | ```csharp
31 | public IPage Compose(IType type)
32 | ```
33 | ##### Arguments
34 | | Type | Name | Description |
35 | | --- | --- | --- |
36 | | [`IType`](../members/types/IType.md) | type | Type to process |
37 |
38 | ##### Summary
39 | Prints a [IPage](../elements/IPage.md) from the provided `type`
40 |
41 | ##### Returns
42 | Generated page
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/IIndefiniteProcess.md:
--------------------------------------------------------------------------------
1 | # IIndefiniteProcess `interface`
2 |
3 | ## Description
4 | Interface for indefinite processes
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core
12 | ModularDoc.Core.IIndefiniteProcess[[IIndefiniteProcess]]
13 | class ModularDoc.Core.IIndefiniteProcess interfaceStyle;
14 | ModularDoc.Core.IProcess[[IProcess]]
15 | class ModularDoc.Core.IProcess interfaceStyle;
16 | end
17 | ModularDoc.Core.IProcess --> ModularDoc.Core.IIndefiniteProcess
18 | ```
19 |
20 | ## Details
21 | ### Summary
22 | Interface for indefinite processes
23 |
24 | ### Inheritance
25 | - [
26 | `IProcess`
27 | ](./IProcess.md)
28 |
29 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
30 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/ILibrarySettings.md:
--------------------------------------------------------------------------------
1 | # ILibrarySettings `interface`
2 |
3 | ## Description
4 | Interface for settings of libraries
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core
12 | ModularDoc.Core.ILibrarySettings[[ILibrarySettings]]
13 | class ModularDoc.Core.ILibrarySettings interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Properties
19 | #### Public properties
20 | | Type | Name | Methods |
21 | | --- | --- | --- |
22 | | `Guid` | [`Id`](#id)
Settings id | `get` |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for settings of libraries
27 |
28 | ### Properties
29 | #### Id
30 | ```csharp
31 | public Guid Id { get; }
32 | ```
33 | ##### Summary
34 | Settings id
35 |
36 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
37 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/IProcess.md:
--------------------------------------------------------------------------------
1 | # IProcess `interface`
2 |
3 | ## Description
4 | Interface for processes
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core
12 | ModularDoc.Core.IProcess[[IProcess]]
13 | class ModularDoc.Core.IProcess interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Properties
19 | #### Public properties
20 | | Type | Name | Methods |
21 | | --- | --- | --- |
22 | | `string` | [`Name`](#name)
Progress name | `get` |
23 | | `ProcessState` | [`State`](#state)
State of the given process | `get, set` |
24 |
25 | ## Details
26 | ### Summary
27 | Interface for processes
28 |
29 | ### Nested types
30 | #### Enums
31 | - `ProcessState`
32 |
33 | ### Properties
34 | #### Name
35 | ```csharp
36 | public string Name { get; }
37 | ```
38 | ##### Summary
39 | Progress name
40 |
41 | #### State
42 | ```csharp
43 | public ProcessState State { get; set; }
44 | ```
45 | ##### Summary
46 | State of the given process
47 |
48 | ### Events
49 | #### StateChanged
50 | ```csharp
51 | public event EventHandler StateChanged
52 | ```
53 | ##### Summary
54 | Invoked whenever the [IProcess](modulardoc/core/IProcess.md).[State](#state) is changed
55 |
56 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
57 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/ISettingsCreator.md:
--------------------------------------------------------------------------------
1 | # ISettingsCreator `interface`
2 |
3 | ## Description
4 | Interface for settings creators
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core
12 | ModularDoc.Core.ISettingsCreator[[ISettingsCreator]]
13 | class ModularDoc.Core.ISettingsCreator interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Methods
19 | #### Public methods
20 | | Returns | Name |
21 | | --- | --- |
22 | | `T` | [`CreateSettings`](#createsettings)(`IReadOnlyDictionary`<`string`, `string`> data) |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for settings creators
27 |
28 | ### Methods
29 | #### CreateSettings
30 | ```csharp
31 | public T CreateSettings(IReadOnlyDictionary data)
32 | where T : ILibrarySettings
33 | ```
34 | ##### Arguments
35 | | Type | Name | Description |
36 | | --- | --- | --- |
37 | | `IReadOnlyDictionary`<`string`, `string`> | data | |
38 |
39 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
40 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/LogMessage.md:
--------------------------------------------------------------------------------
1 | # LogMessage `readonly struct`
2 |
3 | ## Description
4 | Logger message structure
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core
12 | ModularDoc.Core.LogMessage[[LogMessage]]
13 | class ModularDoc.Core.LogMessage interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Properties
19 | #### Public properties
20 | | Type | Name | Methods |
21 | | --- | --- | --- |
22 | | `string` | [`Message`](#message)
Log message | `get` |
23 | | `string` | [`Source`](#source)
Log source | `get` |
24 | | `DateTime` | [`Time`](#time)
Log time | `get` |
25 | | `LogType` | [`Type`](#type)
Log type | `get` |
26 |
27 | ## Details
28 | ### Summary
29 | Logger message structure
30 |
31 | ### Properties
32 | #### Type
33 | ```csharp
34 | public LogType Type { get; }
35 | ```
36 | ##### Summary
37 | Log type
38 |
39 | #### Message
40 | ```csharp
41 | public string Message { get; }
42 | ```
43 | ##### Summary
44 | Log message
45 |
46 | #### Time
47 | ```csharp
48 | public DateTime Time { get; }
49 | ```
50 | ##### Summary
51 | Log time
52 |
53 | #### Source
54 | ```csharp
55 | public string Source { get; }
56 | ```
57 | ##### Summary
58 | Log source
59 |
60 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
61 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/imodulardoclogger/LogType.md:
--------------------------------------------------------------------------------
1 | # LogType `enum`
2 |
3 | ## Description
4 | Logging level types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core.IModularDocLogger
12 | ModularDoc.Core.IModularDocLogger.LogType[[LogType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Logging level types
19 |
20 | ### Fields
21 | #### Info
22 | ##### Summary
23 | Information logging level
24 |
25 | #### Error
26 | ##### Summary
27 | Error logging level
28 |
29 | #### Warning
30 | ##### Summary
31 | Warning logging level
32 |
33 | #### Debug
34 | ##### Summary
35 | Debug logging level
36 |
37 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
38 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/core/iprocess/ProcessState.md:
--------------------------------------------------------------------------------
1 | # ProcessState `enum`
2 |
3 | ## Description
4 | Enumeration of possible states of a [IProcess](../IProcess.md)
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Core.IProcess
12 | ModularDoc.Core.IProcess.ProcessState[[ProcessState]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Enumeration of possible states of a [IProcess](../IProcess.md)
19 |
20 | ### Fields
21 | #### Idle
22 | ##### Summary
23 | The process is waiting
24 |
25 | #### Running
26 | ##### Summary
27 | The process is running
28 |
29 | #### Success
30 | ##### Summary
31 | The process has finished successfully
32 |
33 | #### Failure
34 | ##### Summary
35 | The process has finished unsuccessfully
36 |
37 | #### Cancelled
38 | ##### Summary
39 | The process has been cancelled
40 |
41 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
42 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/diagrams/IDiagramResolver.md:
--------------------------------------------------------------------------------
1 | # IDiagramResolver `interface`
2 |
3 | ## Description
4 | Interface for diagram resolvers
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Diagrams
12 | ModularDoc.Diagrams.IDiagramResolver[[IDiagramResolver]]
13 | class ModularDoc.Diagrams.IDiagramResolver interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Methods
19 | #### Public methods
20 | | Returns | Name |
21 | | --- | --- |
22 | | `bool` | [`TryGenerateDiagram`](#trygeneratediagram)([`IType`](../members/types/IType.md) type, out (`string` name, `string` content) diagram) |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for diagram resolvers
27 |
28 | ### Methods
29 | #### TryGenerateDiagram
30 | ```csharp
31 | public bool TryGenerateDiagram(IType type, out (string name, string content) diagram)
32 | ```
33 | ##### Arguments
34 | | Type | Name | Description |
35 | | --- | --- | --- |
36 | | [`IType`](../members/types/IType.md) | type | |
37 | | `out` (`string` name, `string` content) | diagram | |
38 |
39 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
40 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/IDocSettings.md:
--------------------------------------------------------------------------------
1 | # IDocSettings `interface`
2 |
3 | ## Description
4 | Interface for [IDocResolver](./IDocResolver.md) settings
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation
12 | ModularDoc.Documentation.IDocSettings[[IDocSettings]]
13 | class ModularDoc.Documentation.IDocSettings interfaceStyle;
14 | end
15 | subgraph ModularDoc.Core
16 | ModularDoc.Core.ILibrarySettings[[ILibrarySettings]]
17 | class ModularDoc.Core.ILibrarySettings interfaceStyle;
18 | end
19 | ModularDoc.Core.ILibrarySettings --> ModularDoc.Documentation.IDocSettings
20 | ```
21 |
22 | ## Members
23 | ### Properties
24 | #### Public properties
25 | | Type | Name | Methods |
26 | | --- | --- | --- |
27 | | `IReadOnlyCollection`<`string`> | [`Paths`](#paths)
Paths to documentation sources | `get, set` |
28 |
29 | ## Details
30 | ### Summary
31 | Interface for [IDocResolver](./IDocResolver.md) settings
32 |
33 | ### Inheritance
34 | - [
35 | `ILibrarySettings`
36 | ](../core/ILibrarySettings.md)
37 |
38 | ### Properties
39 | #### Paths
40 | ```csharp
41 | public IReadOnlyCollection Paths { get; set; }
42 | ```
43 | ##### Summary
44 | Paths to documentation sources
45 |
46 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
47 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/idocmember/MemberType.md:
--------------------------------------------------------------------------------
1 | # MemberType `enum`
2 |
3 | ## Description
4 | Member types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation.IDocMember
12 | ModularDoc.Documentation.IDocMember.MemberType[[MemberType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Member types
19 |
20 | ### Fields
21 | #### Method
22 | ##### Summary
23 | Member is a method
24 |
25 | #### Property
26 | ##### Summary
27 | Member is a property
28 |
29 | #### Field
30 | ##### Summary
31 | Member is a field
32 |
33 | #### Event
34 | ##### Summary
35 | Member is an event
36 |
37 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
38 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/tags/IContent.md:
--------------------------------------------------------------------------------
1 | # IContent `interface`
2 |
3 | ## Description
4 | Base interface for tags within [ITag](./ITag.md) , [IInnerTag](./IInnerTag.md) and [IListTag](./IListTag.md)
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation.Tags
12 | ModularDoc.Documentation.Tags.IContent[[IContent]]
13 | class ModularDoc.Documentation.Tags.IContent interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Details
18 | ### Summary
19 | Base interface for tags within [ITag](./ITag.md) , [IInnerTag](./IInnerTag.md) and [IListTag](./IListTag.md)
20 |
21 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
22 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/tags/ITextTag.md:
--------------------------------------------------------------------------------
1 | # ITextTag `interface`
2 |
3 | ## Description
4 | Interface for tags containing text
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation.Tags
12 | ModularDoc.Documentation.Tags.ITextTag[[ITextTag]]
13 | class ModularDoc.Documentation.Tags.ITextTag interfaceStyle;
14 | ModularDoc.Documentation.Tags.IContent[[IContent]]
15 | class ModularDoc.Documentation.Tags.IContent interfaceStyle;
16 | end
17 | ModularDoc.Documentation.Tags.IContent --> ModularDoc.Documentation.Tags.ITextTag
18 | ```
19 |
20 | ## Members
21 | ### Properties
22 | #### Public properties
23 | | Type | Name | Methods |
24 | | --- | --- | --- |
25 | | `string` | [`Content`](#content)
Text content | `get` |
26 |
27 | ## Details
28 | ### Summary
29 | Interface for tags containing text
30 |
31 | ### Inheritance
32 | - [
33 | `IContent`
34 | ](./IContent.md)
35 |
36 | ### Properties
37 | #### Content
38 | ```csharp
39 | public string Content { get; }
40 | ```
41 | ##### Summary
42 | Text content
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/tags/iinnertag/InnerTagType.md:
--------------------------------------------------------------------------------
1 | # InnerTagType `enum`
2 |
3 | ## Description
4 | Tag type
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation.Tags.IInnerTag
12 | ModularDoc.Documentation.Tags.IInnerTag.InnerTagType[[InnerTagType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Tag type
19 |
20 | ### Fields
21 | #### ParamRef
22 | ##### Summary
23 | Parameter reference
24 |
25 | #### TypeRef
26 | ##### Summary
27 | Type reference
28 |
29 | #### Code
30 | ##### Summary
31 | Code
32 |
33 | #### CodeSingle
34 | ##### Summary
35 | Inline code
36 |
37 | #### See
38 | ##### Summary
39 | See reference
40 |
41 | #### SeeAlso
42 | ##### Summary
43 | See also reference
44 |
45 | #### Para
46 | ##### Summary
47 | Paragraph
48 |
49 | #### InvalidTag
50 | ##### Summary
51 | Invalid tag
52 |
53 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
54 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/documentation/tags/ilisttag/ListType.md:
--------------------------------------------------------------------------------
1 | # ListType `enum`
2 |
3 | ## Description
4 | Type of given list
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Documentation.Tags.IListTag
12 | ModularDoc.Documentation.Tags.IListTag.ListType[[ListType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Type of given list
19 |
20 | ### Fields
21 | #### Number
22 | ##### Summary
23 | Numbered list
24 |
25 | #### Bullet
26 | ##### Summary
27 | Bullet list
28 |
29 | #### Table
30 | ##### Summary
31 | Table list
32 |
33 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
34 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/IDiagram.md:
--------------------------------------------------------------------------------
1 | # IDiagram `interface`
2 |
3 | ## Description
4 | Interface for diagram elements
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements
12 | ModularDoc.Elements.IDiagram[[IDiagram]]
13 | class ModularDoc.Elements.IDiagram interfaceStyle;
14 | ModularDoc.Elements.IElement[[IElement]]
15 | class ModularDoc.Elements.IElement interfaceStyle;
16 | end
17 | ModularDoc.Elements.IElement --> ModularDoc.Elements.IDiagram
18 | ```
19 |
20 | ## Members
21 | ### Methods
22 | #### Public methods
23 | | Returns | Name |
24 | | --- | --- |
25 | | `ValueTask` | [`ToExternalFile`](#toexternalfile)(`string` directory)
Exports the diagram to an external file |
26 |
27 | ## Details
28 | ### Summary
29 | Interface for diagram elements
30 |
31 | ### Inheritance
32 | - [
33 | `IElement`
34 | ](./IElement.md)
35 |
36 | ### Methods
37 | #### ToExternalFile
38 | ```csharp
39 | public ValueTask ToExternalFile(string directory)
40 | ```
41 | ##### Arguments
42 | | Type | Name | Description |
43 | | --- | --- | --- |
44 | | `string` | directory | Path to the directory to export to |
45 |
46 | ##### Summary
47 | Exports the diagram to an external file
48 |
49 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
50 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/IElement.md:
--------------------------------------------------------------------------------
1 | # IElement `interface`
2 |
3 | ## Description
4 | Interface for elements
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements
12 | ModularDoc.Elements.IElement[[IElement]]
13 | class ModularDoc.Elements.IElement interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Methods
19 | #### Public methods
20 | | Returns | Name |
21 | | --- | --- |
22 | | `IEnumerable`<`string`> | [`Print`](#print)()
Converts given element to a sequence of strings |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for elements
27 |
28 | ### Methods
29 | #### Print
30 | ```csharp
31 | public IEnumerable Print()
32 | ```
33 | ##### Summary
34 | Converts given element to a sequence of strings
35 |
36 | ##### Returns
37 | Strings to export
38 |
39 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
40 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/ISection.md:
--------------------------------------------------------------------------------
1 | # ISection `interface`
2 |
3 | ## Description
4 | Interface for section elements
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements
12 | ModularDoc.Elements.ISection[[ISection]]
13 | class ModularDoc.Elements.ISection interfaceStyle;
14 | ModularDoc.Elements.IElement[[IElement]]
15 | class ModularDoc.Elements.IElement interfaceStyle;
16 | end
17 | subgraph ModularDoc.Elements.Extensions
18 | ModularDoc.Elements.Extensions.IHasContent_1[[IHasContent]]
19 | ModularDoc.Elements.Extensions.IHasHeading[[IHasHeading]]
20 | class ModularDoc.Elements.Extensions.IHasHeading interfaceStyle;
21 | end
22 | ModularDoc.Elements.IElement --> ModularDoc.Elements.ISection
23 | ModularDoc.Elements.Extensions.IHasContent_1 --> ModularDoc.Elements.ISection
24 | ModularDoc.Elements.Extensions.IHasHeading --> ModularDoc.Elements.ISection
25 | ```
26 |
27 | ## Details
28 | ### Summary
29 | Interface for section elements
30 |
31 | ### Inheritance
32 | - [
33 | `IElement`
34 | ](./IElement.md)
35 | - `IHasContent`<`IReadOnlyCollection`<[`IElement`](./IElement.md)>>
36 | - [
37 | `IHasHeading`
38 | ](extensions/IHasHeading.md)
39 |
40 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
41 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/ITextContent.md:
--------------------------------------------------------------------------------
1 | # ITextContent `interface`
2 |
3 | ## Description
4 | Interface for elements representing test-based content
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements
12 | ModularDoc.Elements.ITextContent[[ITextContent]]
13 | class ModularDoc.Elements.ITextContent interfaceStyle;
14 | ModularDoc.Elements.IElement[[IElement]]
15 | class ModularDoc.Elements.IElement interfaceStyle;
16 | end
17 | ModularDoc.Elements.IElement --> ModularDoc.Elements.ITextContent
18 | ```
19 |
20 | ## Details
21 | ### Summary
22 | Interface for elements representing test-based content
23 |
24 | ### Inheritance
25 | - [
26 | `IElement`
27 | ](./IElement.md)
28 |
29 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
30 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/extensions/IHasContentT.md:
--------------------------------------------------------------------------------
1 | # IHasContent<out T> `interface`
2 |
3 | ## Description
4 | Interface for elements which have content
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements.Extensions
12 | ModularDoc.Elements.Extensions.IHasContent_1[[IHasContent< T >]]
13 | class ModularDoc.Elements.Extensions.IHasContent_1 interfaceStyle;
14 |
15 | end
16 | ```
17 |
18 | ## Members
19 | ### Properties
20 | #### Public properties
21 | | Type | Name | Methods |
22 | | --- | --- | --- |
23 | | `T` | [`Content`](#content)
Element content | `get` |
24 |
25 | ## Details
26 | ### Summary
27 | Interface for elements which have content
28 |
29 | ### Generic types
30 | | Type | Description | Constraints |
31 | | --- | --- | --- |
32 | | `T` `out` | Content type | |
33 |
34 | ### Properties
35 | #### Content
36 | ```csharp
37 | public T Content { get; }
38 | ```
39 | ##### Summary
40 | Element content
41 |
42 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
43 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/extensions/IHasHeading.md:
--------------------------------------------------------------------------------
1 | # IHasHeading `interface`
2 |
3 | ## Description
4 | Interface for types which have headings
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements.Extensions
12 | ModularDoc.Elements.Extensions.IHasHeading[[IHasHeading]]
13 | class ModularDoc.Elements.Extensions.IHasHeading interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Properties
19 | #### Public properties
20 | | Type | Name | Methods |
21 | | --- | --- | --- |
22 | | `string` | [`Heading`](#heading)
Heading text | `get` |
23 | | `int` | [`Level`](#level)
Heading level | `get` |
24 |
25 | ## Details
26 | ### Summary
27 | Interface for types which have headings
28 |
29 | ### Properties
30 | #### Heading
31 | ```csharp
32 | public string Heading { get; }
33 | ```
34 | ##### Summary
35 | Heading text
36 |
37 | #### Level
38 | ```csharp
39 | public int Level { get; }
40 | ```
41 | ##### Summary
42 | Heading level
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/ilist/ListType.md:
--------------------------------------------------------------------------------
1 | # ListType `enum`
2 |
3 | ## Description
4 | Possible list types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements.IList
12 | ModularDoc.Elements.IList.ListType[[ListType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Possible list types
19 |
20 | ### Fields
21 | #### Numbered
22 | ##### Summary
23 | List items will be numbered
24 |
25 | #### Dotted
26 | ##### Summary
27 | List items will be dotted
28 |
29 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
30 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/elements/itext/TextStyle.md:
--------------------------------------------------------------------------------
1 | # TextStyle `enum`
2 |
3 | ## Description
4 | Text styles
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Elements.IText
12 | ModularDoc.Elements.IText.TextStyle[[TextStyle]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Text styles
19 |
20 | ### Fields
21 | #### Normal
22 | ##### Summary
23 | No style
24 |
25 | #### Italic
26 | ##### Summary
27 | Italic style
28 |
29 | #### Bold
30 | ##### Summary
31 | Bold style
32 |
33 | #### CodeInline
34 | ##### Summary
35 | Single line code style
36 |
37 | #### Code
38 | ##### Summary
39 | Multi-line code style
40 |
41 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
42 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/linker/ILinkerSettings.md:
--------------------------------------------------------------------------------
1 | # ILinkerSettings `interface`
2 |
3 | ## Description
4 | Interface for [ILinker](./ILinker.md) object settings
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Linker
12 | ModularDoc.Linker.ILinkerSettings[[ILinkerSettings]]
13 | class ModularDoc.Linker.ILinkerSettings interfaceStyle;
14 | end
15 | subgraph ModularDoc.Core
16 | ModularDoc.Core.ILibrarySettings[[ILibrarySettings]]
17 | class ModularDoc.Core.ILibrarySettings interfaceStyle;
18 | end
19 | ModularDoc.Core.ILibrarySettings --> ModularDoc.Linker.ILinkerSettings
20 | ```
21 |
22 | ## Details
23 | ### Summary
24 | Interface for [ILinker](./ILinker.md) object settings
25 |
26 | ### Inheritance
27 | - [
28 | `ILibrarySettings`
29 | ](../core/ILibrarySettings.md)
30 |
31 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
32 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/IMemberSettings.md:
--------------------------------------------------------------------------------
1 | # IMemberSettings `interface`
2 |
3 | ## Description
4 | Interface for [IResolver](./IResolver.md) settings
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members
12 | ModularDoc.Members.IMemberSettings[[IMemberSettings]]
13 | class ModularDoc.Members.IMemberSettings interfaceStyle;
14 | end
15 | subgraph ModularDoc.Core
16 | ModularDoc.Core.ILibrarySettings[[ILibrarySettings]]
17 | class ModularDoc.Core.ILibrarySettings interfaceStyle;
18 | end
19 | ModularDoc.Core.ILibrarySettings --> ModularDoc.Members.IMemberSettings
20 | ```
21 |
22 | ## Members
23 | ### Properties
24 | #### Public properties
25 | | Type | Name | Methods |
26 | | --- | --- | --- |
27 | | `IReadOnlyCollection`<`string`> | [`Paths`](#paths)
Paths to member sources | `get` |
28 |
29 | ## Details
30 | ### Summary
31 | Interface for [IResolver](./IResolver.md) settings
32 |
33 | ### Inheritance
34 | - [
35 | `ILibrarySettings`
36 | ](../core/ILibrarySettings.md)
37 |
38 | ### Properties
39 | #### Paths
40 | ```csharp
41 | public IReadOnlyCollection Paths { get; }
42 | ```
43 | ##### Summary
44 | Paths to member sources
45 |
46 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
47 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/AccessorType.md:
--------------------------------------------------------------------------------
1 | # AccessorType `enum`
2 |
3 | ## Description
4 | Types of member accessors
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.AccessorType[[AccessorType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Types of member accessors
19 |
20 | ### Fields
21 | #### Public
22 | ##### Summary
23 | Visible to everyone
24 |
25 | #### Protected
26 | ##### Summary
27 | Visible to children
28 |
29 | #### Internal
30 | ##### Summary
31 | Visible within library
32 |
33 | #### ProtectedInternal
34 | ##### Summary
35 | Visible to children within the library
36 |
37 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
38 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/ArgumentType.md:
--------------------------------------------------------------------------------
1 | # ArgumentType `enum`
2 |
3 | ## Description
4 | Types of arguments
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.ArgumentType[[ArgumentType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Types of arguments
19 |
20 | ### Fields
21 | #### Normal
22 | ##### Summary
23 | Argument with no keyword
24 |
25 | #### Ref
26 | ##### Summary
27 | Argument with the ref keyword
28 |
29 | #### Out
30 | ##### Summary
31 | Argument with the out keyword
32 |
33 | #### In
34 | ##### Summary
35 | Argument with the in keyword
36 |
37 | #### Optional
38 | ##### Summary
39 | Argument is optional
40 |
41 | #### Param
42 | ##### Summary
43 | Argument is variadic
44 |
45 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
46 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/DotNetType.md:
--------------------------------------------------------------------------------
1 | # DotNetType `enum`
2 |
3 | ## Description
4 | Type of the represented .NET type
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.DotNetType[[DotNetType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Type of the represented .NET type
19 |
20 | ### Fields
21 | #### Enum
22 | ##### Summary
23 | Enum type
24 |
25 | #### Interface
26 | ##### Summary
27 | Interface type
28 |
29 | #### Class
30 | ##### Summary
31 | Class type
32 |
33 | #### Struct
34 | ##### Summary
35 | Struct type
36 |
37 | #### Record
38 | ##### Summary
39 | Record type
40 |
41 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
42 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/MemberInheritance.md:
--------------------------------------------------------------------------------
1 | # MemberInheritance `enum`
2 |
3 | ## Description
4 | Member inheritance types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.MemberInheritance[[MemberInheritance]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Member inheritance types
19 |
20 | ### Fields
21 | #### Normal
22 | ##### Summary
23 | No inheritance
24 |
25 | #### Abstract
26 | ##### Summary
27 | Abstract member
28 |
29 | #### Virtual
30 | ##### Summary
31 | Virtual member
32 |
33 | #### Override
34 | ##### Summary
35 | Override member
36 |
37 | #### InterfaceMember
38 | ##### Summary
39 | Member is defined within an interface
40 |
41 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
42 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/OperatorType.md:
--------------------------------------------------------------------------------
1 | # OperatorType `enum`
2 |
3 | ## Description
4 | Method operator types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.OperatorType[[OperatorType]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Method operator types
19 |
20 | ### Fields
21 | #### None
22 | ##### Summary
23 | Operator type undefined
24 |
25 | #### Normal
26 | ##### Summary
27 | No operator
28 |
29 | #### Implicit
30 | ##### Summary
31 | Implicit operator
32 |
33 | #### Explicit
34 | ##### Summary
35 | Explicit operator
36 |
37 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
38 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/enums/Variance.md:
--------------------------------------------------------------------------------
1 | # Variance `enum`
2 |
3 | ## Description
4 | Generic argument variance types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Enums
12 | ModularDoc.Members.Enums.Variance[[Variance]]
13 | end
14 | ```
15 |
16 | ## Details
17 | ### Summary
18 | Generic argument variance types
19 |
20 | ### Fields
21 | #### NonVariant
22 | ##### Summary
23 | No variance
24 |
25 | #### Covariant
26 | ##### Summary
27 | Covariance
28 |
29 | #### Contravariant
30 | ##### Summary
31 | Contra variance
32 |
33 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
34 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/members/IArgument.md:
--------------------------------------------------------------------------------
1 | # IArgument `interface`
2 |
3 | ## Description
4 | Interface for [IMethod](./IMethod.md) arguments
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Members
12 | ModularDoc.Members.Members.IArgument[[IArgument]]
13 | class ModularDoc.Members.Members.IArgument interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Properties
19 | #### Public properties
20 | | Type | Name | Methods |
21 | | --- | --- | --- |
22 | | [`ArgumentType`](../enums/ArgumentType.md) | [`Keyword`](#keyword)
Argument keyword | `get` |
23 | | `string` | [`Name`](#name)
Argument name | `get` |
24 | | [`IResType`](../resolvedtypes/IResType.md) | [`Type`](#type)
Argument type | `get` |
25 |
26 | ## Details
27 | ### Summary
28 | Interface for [IMethod](./IMethod.md) arguments
29 |
30 | ### Properties
31 | #### Name
32 | ```csharp
33 | public string Name { get; }
34 | ```
35 | ##### Summary
36 | Argument name
37 |
38 | #### Keyword
39 | ```csharp
40 | public ArgumentType Keyword { get; }
41 | ```
42 | ##### Summary
43 | Argument keyword
44 |
45 | #### Type
46 | ```csharp
47 | public IResType Type { get; }
48 | ```
49 | ##### Summary
50 | Argument type
51 |
52 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
53 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/members/IConstructor.md:
--------------------------------------------------------------------------------
1 | # IConstructor `interface`
2 |
3 | ## Description
4 | Interface for type constructors
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Members
12 | ModularDoc.Members.Members.IConstructor[[IConstructor]]
13 | class ModularDoc.Members.Members.IConstructor interfaceStyle;
14 | ModularDoc.Members.Members.IMember[[IMember]]
15 | class ModularDoc.Members.Members.IMember interfaceStyle;
16 | end
17 | ModularDoc.Members.Members.IMember --> ModularDoc.Members.Members.IConstructor
18 | ```
19 |
20 | ## Members
21 | ### Properties
22 | #### Public properties
23 | | Type | Name | Methods |
24 | | --- | --- | --- |
25 | | `IReadOnlyCollection`<[`IArgument`](./IArgument.md)> | [`Arguments`](#arguments)
Method arguments | `get` |
26 |
27 | ## Details
28 | ### Summary
29 | Interface for type constructors
30 |
31 | ### Inheritance
32 | - [
33 | `IMember`
34 | ](./IMember.md)
35 |
36 | ### Properties
37 | #### Arguments
38 | ```csharp
39 | public IReadOnlyCollection Arguments { get; }
40 | ```
41 | ##### Summary
42 | Method arguments
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/members/IEnumField.md:
--------------------------------------------------------------------------------
1 | # IEnumField `interface`
2 |
3 | ## Description
4 | Interface for enum field entries
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Members
12 | ModularDoc.Members.Members.IEnumField[[IEnumField]]
13 | class ModularDoc.Members.Members.IEnumField interfaceStyle;
14 | ModularDoc.Members.Members.IMember[[IMember]]
15 | class ModularDoc.Members.Members.IMember interfaceStyle;
16 | end
17 | ModularDoc.Members.Members.IMember --> ModularDoc.Members.Members.IEnumField
18 | ```
19 |
20 | ## Details
21 | ### Summary
22 | Interface for enum field entries
23 |
24 | ### Inheritance
25 | - [
26 | `IMember`
27 | ](./IMember.md)
28 |
29 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
30 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/resolvedtypes/IResGeneric.md:
--------------------------------------------------------------------------------
1 | # IResGeneric `interface`
2 |
3 | ## Description
4 | Interface for generic resolved types
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.ResolvedTypes
12 | ModularDoc.Members.ResolvedTypes.IResGeneric[[IResGeneric]]
13 | class ModularDoc.Members.ResolvedTypes.IResGeneric interfaceStyle;
14 | ModularDoc.Members.ResolvedTypes.IResType[[IResType]]
15 | class ModularDoc.Members.ResolvedTypes.IResType interfaceStyle;
16 | end
17 | ModularDoc.Members.ResolvedTypes.IResType --> ModularDoc.Members.ResolvedTypes.IResGeneric
18 | ```
19 |
20 | ## Members
21 | ### Properties
22 | #### Public properties
23 | | Type | Name | Methods |
24 | | --- | --- | --- |
25 | | `IReadOnlyCollection`<[`IResType`](./IResType.md)> | [`Generics`](#generics)
Generic parameter types | `get` |
26 |
27 | ## Details
28 | ### Summary
29 | Interface for generic resolved types
30 |
31 | ### Inheritance
32 | - [
33 | `IResType`
34 | ](./IResType.md)
35 |
36 | ### Properties
37 | #### Generics
38 | ```csharp
39 | public IReadOnlyCollection Generics { get; }
40 | ```
41 | ##### Summary
42 | Generic parameter types
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/types/IEnum.md:
--------------------------------------------------------------------------------
1 | # IEnum `interface`
2 |
3 | ## Description
4 | Interface for enums
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Types
12 | ModularDoc.Members.Types.IEnum[[IEnum]]
13 | class ModularDoc.Members.Types.IEnum interfaceStyle;
14 | ModularDoc.Members.Types.IType[[IType]]
15 | class ModularDoc.Members.Types.IType interfaceStyle;
16 | end
17 | ModularDoc.Members.Types.IType --> ModularDoc.Members.Types.IEnum
18 | ```
19 |
20 | ## Members
21 | ### Properties
22 | #### Public properties
23 | | Type | Name | Methods |
24 | | --- | --- | --- |
25 | | `IReadOnlyCollection`<[`IEnumField`](../members/IEnumField.md)> | [`Fields`](#fields)
Enum fields | `get` |
26 |
27 | ## Details
28 | ### Summary
29 | Interface for enums
30 |
31 | ### Inheritance
32 | - [
33 | `IType`
34 | ](./IType.md)
35 |
36 | ### Properties
37 | #### Fields
38 | ```csharp
39 | public IReadOnlyCollection Fields { get; }
40 | ```
41 | ##### Summary
42 | Enum fields
43 |
44 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
45 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/members/types/IRecord.md:
--------------------------------------------------------------------------------
1 | # IRecord `interface`
2 |
3 | ## Description
4 | Interface for records
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Members.Types
12 | ModularDoc.Members.Types.IRecord[[IRecord]]
13 | class ModularDoc.Members.Types.IRecord interfaceStyle;
14 | ModularDoc.Members.Types.IClass[[IClass]]
15 | class ModularDoc.Members.Types.IClass interfaceStyle;
16 | ModularDoc.Members.Types.IInterface[[IInterface]]
17 | class ModularDoc.Members.Types.IInterface interfaceStyle;
18 | ModularDoc.Members.Types.IType[[IType]]
19 | class ModularDoc.Members.Types.IType interfaceStyle;
20 | end
21 | ModularDoc.Members.Types.IClass --> ModularDoc.Members.Types.IRecord
22 | ModularDoc.Members.Types.IInterface --> ModularDoc.Members.Types.IClass
23 | ModularDoc.Members.Types.IType --> ModularDoc.Members.Types.IInterface
24 | ```
25 |
26 | ## Details
27 | ### Summary
28 | Interface for records
29 |
30 | ### Inheritance
31 | - [
32 | `IClass`
33 | ](./IClass.md)
34 | - [
35 | `IInterface`
36 | ](./IInterface.md)
37 | - [
38 | `IType`
39 | ](./IType.md)
40 |
41 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
42 |
--------------------------------------------------------------------------------
/sourceWiki/modulardoc/printer/IPrinter.md:
--------------------------------------------------------------------------------
1 | # IPrinter `interface`
2 |
3 | ## Description
4 | Interface for documentation printers
5 |
6 | ## Diagram
7 | ```mermaid
8 | flowchart LR
9 | classDef interfaceStyle stroke-dasharray: 5 5;
10 | classDef abstractStyle stroke-width:4px
11 | subgraph ModularDoc.Printer
12 | ModularDoc.Printer.IPrinter[[IPrinter]]
13 | class ModularDoc.Printer.IPrinter interfaceStyle;
14 | end
15 | ```
16 |
17 | ## Members
18 | ### Methods
19 | #### Public methods
20 | | Returns | Name |
21 | | --- | --- |
22 | | `Task` | [`Print`](#print)(`IEnumerable`<[`IType`](../members/types/IType.md)> types, `string` path) |
23 |
24 | ## Details
25 | ### Summary
26 | Interface for documentation printers
27 |
28 | ### Methods
29 | #### Print
30 | ```csharp
31 | public Task Print(IEnumerable types, string path)
32 | ```
33 | ##### Arguments
34 | | Type | Name | Description |
35 | | --- | --- | --- |
36 | | `IEnumerable`<[`IType`](../members/types/IType.md)> | types | |
37 | | `string` | path | |
38 |
39 | *Generated with* [*ModularDoc*](https://github.com/hailstorm75/ModularDoc)
40 |
--------------------------------------------------------------------------------
/src/Components/Diagrams/ModularDoc.Diagrams.Mermaid/ModularDoc.Diagrams.Mermaid.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | latest
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Components\Diagrams
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Components\Diagrams
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/Components/Diagrams/ModularDoc.Diagrams.PlantUML/ModularDoc.Diagrams.PlantUML.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | latest
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Components\Diagrams
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Components\Diagrams
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/Components/Documentation/ModularDoc.Documentation.Xml/ModularDoc.Documentation.Xml.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | latest
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Components\Documentation
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Components\Documentation
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/src/Components/Documentation/ModularDoc.Documentation.Xml/ModuleDocResolver.cs:
--------------------------------------------------------------------------------
1 | using Autofac;
2 |
3 | namespace ModularDoc.Documentation.Xml
4 | {
5 | ///
6 | /// Class for exporting the to Autofac IoC
7 | ///
8 | public class ModuleDocResolver
9 | : Module
10 | {
11 | ///
12 | protected override void Load(ContainerBuilder builder)
13 | => builder.RegisterType().As();
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Components/Elements/ModularDoc.Elements.Markdown/BaseElement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Elements.Markdown
4 | {
5 | ///
6 | /// Base class for elements
7 | ///
8 | public abstract class BaseElement
9 | : IElement
10 | {
11 | ///
12 | public abstract IEnumerable Print();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Components/Elements/ModularDoc.Elements.Markdown/ModularDoc.Elements.Markdown.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Components\Elements
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Components\Elements
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Components/Elements/ModularDoc.Elements.Markdown/TextBuilder.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Helpers;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | namespace ModularDoc.Elements.Markdown
6 | {
7 | ///
8 | /// Class for joining multiple elements
9 | ///
10 | public class TextBuilder
11 | : ITextBuilder
12 | {
13 | #region Properties
14 |
15 | ///
16 | public string Delimiter { get; }
17 |
18 | ///
19 | public IReadOnlyCollection Content { get; }
20 |
21 | #endregion
22 |
23 | ///
24 | /// Default constructor
25 | ///
26 | /// Content to join
27 | /// Delimiter to use to join the
28 | public TextBuilder(IEnumerable content, string delimiter)
29 | {
30 | Content = content.ToReadOnlyCollection();
31 | Delimiter = delimiter;
32 | }
33 |
34 | ///
35 | public IEnumerable Print()
36 | {
37 | yield return string.Join(Delimiter, Content.Select(x => string.Join("", x.Print())).Where(x => !string.IsNullOrEmpty(x)));
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Components/Generators/ModularDoc.Composer.Basic/Tools.fs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Composer.Basic
2 |
3 | open ModularDoc.Diagrams
4 | open ModularDoc.Linker
5 | open ModularDoc.Members
6 | open ModularDoc.Elements
7 | open ModularDoc.Documentation
8 |
9 | ///
10 | /// Tools for composing types
11 | ///
12 | type Tools = {
13 | ///
14 | /// Type linker
15 | ///
16 | linker: ILinker
17 | ///
18 | /// Documentation elements creator
19 | ///
20 | creator: IElementCreator;
21 | ///
22 | /// Documentation resolver
23 | ///
24 | docResolver: IDocResolver;
25 | ///
26 | /// Type resolver
27 | ///
28 | typeResolver: IResolver
29 | ///
30 | /// Diagram resolver
31 | ///
32 | diagramResolver: IDiagramResolver
33 | }
34 |
--------------------------------------------------------------------------------
/src/Components/Linkers/ModularDoc.Linker.Markdown/GitPlatform.fs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Linker.Markdown
2 |
3 | open System.ComponentModel
4 |
5 | ///
6 | /// Git platform types
7 | ///
8 | type GitPlatform =
9 | ///
10 | /// GitHub platform
11 | ///
12 | | [] GitHub = 0
13 | ///
14 | /// GitLab platform
15 | ///
16 | | [] GitLab = 1
17 | ///
18 | /// Azure platform
19 | ///
20 | | [] Azure = 2
21 | ///
22 | /// Bitbucket platform
23 | ///
24 | | [] Bitbucket = 3
25 |
26 |
--------------------------------------------------------------------------------
/src/Components/Linkers/ModularDoc.Linker.Markdown/LinkerSettings.fs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Linker.Markdown
2 |
3 | open System
4 | open System.Collections.Generic
5 | open ModularDoc.Linker
6 |
7 | type LinkerSettings(data: IReadOnlyDictionary) =
8 | member val Platform = data.[LinkerSettings.ENTRY_PLATFORM] with get, set
9 | member val GitPlatformUser = data.[LinkerSettings.PLATFORM_USER] with get, set
10 | member val GitPlatformBranch = data.[LinkerSettings.PLATFORM_BRANCH] with get, set
11 | member val GitPlatformRepository = data.[LinkerSettings.PLATFORM_REPOSITORY] with get, set
12 | member val LinksToSourceCodeEnabled = data.[LinkerSettings.ENABLE_LINKS_TO_SOURCE] with get, set
13 | member val OutputTargetWiki = data.[LinkerSettings.OUTPUT_TARGET_WIKI] with get, set
14 | member val OutputStructured = data.[LinkerSettings.OUTPUT_STRUCTURED] with get, set
15 |
16 | static member val ENTRY_PLATFORM = "platform"
17 | static member val PLATFORM_USER = "platformUser"
18 | static member val PLATFORM_BRANCH = "platformBranch"
19 | static member val PLATFORM_REPOSITORY = "rootRepo"
20 | static member val ENABLE_LINKS_TO_SOURCE = "toggleLinksToSource"
21 | static member val OUTPUT_TARGET_WIKI = "outputTargetWiki"
22 | static member val OUTPUT_STRUCTURED = "outputStructured"
23 |
24 | interface ILinkerSettings with
25 | member this.Id = Guid("1B9469FD-41F5-4FDD-B7CB-40D971F6F418")
--------------------------------------------------------------------------------
/src/Components/Linkers/ModularDoc.Linker.Markdown/TypeHelper.fs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Linker.Markdown
2 |
3 | open ModularDoc.Members.Types
4 |
5 | module private TypeHelper =
6 | ///
7 | /// Retrieves the type name
8 | ///
9 | /// Type to process
10 | /// Retrieved type name
11 | let getName (input: IType) =
12 | match input with
13 | | :? IInterface as i ->
14 | i.Name + System.String('T', i.Generics.Count)
15 | | _ ->
16 | input.Name
17 |
18 |
--------------------------------------------------------------------------------
/src/Components/Members/ModularDoc.Members.Dnlib/Helpers/RegexHelpers.cs:
--------------------------------------------------------------------------------
1 | using System.Text.RegularExpressions;
2 |
3 | namespace ModularDoc.Members.Dnlib.Helpers;
4 |
5 | public static class RegexHelpers
6 | {
7 | public static readonly Regex FILE_ACCESSOR_REGEX = new (@"^\<\w+\>.{65}__(?.*)");
8 | }
--------------------------------------------------------------------------------
/src/Components/Members/ModularDoc.Members.Dnlib/Members/EnumFieldDef.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using dnlib.DotNet;
4 | using ModularDoc.Members.Enums;
5 | using ModularDoc.Members.Members;
6 |
7 | namespace ModularDoc.Members.Dnlib.Members
8 | {
9 | ///
10 | /// Class for representing enum fields
11 | ///
12 | [DebuggerDisplay(nameof(EnumFieldDef) + (": {" + nameof(Name) + "}"))]
13 | public class EnumFieldDef
14 | : IEnumField
15 | {
16 | #region Properties
17 |
18 | public bool IsStatic => false;
19 |
20 | public string Name { get; }
21 |
22 | public string RawName { get; }
23 |
24 | public AccessorType Accessor { get; }
25 |
26 | ///
27 | public (int line, string source)? LineSource => null;
28 |
29 | #endregion
30 |
31 | internal EnumFieldDef(IFullName source, AccessorType accessor)
32 | {
33 | // If the source is null..
34 | if (source is null)
35 | // throw an exception
36 | throw new ArgumentNullException(nameof(source));
37 |
38 | Name = source.Name.String;
39 | RawName = source.FullName.Substring(source.FullName.IndexOf(' ') + 1).Replace("::",".", StringComparison.InvariantCultureIgnoreCase).Replace("/", ".", StringComparison.InvariantCultureIgnoreCase);
40 | Accessor = accessor;
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/src/Components/Members/ModularDoc.Members.Dnlib/ModuleDnlibResolver.cs:
--------------------------------------------------------------------------------
1 | using Autofac;
2 |
3 | namespace ModularDoc.Members.Dnlib
4 | {
5 | ///
6 | /// Class for exporting the to Autofac IoC
7 | ///
8 | public class ModuleDnlibResolver
9 | : Module
10 | {
11 | ///
12 | protected override void Load(ContainerBuilder builder)
13 | => builder.RegisterType().As();
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Components/Members/ModularDoc.Members.Dnlib/Types/RecordDef.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 | using ModularDoc.Members.Types;
3 |
4 | namespace ModularDoc.Members.Dnlib.Types
5 | {
6 | ///
7 | /// Class for representing records
8 | ///
9 | public class RecordDef
10 | : ClassDef, IRecord
11 | {
12 | ///
13 | internal RecordDef(Resolver resolver, dnlib.DotNet.TypeDef source, dnlib.DotNet.TypeDef? parent, DotNetType type)
14 | : base(resolver, source, parent, type)
15 | {
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Composer/ITypeComposer.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements;
2 | using ModularDoc.Members.Types;
3 |
4 | namespace ModularDoc.Composer
5 | {
6 | ///
7 | /// Interface for type printers
8 | ///
9 | public interface ITypeComposer
10 | {
11 | ///
12 | /// Prints a from the provided
13 | ///
14 | /// Type to process
15 | /// Generated page
16 | IPage Compose(IType type);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Constants/ModularDoc.Constants.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Libraries\Core
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Constants/PageNames.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Constants
2 | {
3 | public static class PageNames
4 | {
5 | public const string CONFIGURATION = "configuration";
6 | public const string SETTINGS = "settings";
7 | public const string SUMMARY = "summary";
8 | public const string STARTUP = "startup";
9 | public const string HOME = "home";
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IDefiniteProcess.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Core
2 | {
3 | ///
4 | /// Interface for definite processes
5 | ///
6 | public interface IDefiniteProcess
7 | : IProcess
8 | {
9 | ///
10 | /// Percentage complete
11 | ///
12 | double Complete { get; }
13 |
14 | ///
15 | /// Completed parts so far
16 | ///
17 | int Current { get; }
18 |
19 | ///
20 | /// Number of parts to be completed
21 | ///
22 | int Max { get; }
23 |
24 | ///
25 | /// Increases the number of complete parts
26 | ///
27 | void IncreaseCompletion();
28 | }
29 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IDialogView.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Core
2 | {
3 | ///
4 | /// Interface for dialog views
5 | ///
6 | public interface IDialogView
7 | : IView
8 | {
9 | ///
10 | /// Dialog view title
11 | ///
12 | string Title { get; }
13 |
14 | ///
15 | /// Invoked when the parent dialog window positive button is pressed
16 | ///
17 | void OnPositiveButtonClicked();
18 |
19 | ///
20 | /// Invoked when the parent dialog window negative button is pressed
21 | ///
22 | void OnNegativeButtonClicked();
23 |
24 | ///
25 | /// Invoked when the parent dialog window cancel button is pressed
26 | ///
27 | void OnCancelButtonClicked();
28 | }
29 |
30 | ///
31 | /// Interface for dialog views
32 | ///
33 | /// View model type for dialog view
34 | public interface IDialogView
35 | : IView, IDialogView
36 | where TViewModel : IDialogViewModel
37 | {
38 | }
39 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IGlobalSettings.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Core
4 | {
5 | ///
6 | /// Interface for global settings
7 | ///
8 | public interface IGlobalSettings
9 | : ILibrarySettings
10 | {
11 | ///
12 | /// Delimiter
13 | ///
14 | public const char DELIM = '|';
15 |
16 | ///
17 | /// Globally ignored namespaces
18 | ///
19 | IReadOnlyCollection IgnoredNamespaces { get; }
20 |
21 | ///
22 | /// Globally ignored types
23 | ///
24 | IReadOnlyCollection IgnoredTypes { get; }
25 |
26 | ///
27 | /// Globally ignored but previously selected namespaces
28 | ///
29 | IReadOnlyCollection CheckedIgnoredNamespaces { get; }
30 |
31 | ///
32 | /// Globally ignored but previously selected types
33 | ///
34 | IReadOnlyCollection CheckedIgnoredTypes { get; }
35 |
36 | ///
37 | /// Output directory
38 | ///
39 | string OutputPath { get; }
40 | }
41 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IIndefiniteProcess.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Core
2 | {
3 | ///
4 | /// Interface for indefinite processes
5 | ///
6 | public interface IIndefiniteProcess
7 | : IProcess
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/ILibrarySettings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ModularDoc.Core
4 | {
5 | ///
6 | /// Interface for settings of libraries
7 | ///
8 | public interface ILibrarySettings
9 | {
10 | ///
11 | /// Settings id
12 | ///
13 | Guid Id { get; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IPluginStep.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Threading.Tasks;
3 |
4 | namespace ModularDoc.Core
5 | {
6 | ///
7 | /// Interface for plugin steps
8 | ///
9 | public interface IPluginStep
10 | {
11 | ///
12 | /// Unique identifier of the step
13 | ///
14 | string Id { get; }
15 |
16 | ///
17 | /// Step name
18 | ///
19 | string Name { get; }
20 |
21 | ///
22 | /// Step order number
23 | ///
24 | int StepNumber { get; }
25 |
26 | ///
27 | /// Determines whether this step is last in the step sequence
28 | ///
29 | bool IsLastStep { get; }
30 |
31 | ///
32 | /// Gets the view for this step
33 | ///
34 | /// Settings to load
35 | /// Previous step settings
36 | /// View instance
37 | Task> GetStepViewAsync(IReadOnlyDictionary settings, IReadOnlyDictionary> previousSettings);
38 |
39 | ///
40 | /// Retrieves the id of the view
41 | ///
42 | /// View id
43 | string GetViewId();
44 | }
45 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IProcess.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ModularDoc.Core
4 | {
5 | ///
6 | /// Interface for processes
7 | ///
8 | public interface IProcess
9 | {
10 | ///
11 | /// Invoked whenever the is changed
12 | ///
13 | event EventHandler? StateChanged;
14 |
15 | ///
16 | /// Progress name
17 | ///
18 | public string Name { get; }
19 |
20 | ///
21 | /// State of the given process
22 | ///
23 | public ProcessState State { get; set; }
24 |
25 | ///
26 | /// Enumeration of possible states of a
27 | ///
28 | public enum ProcessState
29 | {
30 | ///
31 | /// The process is waiting
32 | ///
33 | Idle,
34 | ///
35 | /// The process is running
36 | ///
37 | Running,
38 | ///
39 | /// The process has finished successfully
40 | ///
41 | Success,
42 | ///
43 | /// The process has finished unsuccessfully
44 | ///
45 | Failure,
46 | ///
47 | /// The process has been cancelled
48 | ///
49 | Cancelled
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/ISettingsCreator.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Core
4 | {
5 | ///
6 | /// Interface for settings creators
7 | ///
8 | public interface ISettingsCreator
9 | {
10 | ///
11 | /// Converts given to settings of a given type
12 | ///
13 | /// Data to convert to
14 | /// Settings type
15 | /// Conversion result
16 | T CreateSettings(IReadOnlyDictionary data) where T : ILibrarySettings;
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IStepView.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Threading.Tasks;
3 |
4 | namespace ModularDoc.Core
5 | {
6 | ///
7 | /// Interface for views of plugin steps
8 | ///
9 | /// View model type for the view
10 | /// Step settings type
11 | public interface IStepView
12 | : IStepView
13 | where TSettings : ILibrarySettings
14 | where TViewModel : IStepViewModel
15 | {
16 | }
17 |
18 | ///
19 | /// Interface for views of plugin steps
20 | ///
21 | /// View model type for the view
22 | public interface IStepView
23 | : IView
24 | where TViewModel : IStepViewModel
25 | {
26 | ///
27 | /// Step view Id
28 | ///
29 | public string Id => ViewModel.Id;
30 |
31 | ///
32 | /// Sets previous step settings
33 | ///
34 | /// Previous settings
35 | public async Task SetPreviousSettingsAsync(IReadOnlyDictionary> settings)
36 | => await ViewModel.SetPreviousSettings(settings).ConfigureAwait(false);
37 | }
38 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/IViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Threading.Tasks;
4 |
5 | namespace ModularDoc.Core
6 | {
7 | ///
8 | /// Interface for view models
9 | ///
10 | public interface IViewModel
11 | : IDisposable
12 | {
13 | ///
14 | /// Determines whether the view model is loading
15 | ///
16 | public bool IsLoading { get; }
17 |
18 | #region Methods
19 |
20 | ///
21 | /// Sets named for the view model
22 | ///
23 | /// Named arguments to set
24 | Task SetNamedArguments(IReadOnlyDictionary arguments);
25 |
26 | ///
27 | /// Executed when the loads
28 | ///
29 | ///
30 | ValueTask OnLoadedAsync();
31 |
32 | #endregion
33 | }
34 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/LogMessage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ModularDoc.Core
4 | {
5 | ///
6 | /// Logger message structure
7 | ///
8 | public readonly struct LogMessage
9 | {
10 | #region Properties
11 |
12 | ///
13 | /// Log type
14 | ///
15 | public IModularDocLogger.LogType Type { get; }
16 |
17 | ///
18 | /// Log message
19 | ///
20 | public string Message { get; }
21 |
22 | ///
23 | /// Log time
24 | ///
25 | public DateTime Time { get; }
26 |
27 | ///
28 | /// Log source
29 | ///
30 | public string Source { get; }
31 |
32 | #endregion
33 |
34 | ///
35 | /// Default constructor
36 | ///
37 | public LogMessage(IModularDocLogger.LogType type, string message, string source)
38 | {
39 | Type = type;
40 | Message = message;
41 | Source = source;
42 | Time = DateTime.Now;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Core/ModularDoc.Core.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | latest
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 | ModularDoc.Core
11 | ModularDoc.Core
12 | ModularDoc.Core
13 | ModularDoc.Core
14 |
15 |
16 |
17 | ..\..\..\..\bin\Debug\Libraries\Core
18 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Core.xml
19 |
20 |
21 |
22 | ..\..\..\..\bin\Release\Libraries\Core
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Diagrams/IDiagramResolver.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Types;
2 |
3 | namespace ModularDoc.Diagrams
4 | {
5 | ///
6 | /// Interface for diagram resolvers
7 | ///
8 | public interface IDiagramResolver
9 | {
10 | ///
11 | /// Attempts to generate a diagram for the given
12 | ///
13 | /// Type to process
14 | /// Resulting diagram
15 | /// Success if diagram generated
16 | bool TryGenerateDiagram(IType type, out (string name, string content) diagram);
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Diagrams/ModularDoc.Diagrams.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | latest
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Diagrams.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/IDocMember.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Documentation
2 | {
3 | ///
4 | /// Interface for member documentation
5 | ///
6 | public interface IDocMember
7 | {
8 | ///
9 | /// Member types
10 | ///
11 | public enum MemberType
12 | {
13 | ///
14 | /// Member is a method
15 | ///
16 | Method = 'M',
17 | ///
18 | /// Member is a property
19 | ///
20 | Property = 'P',
21 | ///
22 | /// Member is a field
23 | ///
24 | Field = 'F',
25 | ///
26 | /// Member is an event
27 | ///
28 | Event ='E'
29 | }
30 |
31 | #region Properties
32 |
33 | ///
34 | /// Member raw name
35 | ///
36 | string RawName { get; }
37 | ///
38 | /// Member display name
39 | ///
40 | string DisplayName { get; }
41 | ///
42 | /// Member type
43 | ///
44 | MemberType Type { get; }
45 | ///
46 | /// Member documentation
47 | ///
48 | IDocumentation Documentation { get; }
49 |
50 | #endregion
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/IDocResolver.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 | using ModularDoc.Members.Types;
3 |
4 | namespace ModularDoc.Documentation
5 | {
6 | ///
7 | /// Interface for documentation resolvers
8 | ///
9 | public interface IDocResolver
10 | {
11 | ///
12 | /// Resolve xml documentation on given
13 | ///
14 | /// Path to documentation
15 | Task ResolveAsync(string path);
16 |
17 | ///
18 | /// Tries to find a given
19 | ///
20 | /// Type to find
21 | /// Search result
22 | /// True if found
23 | bool TryFindType(IType type, out IDocElement? resultType);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/IDocSettings.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc;
3 | using ModularDoc.Core;
4 |
5 | namespace ModularDoc.Documentation
6 | {
7 | ///
8 | /// Interface for settings
9 | ///
10 | public interface IDocSettings
11 | : ILibrarySettings
12 | {
13 | ///
14 | /// Paths to documentation sources
15 | ///
16 | IReadOnlyCollection Paths { get; set; }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/IDocType.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Documentation
5 | {
6 | ///
7 | /// Interface for element documentation
8 | ///
9 | public interface IDocElement
10 | {
11 | ///
12 | /// Element name
13 | ///
14 | string Name { get; }
15 | ///
16 | /// Element documentation
17 | ///
18 | IDocumentation Documentation { get; }
19 | ///
20 | /// Element members
21 | ///
22 | Lazy> Members { get; }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/IDocumentation.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Documentation.Tags;
3 | using static ModularDoc.Documentation.Tags.ITag;
4 |
5 | namespace ModularDoc.Documentation
6 | {
7 | ///
8 | /// Interface for documentation containers
9 | ///
10 | public interface IDocumentation
11 | {
12 | ///
13 | /// Documentation tags
14 | ///
15 | IReadOnlyDictionary> Tags { get; }
16 |
17 | ///
18 | /// Contains the inheritdoc tag
19 | ///
20 | bool HasInheritDoc { get; }
21 |
22 | ///
23 | /// InheritDoc reference
24 | ///
25 | string InheritDocRef { get; }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/ModularDoc.Documentation.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Documentation.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/Tags/IContent.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Documentation.Tags
2 | {
3 | #pragma warning disable CA1040 // Avoid empty interfaces
4 | ///
5 | /// Base interface for tags within , and
6 | ///
7 | public interface IContent
8 | {
9 | // Empty
10 | }
11 | #pragma warning restore CA1040 // Avoid empty interfaces
12 | }
13 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/Tags/IListTag.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Documentation.Tags
4 | {
5 | ///
6 | /// Interface for documentation list tags
7 | ///
8 | public interface IListTag
9 | : IContent
10 | {
11 | ///
12 | /// Type of given list
13 | ///
14 | public enum ListType
15 | {
16 | ///
17 | /// Numbered list
18 | ///
19 | Number,
20 | ///
21 | /// Bullet list
22 | ///
23 | Bullet,
24 | ///
25 | /// Table list
26 | ///
27 | Table,
28 | }
29 |
30 | #region Properties
31 |
32 | ///
33 | /// Type of list
34 | ///
35 | ListType Type { get; }
36 | ///
37 | /// List headings
38 | ///
39 | ///
40 | /// Used when the list is a
41 | ///
42 | IReadOnlyCollection Headings { get; }
43 | ///
44 | /// List rows
45 | ///
46 | IReadOnlyCollection> Rows { get; }
47 |
48 | #endregion
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Documentation/Tags/ITextTag.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Documentation.Tags
2 | {
3 | ///
4 | /// Interface for tags containing text
5 | ///
6 | public interface ITextTag
7 | : IContent
8 | {
9 | ///
10 | /// Text content
11 | ///
12 | string Content { get; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/Extensions/IHasContent.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Elements.Extensions
2 | {
3 | ///
4 | /// Interface for elements which have content
5 | ///
6 | /// Content type
7 | public interface IHasContent
8 | {
9 | ///
10 | /// Element content
11 | ///
12 | T Content { get; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/Extensions/IHasHeading.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Elements.Extensions
2 | {
3 | ///
4 | /// Interface for types which have headings
5 | ///
6 | public interface IHasHeading
7 | {
8 | ///
9 | /// Heading text
10 | ///
11 | string Heading { get; }
12 | ///
13 | /// Heading level
14 | ///
15 | int Level { get; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/IDiagram.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace ModularDoc.Elements
4 | {
5 | ///
6 | /// Interface for diagram elements
7 | ///
8 | public interface IDiagram
9 | : IElement
10 | {
11 | ///
12 | /// Exports the diagram to an external file
13 | ///
14 | /// Path to the directory to export to
15 | ValueTask ToExternalFile(string directory);
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/IElement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Elements
4 | {
5 | ///
6 | /// Interface for elements
7 | ///
8 | public interface IElement
9 | {
10 | ///
11 | /// Converts given element to a sequence of strings
12 | ///
13 | /// Strings to export
14 | IEnumerable Print();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ILink.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using ModularDoc.Elements.Extensions;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for link elements
8 | ///
9 | public interface ILink
10 | : ITextContent, IHasContent
11 | {
12 | ///
13 | /// Link reference
14 | ///
15 | /// String containing a URI
16 | Lazy Reference { get; }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/IList.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for list elements
8 | ///
9 | public interface IList
10 | : IElement, IHasContent>, IHasHeading
11 | {
12 | ///
13 | /// Possible list types
14 | ///
15 | public enum ListType
16 | {
17 | ///
18 | /// List items will be numbered
19 | ///
20 | Numbered,
21 | ///
22 | /// List items will be dotted
23 | ///
24 | Dotted
25 | }
26 |
27 | ///
28 | /// List type
29 | ///
30 | ListType Type { get; }
31 |
32 | ///
33 | /// Prints element to a string
34 | ///
35 | /// List indentation level
36 | /// Converted list
37 | IEnumerable Print(int indent);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/IPage.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for page elements
8 | ///
9 | public interface IPage
10 | : IElement, IHasContent>, IHasHeading
11 | {
12 | ///
13 | /// Pages within this given page
14 | ///
15 | /// Collection of sub pages
16 | public IReadOnlyCollection Subpages { get; }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ISection.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for section elements
8 | ///
9 | public interface ISection
10 | : IElement, IHasContent>, IHasHeading
11 | {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ITable.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for the table element
8 | ///
9 | public interface ITable
10 | : IElement, IHasContent>>, IHasHeading
11 | {
12 | ///
13 | /// Table headers
14 | ///
15 | /// Collection of header names
16 | IReadOnlyCollection Headings { get; }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/IText.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 |
3 | namespace ModularDoc.Elements
4 | {
5 | ///
6 | /// Interface for text elements
7 | ///
8 | public interface IText
9 | : ITextContent, IHasContent
10 | {
11 | ///
12 | /// Text styles
13 | ///
14 | public enum TextStyle
15 | {
16 | ///
17 | /// No style
18 | ///
19 | Normal,
20 | ///
21 | /// Italic style
22 | ///
23 | Italic,
24 | ///
25 | /// Bold style
26 | ///
27 | Bold,
28 | ///
29 | /// Single line code style
30 | ///
31 | CodeInline,
32 | ///
33 | /// Multi-line code style
34 | ///
35 | Code
36 | }
37 |
38 | ///
39 | /// Text element style
40 | ///
41 | ///
42 | TextStyle Style { get; }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ITextBuilder.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Elements.Extensions;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Elements
5 | {
6 | ///
7 | /// Interface for joining multiple elements
8 | ///
9 | public interface ITextBuilder
10 | : ITextContent, IHasContent>
11 | {
12 | ///
13 | /// Joined text delimiter
14 | ///
15 | string Delimiter { get; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ITextContent.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Elements
2 | {
3 | ///
4 | /// Interface for elements representing test-based content
5 | ///
6 | public interface ITextContent
7 | : IElement
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Elements/ModularDoc.Elements.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Elements.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Linker/ILinkerSettings.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc;
2 | using ModularDoc.Core;
3 |
4 | namespace ModularDoc.Linker
5 | {
6 | ///
7 | /// Interface for object settings
8 | ///
9 | public interface ILinkerSettings
10 | : ILibrarySettings
11 | {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Linker/ModularDoc.Linker.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Linker.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/AccessorType.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Types of member accessors
5 | ///
6 | public enum AccessorType
7 | {
8 | ///
9 | /// Visible to everyone
10 | ///
11 | Public,
12 | ///
13 | /// Visible to children
14 | ///
15 | Protected,
16 | ///
17 | /// Visible within library
18 | ///
19 | Internal,
20 | ///
21 | /// Visible to children within the library
22 | ///
23 | ProtectedInternal,
24 | ///
25 | /// Visible within the file
26 | ///
27 | File,
28 | ///
29 | /// Private visibility
30 | ///
31 | Private
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/ArgumentType.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Types of arguments
5 | ///
6 | public enum ArgumentType
7 | {
8 | ///
9 | /// Argument with no keyword
10 | ///
11 | Normal,
12 | ///
13 | /// Argument with the ref keyword
14 | ///
15 | Ref,
16 | ///
17 | /// Argument with the out keyword
18 | ///
19 | Out,
20 | ///
21 | /// Argument with the in keyword
22 | ///
23 | In,
24 | ///
25 | /// Argument is optional
26 | ///
27 | Optional,
28 | ///
29 | /// Argument is variadic
30 | ///
31 | Param,
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/DotNetType.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Type of the represented .NET type
5 | ///
6 | public enum DotNetType
7 | {
8 | ///
9 | /// Enum type
10 | ///
11 | Enum,
12 | ///
13 | /// Interface type
14 | ///
15 | Interface,
16 | ///
17 | /// Class type
18 | ///
19 | Class,
20 | ///
21 | /// Struct type
22 | ///
23 | Struct,
24 | ///
25 | /// Record type
26 | ///
27 | Record
28 | }
29 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/MemberVisibility.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Member inheritance types
5 | ///
6 | public enum MemberInheritance
7 | {
8 | ///
9 | /// No inheritance
10 | ///
11 | Normal,
12 | ///
13 | /// Abstract member
14 | ///
15 | Abstract,
16 | ///
17 | /// Virtual member
18 | ///
19 | Virtual,
20 | ///
21 | /// Override member
22 | ///
23 | Override,
24 | ///
25 | /// Member is defined within an interface
26 | ///
27 | InterfaceMember,
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/OperatorType.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Method operator types
5 | ///
6 | public enum OperatorType
7 | {
8 | ///
9 | /// Operator type undefined
10 | ///
11 | None,
12 | ///
13 | /// No operator
14 | ///
15 | Normal,
16 | ///
17 | /// Implicit operator
18 | ///
19 | Implicit,
20 | ///
21 | /// Explicit operator
22 | ///
23 | Explicit
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Enums/Variance.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Enums
2 | {
3 | ///
4 | /// Generic argument variance types
5 | ///
6 | public enum Variance
7 | {
8 | ///
9 | /// No variance
10 | ///
11 | NonVariant,
12 | ///
13 | /// Covariance
14 | ///
15 | Covariant,
16 | ///
17 | /// Contra variance
18 | ///
19 | Contravariant,
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IArgument.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 | using ModularDoc.Members.ResolvedTypes;
3 |
4 | namespace ModularDoc.Members.Members
5 | {
6 | ///
7 | /// Interface for arguments
8 | ///
9 | public interface IArgument
10 | {
11 | ///
12 | /// Argument name
13 | ///
14 | string Name { get; }
15 |
16 | ///
17 | /// Argument keyword
18 | ///
19 | ArgumentType Keyword { get; }
20 |
21 | ///
22 | /// Argument type
23 | ///
24 | IResType Type { get; }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IConstructor.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Members.Members
4 | {
5 | ///
6 | /// Interface for type constructors
7 | ///
8 | public interface IConstructor
9 | : IMember
10 | {
11 | ///
12 | /// Method arguments
13 | ///
14 | IReadOnlyCollection Arguments { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IDelegate.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.ResolvedTypes;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Members.Members
5 | {
6 | ///
7 | /// Interface for delegate types
8 | ///
9 | public interface IDelegate
10 | : IMember
11 | {
12 | ///
13 | /// Delegate arguments
14 | ///
15 | IReadOnlyCollection Arguments { get; }
16 | ///
17 | /// Method generic arguments
18 | ///
19 | IReadOnlyDictionary> Generics { get; }
20 | ///
21 | /// Method return type
22 | ///
23 | IResType? Returns { get; }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IEnumField.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Members
2 | {
3 | ///
4 | /// Interface for enum field entries
5 | ///
6 | public interface IEnumField
7 | : IMember
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IEvent.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 | using ModularDoc.Members.ResolvedTypes;
3 |
4 | namespace ModularDoc.Members.Members
5 | {
6 | ///
7 | /// Interface for events
8 | ///
9 | public interface IEvent
10 | : IMember
11 | {
12 | ///
13 | /// Event inheritance type
14 | ///
15 | MemberInheritance Inheritance { get; }
16 |
17 | ///
18 | /// Event type
19 | ///
20 | IResType Type { get; }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IField.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Members
2 | {
3 | ///
4 | /// Interface for type fields
5 | ///
6 | public interface IField
7 | : IMember
8 | {
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IMember.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 |
3 | namespace ModularDoc.Members.Members
4 | {
5 | ///
6 | /// Interface for type members
7 | ///
8 | public interface IMember
9 | {
10 | #region Properties
11 |
12 | ///
13 | /// Is method static
14 | ///
15 | bool IsStatic { get; }
16 |
17 | ///
18 | /// Member name
19 | ///
20 | string Name { get; }
21 |
22 | ///
23 | /// Raw member name
24 | ///
25 | string RawName { get; }
26 |
27 | ///
28 | /// Member accessor
29 | ///
30 | AccessorType Accessor { get; }
31 |
32 | ///
33 | /// Line number and source file of the given member
34 | ///
35 | (int line, string source)? LineSource { get; }
36 |
37 | #endregion
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IMethod.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Members.Enums;
3 | using ModularDoc.Members.ResolvedTypes;
4 |
5 | namespace ModularDoc.Members.Members
6 | {
7 | ///
8 | /// Interface for methods
9 | ///
10 | public interface IMethod
11 | : IConstructor
12 | {
13 | ///
14 | /// Method visibility
15 | ///
16 | MemberInheritance Inheritance { get; }
17 |
18 | ///
19 | /// Method generic arguments
20 | ///
21 | IReadOnlyDictionary> Generics { get; }
22 |
23 | ///
24 | /// Determines whether the method is asynchronous
25 | ///
26 | bool IsAsync { get; }
27 |
28 | ///
29 | /// Operator type
30 | ///
31 | #pragma warning disable CA1716 // Identifiers should not match keywords
32 | OperatorType Operator { get; }
33 | #pragma warning restore CA1716 // Identifiers should not match keywords
34 |
35 | ///
36 | /// Method return type
37 | ///
38 | IResType? Returns { get; }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Members/IProperty.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 | using ModularDoc.Members.ResolvedTypes;
3 | using ModularDoc.Members.Types;
4 |
5 | namespace ModularDoc.Members.Members
6 | {
7 | ///
8 | /// Interface for properties
9 | ///
10 | public interface IProperty
11 | : IMember
12 | {
13 | ///
14 | /// Property visibility
15 | ///
16 | MemberInheritance Inheritance { get; }
17 |
18 | ///
19 | /// Property type
20 | ///
21 | IResType Type { get; }
22 |
23 | ///
24 | /// Determines whether the property is readonly
25 | ///
26 | ///
27 | /// Applicable only for properties
28 | ///
29 | bool IsReadOnly { get; }
30 |
31 | ///
32 | /// Property get accessor type
33 | ///
34 | AccessorType? GetAccessor { get; }
35 |
36 | ///
37 | /// Property set accessor type
38 | ///
39 | AccessorType? SetAccessor { get; }
40 |
41 | ///
42 | /// Is the property setter an init type
43 | ///
44 | bool IsSetInit { get; }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/ModularDoc.Members.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 9
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Members.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/ResolvedTypes/IResArray.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.ResolvedTypes
2 | {
3 | ///
4 | /// Interface for resolved arrays
5 | ///
6 | public interface IResArray
7 | {
8 | ///
9 | /// Type of given array
10 | ///
11 | IResType ArrayType { get; }
12 |
13 | ///
14 | /// Determines whether the array is a jagged array type
15 | ///
16 | bool IsJagged { get; }
17 |
18 | ///
19 | /// Dimension of array
20 | ///
21 | int Dimension { get; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/ResolvedTypes/IResGeneric.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Members.ResolvedTypes
4 | {
5 | ///
6 | /// Interface for generic resolved types
7 | ///
8 | public interface IResGeneric
9 | : IResType
10 | {
11 | ///
12 | /// Generic parameter types
13 | ///
14 | IReadOnlyCollection Generics { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/ResolvedTypes/IResTuple.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Members.ResolvedTypes
4 | {
5 | ///
6 | /// Interface for resolved tuples
7 | ///
8 | public interface IResTuple
9 | : IResType
10 | {
11 | ///
12 | /// Tuple fields
13 | ///
14 | IReadOnlyCollection<(string name, IResType type)> Fields { get; }
15 | ///
16 | /// Determines whether the tuple is a value tuple
17 | ///
18 | bool IsValueTuple { get; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/ResolvedTypes/IResType.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using ModularDoc.Members.Types;
3 |
4 | namespace ModularDoc.Members.ResolvedTypes
5 | {
6 | ///
7 | /// Interface for resolved types
8 | ///
9 | public interface IResType
10 | {
11 | #region Properties
12 |
13 | ///
14 | /// Resolved type display name
15 | ///
16 | string DisplayName { get; }
17 |
18 | ///
19 | /// Resolved type name for documentation
20 | ///
21 | string DocumentationName { get; }
22 |
23 | ///
24 | /// Resolved type raw name
25 | ///
26 | string RawName { get; }
27 |
28 | ///
29 | /// Resolved type namespace
30 | ///
31 | string TypeNamespace { get; }
32 |
33 | ///
34 | /// Reference to known type
35 | ///
36 | Lazy Reference { get; }
37 |
38 | ///
39 | /// Is the type a reference
40 | ///
41 | bool IsByRef { get; }
42 |
43 | #endregion
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/IClass.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Members.Members;
3 | using ModularDoc.Members.ResolvedTypes;
4 |
5 | namespace ModularDoc.Members.Types
6 | {
7 | ///
8 | /// Interface for classes
9 | ///
10 | public interface IClass
11 | : IInterface
12 | {
13 | ///
14 | /// Determines whether this class is static
15 | ///
16 | bool IsStatic { get; }
17 |
18 | ///
19 | /// Determines whether this class is sealed
20 | ///
21 | bool IsSealed { get; }
22 |
23 | ///
24 | /// Determines whether this class is abstract
25 | ///
26 | bool IsAbstract { get; }
27 |
28 | ///
29 | /// Inherited base class
30 | ///
31 | IResType? BaseClass { get; }
32 |
33 | ///
34 | /// Class constructors
35 | ///
36 | IReadOnlyCollection Constructors { get; }
37 |
38 | ///
39 | /// Class fields
40 | ///
41 | IReadOnlyCollection Fields { get; }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/IEnum.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Members.Members;
3 |
4 | namespace ModularDoc.Members.Types
5 | {
6 | ///
7 | /// Interface for enums
8 | ///
9 | public interface IEnum
10 | : IType
11 | {
12 | ///
13 | /// Enum fields
14 | ///
15 | IReadOnlyCollection Fields { get; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/IRecord.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Members.Types
2 | {
3 | ///
4 | /// Interface for records
5 | ///
6 | public interface IRecord
7 | : IClass
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/IStruct.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Members.Members;
3 |
4 | namespace ModularDoc.Members.Types
5 | {
6 | ///
7 | /// Interface for struct types
8 | ///
9 | public interface IStruct
10 | : IInterface
11 | {
12 | ///
13 | /// Struct constructors
14 | ///
15 | IReadOnlyCollection Constructors { get; }
16 |
17 | ///
18 | /// Determines whether the struct is readonly
19 | ///
20 | bool IsReadOnly { get; }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/IType.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Enums;
2 |
3 | namespace ModularDoc.Members.Types
4 | {
5 | ///
6 | /// Interface for types
7 | ///
8 | public interface IType
9 | {
10 | ///
11 | /// Reflection fullname with namespace
12 | ///
13 | string RawName { get; }
14 |
15 | ///
16 | /// Type name
17 | ///
18 | string Name { get; }
19 |
20 | ///
21 | /// Type namespace
22 | ///
23 | string TypeNamespace { get; }
24 |
25 | ///
26 | /// Determines whether this type is nested
27 | ///
28 | bool IsNested { get; }
29 |
30 | ///
31 | /// Type accessor
32 | ///
33 | AccessorType Accessor { get; }
34 |
35 | ///
36 | /// Determines the dot net type represented by this instance
37 | ///
38 | DotNetType Type { get; }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Members/Types/TreeNode.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using ModularDoc.Members.ResolvedTypes;
3 |
4 | namespace ModularDoc.Members.Types
5 | {
6 | ///
7 | /// Node of a tree structure
8 | ///
9 | public class TreeNode
10 | {
11 | ///
12 | /// Node name
13 | ///
14 | public string Name { get; }
15 |
16 | ///
17 | /// Contained node type
18 | ///
19 | public IResType Value { get; }
20 |
21 | ///
22 | /// Child nodes
23 | ///
24 | public IReadOnlyCollection Children { get; }
25 |
26 | ///
27 | /// Default constructor
28 | ///
29 | public TreeNode(string name, IResType value, IReadOnlyCollection children)
30 | {
31 | Name = name;
32 | Value = value;
33 | Children = children;
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Printer/IPrinter.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Members.Types;
2 | using System.Collections.Generic;
3 | using System.Threading.Tasks;
4 |
5 | namespace ModularDoc.Printer
6 | {
7 | ///
8 | /// Interface for documentation printers
9 | ///
10 | public interface IPrinter
11 | {
12 | ///
13 | /// Prints the to the specified
14 | ///
15 | /// Types to print
16 | /// Output path
17 | Task Print(IEnumerable types, string path);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Libraries/Core/ModularDoc.Printer/ModularDoc.Printer.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | 8.0
7 | enable
8 | Denis Akopyan
9 | https://github.com/hailstorm75/ModularDoc
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\Core
14 | ..\..\..\..\bin\Debug\Libraries\Core\ModularDoc.Printer.xml
15 |
16 |
17 |
18 | ..\..\..\..\bin\Release\Libraries\Core
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/BaseProcess.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using ModularDoc;
3 | using ModularDoc.Core;
4 | using ReactiveUI;
5 |
6 | namespace ModularDoc.Helpers
7 | {
8 | public abstract class BaseProcess
9 | : ReactiveObject, IProcess
10 | {
11 | private IProcess.ProcessState m_state;
12 |
13 | ///
14 | public event EventHandler? StateChanged;
15 |
16 | ///
17 | public string Name { get; }
18 |
19 | ///
20 | public IProcess.ProcessState State
21 | {
22 | get => m_state;
23 | set
24 | {
25 | m_state = value;
26 | OnStateChanged(value);
27 | this.RaisePropertyChanged(nameof(State));
28 | }
29 | }
30 |
31 | ///
32 | /// Default constructor
33 | ///
34 | protected BaseProcess(string name)
35 | {
36 | Name = name;
37 | }
38 |
39 | private void OnStateChanged(IProcess.ProcessState e)
40 | => StateChanged?.Invoke(this, e);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/BaseTrie.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace ModularDoc.Helpers
5 | {
6 | public abstract class BaseTrie
7 | where T : notnull
8 | {
9 | protected readonly TrieNode m_root;
10 |
11 | protected BaseTrie()
12 | => m_root = new TrieNode();
13 |
14 | ///
15 | /// Trie root node
16 | ///
17 | public TrieNode Root => m_root;
18 |
19 | public void AddRange(IEnumerable items)
20 | {
21 | if (items is null)
22 | throw new ArgumentNullException(nameof(items));
23 |
24 | foreach (var item in items)
25 | AddItem(item);
26 | }
27 |
28 | protected abstract IEnumerable Split(T item);
29 |
30 | protected void AddItem(T item)
31 | {
32 | var split = Split(item);
33 |
34 | var root = m_root;
35 | foreach (var ns in split)
36 | root = root.Add(ns);
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/DefiniteProcess.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using ModularDoc;
3 | using ModularDoc.Core;
4 | using ReactiveUI;
5 |
6 | namespace ModularDoc.Helpers
7 | {
8 | public class DefiniteProcess
9 | : BaseProcess, IDefiniteProcess
10 | {
11 | private int m_current;
12 |
13 | ///
14 | public double Complete { get; private set; }
15 |
16 | ///
17 | public int Current => m_current;
18 |
19 | ///
20 | public int Max { get; }
21 |
22 | ///
23 | public DefiniteProcess(string name, int max) : base(name)
24 | => Max = max;
25 |
26 | ///
27 | public void IncreaseCompletion()
28 | {
29 | Complete = Interlocked.Increment(ref m_current) / (double)Max;
30 |
31 | this.RaisePropertyChanged(nameof(Complete));
32 | this.RaisePropertyChanged(nameof(Current));
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/IComponentMetadata.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Helpers
2 | {
3 | public interface IComponentMetadata
4 | {
5 | string Id { get; set; }
6 | string Name { get; set; }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/IThemeManager.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.Helpers
2 | {
3 | public interface IThemeManager
4 | {
5 | ///
6 | /// Retrieves the current state of the Dark mode
7 | ///
8 | ///
9 | bool GetDarkMode();
10 |
11 | ///
12 | /// Sets the Dark mode state
13 | ///
14 | /// True if Dark mode is to be enabled
15 | void SetDarkMode(bool enabled);
16 |
17 | ///
18 | /// Saves all current theme settings
19 | ///
20 | void SaveThemeSettings();
21 |
22 | ///
23 | /// Loads all current theme settings
24 | ///
25 | void LoadThemeSettings();
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/IndefiniteProcess.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc;
2 | using ModularDoc.Core;
3 |
4 | namespace ModularDoc.Helpers
5 | {
6 | public class IndefiniteProcess
7 | : BaseProcess, IIndefiniteProcess
8 | {
9 | ///
10 | public IndefiniteProcess(string name)
11 | : base(name)
12 | {
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/Logger.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using ModularDoc;
3 | using ModularDoc.Core;
4 |
5 | namespace ModularDoc.Helpers
6 | {
7 | public class Logger
8 | : IModularDocLogger
9 | {
10 | ///
11 | public event EventHandler? NewLog;
12 |
13 | ///
14 | public void Info(string message, string source = "Unspecified") => NewLog?.Invoke(this, new LogMessage(IModularDocLogger.LogType.Info ,message, source));
15 |
16 | ///
17 | public void Debug(string message, string source = "Unspecified") => NewLog?.Invoke(this, new LogMessage(IModularDocLogger.LogType.Debug, message, source));
18 |
19 | ///
20 | public void Error(string message, string source = "Unspecified") => NewLog?.Invoke(this, new LogMessage(IModularDocLogger.LogType.Error, message, source));
21 |
22 | ///
23 | public void Warning(string message, string source = "Unspecified") => NewLog?.Invoke(this, new LogMessage(IModularDocLogger.LogType.Warning, message, source));
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/Option.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ModularDoc.Helpers
4 | {
5 | public readonly struct Option
6 | {
7 | private readonly T? m_value;
8 |
9 | public bool IsEmpty => m_value is null;
10 |
11 | public bool IsPresent => !IsEmpty;
12 |
13 | private Option(T? value) => m_value = value;
14 |
15 | public static Option Of(T? value)
16 | => new(value);
17 |
18 | public static Option OfEmpty()
19 | => new(default);
20 |
21 | public T Get()
22 | {
23 | if (IsEmpty)
24 | throw new Exception();
25 |
26 | return m_value!;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.Helpers/TrieNode.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ModularDoc.Helpers
4 | {
5 | public class TrieNode where T : notnull
6 | {
7 | private readonly Dictionary> m_roots;
8 |
9 | public IReadOnlyDictionary> Nodes
10 | => m_roots;
11 |
12 | public TrieNode()
13 | => m_roots = new Dictionary>();
14 |
15 | public TrieNode Add(T item)
16 | {
17 | if (m_roots.ContainsKey(item))
18 | return m_roots[item];
19 |
20 | var node = new TrieNode();
21 | m_roots.Add(item, node);
22 |
23 | return node;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Libraries/Helpers/ModularDoc.MVVM.Helpers/BaseStepUserControl.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc;
2 | using ModularDoc.Core;
3 |
4 | namespace ModularDoc.MVVM.Helpers
5 | {
6 | public abstract class BaseStepUserControl
7 | : BaseUserControl, IStepView
8 | where TSettings : ILibrarySettings
9 | where TViewModel : IStepViewModel
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels.GitMarkdown/Selection.cs:
--------------------------------------------------------------------------------
1 | namespace ModularDoc.ViewModels.GitMarkdown
2 | {
3 | public readonly struct Selection
4 | {
5 | ///
6 | /// Displayed name
7 | ///
8 | public string DisplayName { get; }
9 |
10 | ///
11 | /// Option value
12 | ///
13 | public int Value { get; }
14 |
15 | ///
16 | /// Default constructor
17 | ///
18 | public Selection(string displayName, int value)
19 | {
20 | DisplayName = displayName;
21 | Value = value;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels.Main/ModularDoc.ViewModels.Main.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | false
7 | Denis Akopyan
8 | https://github.com/hailstorm75/ModularDoc
9 |
10 |
11 |
12 | ..\..\..\..\bin\Debug\Libraries\ViewModels.Main
13 |
14 |
15 |
16 | ..\..\..\..\bin\Release\Libraries\ViewModels.Main
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels.Main/StartupViewModel.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.MVVM.Helpers;
2 |
3 | namespace ModularDoc.ViewModels.Main
4 | {
5 | public class StartupViewModel
6 | : BaseViewModel, IStartupViewModel
7 | {
8 | }
9 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels/ICanGoBack.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 |
3 | namespace ModularDoc.ViewModels
4 | {
5 | ///
6 | /// Interface for view models with the back navigation feature
7 | ///
8 | public interface ICanGoBack
9 | {
10 | ///
11 | /// Command for navigating to the previous view
12 | ///
13 | ICommand BackCommand { get; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels/ISettingsViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 | using ModularDoc;
3 | using ModularDoc.Core;
4 |
5 | namespace ModularDoc.ViewModels
6 | {
7 | ///
8 | /// Interface for settings view models
9 | ///
10 | public interface ISettingsViewModel
11 | : IViewModel
12 | {
13 | ///
14 | /// Navigates back to the home page
15 | ///
16 | ICommand BackCommand { get; }
17 |
18 | ///
19 | /// Determines whether the dark mode is on
20 | ///
21 | bool IsDarkModeOn { get; }
22 | }
23 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels/IStartupViewModel.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc;
2 | using ModularDoc.Core;
3 |
4 | namespace ModularDoc.ViewModels
5 | {
6 | ///
7 | /// Interface for startup view models
8 | ///
9 | public interface IStartupViewModel
10 | : IViewModel
11 | {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Libraries/ViewModels/ModularDoc.ViewModels/ModularDoc.ViewModels.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | false
6 | enable
7 | Denis Akopyan
8 | https://github.com/hailstorm75/ModularDoc
9 | latest
10 |
11 |
12 |
13 | ..\..\..\..\bin\Debug\Libraries\ViewModels
14 |
15 |
16 |
17 | ..\..\..\..\bin\Release\Libraries\ViewModels
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/AssemlyStepView.axaml.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc;
2 | using ModularDoc.Core;
3 | using ModularDoc.Members;
4 | using ModularDoc.MVVM.Helpers;
5 |
6 | namespace ModularDoc.Views.GitMarkdown
7 | {
8 | public class AssemblyStepView
9 | : BaseStepUserControl, IMemberSettings>
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/Converters/NegateConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using Avalonia.Data.Converters;
4 |
5 | namespace ModularDoc.Views.GitMarkdown.Converters
6 | {
7 | public class NegateConverter
8 | : IValueConverter
9 | {
10 | ///
11 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
12 | {
13 | if (value is not bool boolean)
14 | return value;
15 |
16 | return !boolean;
17 | }
18 |
19 | ///
20 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
21 | {
22 | if (value is not bool boolean)
23 | return value;
24 |
25 | return !boolean;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/Converters/PathToDirectoryConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.IO;
4 | using Avalonia.Data.Converters;
5 |
6 | namespace ModularDoc.Views.GitMarkdown.Converters
7 | {
8 | public class PathToDirectoryConverter
9 | : IValueConverter
10 | {
11 | ///
12 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
13 | {
14 | if (value is not string path)
15 | return value!;
16 |
17 | var index = path.LastIndexOf(Path.DirectorySeparatorChar) + 1;
18 | return index > 0
19 | ? path.Remove(index)
20 | : path;
21 | }
22 |
23 | ///
24 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException();
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/Converters/PathToFileConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.IO;
4 | using Avalonia.Data.Converters;
5 |
6 | namespace ModularDoc.Views.GitMarkdown.Converters
7 | {
8 | public class PathToFileConverter
9 | : IValueConverter
10 | {
11 | ///
12 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
13 | {
14 | if (value is not string path)
15 | return value!;
16 |
17 | var index = path.LastIndexOf(Path.DirectorySeparatorChar) + 1;
18 | return index > 0
19 | ? path[index..]
20 | : path;
21 | }
22 |
23 | ///
24 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException();
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/DocumentationStepView.axaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using Avalonia.Controls;
3 | using Avalonia.Markup.Xaml;
4 | using ModularDoc;
5 | using ModularDoc.Core;
6 | using ModularDoc.Documentation;
7 | using ModularDoc.MVVM.Helpers;
8 |
9 | namespace ModularDoc.Views.GitMarkdown
10 | {
11 | public class DocumentationStepView
12 | : BaseStepUserControl, IDocSettings>
13 | {
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/GlobalStepView.axaml.cs:
--------------------------------------------------------------------------------
1 | using Avalonia.Controls;
2 | using Avalonia.Interactivity;
3 | using Avalonia.Markup.Xaml;
4 | using ModularDoc;
5 | using ModularDoc.Core;
6 | using ModularDoc.MVVM.Helpers;
7 |
8 | namespace ModularDoc.Views.GitMarkdown
9 | {
10 | public class GlobalStepView
11 | : BaseStepUserControl, IGlobalSettings>
12 | {
13 | private readonly TreeView m_treeView;
14 |
15 | ///
16 | /// Default constructor
17 | ///
18 | public GlobalStepView()
19 | {
20 | AvaloniaXamlLoader.Load(this);
21 | m_treeView = this.FindControl("AvailableNamespacesTree");
22 | }
23 |
24 | private void ButtonExpandAll_OnCLick(object? sender, RoutedEventArgs e)
25 | => m_treeView.ExpandAllTreeViewItems();
26 |
27 | private void ButtonCollapseAll_OnCLick(object? sender, RoutedEventArgs e)
28 | => m_treeView.CollapseAllTreeViewItems();
29 | }
30 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.GitMarkdown/LinkerStepView.axaml.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.Core;
2 | using ModularDoc.Linker;
3 | using ModularDoc.MVVM.Helpers;
4 |
5 | namespace ModularDoc.Views.GitMarkdown
6 | {
7 | public class LinkerStepView
8 | : BaseStepUserControl, ILinkerSettings>
9 | {
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.Main/ConfiguratorView.axaml.cs:
--------------------------------------------------------------------------------
1 | using ModularDoc.MVVM.Helpers;
2 | using ModularDoc.ViewModels;
3 |
4 | namespace ModularDoc.Views.Main
5 | {
6 | public class ConfiguratorView
7 | : BaseUserControl, IConfiguratorView
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Libraries/Views/ModularDoc.Views.Main/Converters/ActivePluginStepToBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using Avalonia;
4 | using Avalonia.Data.Converters;
5 | using ModularDoc;
6 | using ModularDoc.Core;
7 |
8 | namespace ModularDoc.Views.Main.Converters
9 | {
10 | public class ActivePluginStepToBoolConverter
11 | : AvaloniaObject, IValueConverter
12 | {
13 | public static readonly StyledProperty