├── .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 CurrentPluginProperty 14 | = AvaloniaProperty.Register(nameof(CurrentPlugin)); 15 | public object? CurrentPlugin 16 | { 17 | get => GetValue(CurrentPluginProperty); 18 | set => SetValue(CurrentPluginProperty, value); 19 | } 20 | 21 | /// 22 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 23 | => value is IPluginStep step && CurrentPlugin is IPluginStep currentStep && step.Id.Equals(currentStep.Id); 24 | 25 | /// 26 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException(); 27 | } 28 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/BitmapConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using System.IO; 5 | using Bitmap = Avalonia.Media.Imaging.Bitmap; 6 | 7 | namespace ModularDoc.Views.Main.Converters 8 | { 9 | public class BitmapConverter 10 | : IValueConverter 11 | { 12 | private static Bitmap? Decode(Stream? stream, string? width) 13 | => stream is null 14 | ? default 15 | : Bitmap.DecodeToWidth(stream, width is not null && int.TryParse(width, out var num) ? num : 256); 16 | 17 | /// 18 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 19 | => Decode(value as Stream, parameter as string); 20 | 21 | /// 22 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); 23 | } 24 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/IsEmptyConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Globalization; 4 | using Avalonia.Data.Converters; 5 | using Castle.Core.Internal; 6 | 7 | namespace ModularDoc.Views.Main.Converters 8 | { 9 | public class IsEmptyConverter 10 | : IValueConverter 11 | { 12 | /// 13 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 14 | { 15 | var negate = parameter is string negateString && bool.TryParse(negateString, out var result) && result; 16 | 17 | var evaluation = value switch 18 | { 19 | IEnumerable item => item.IsNullOrEmpty(), 20 | int number => number == 0, 21 | _ => false 22 | }; 23 | 24 | return negate 25 | ? !evaluation 26 | : evaluation; 27 | } 28 | 29 | /// 30 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); 31 | } 32 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/LogTypeToColorConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using Avalonia.Media; 5 | using ModularDoc; 6 | using ModularDoc.Core; 7 | 8 | namespace ModularDoc.Views.Main.Converters 9 | { 10 | public class LogTypeToColorConverter 11 | : IValueConverter 12 | { 13 | /// 14 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 15 | { 16 | if (value is not IModularDocLogger.LogType logType) 17 | return null!; 18 | 19 | return logType switch 20 | { 21 | IModularDocLogger.LogType.Info => Brushes.MediumBlue, 22 | IModularDocLogger.LogType.Error => Brushes.Red, 23 | IModularDocLogger.LogType.Warning => Brushes.GreenYellow, 24 | IModularDocLogger.LogType.Debug => Brushes.Black, 25 | _ => throw new ArgumentOutOfRangeException() 26 | }; 27 | } 28 | 29 | /// 30 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 31 | => throw new NotSupportedException(); 32 | } 33 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/LogTypeToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using ModularDoc; 5 | using ModularDoc.Core; 6 | 7 | namespace ModularDoc.Views.Main.Converters 8 | { 9 | public class LogTypeToStringConverter 10 | : IValueConverter 11 | { 12 | /// 13 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 14 | { 15 | if (value is not IModularDocLogger.LogType logType) 16 | return null!; 17 | 18 | return logType switch 19 | { 20 | IModularDocLogger.LogType.Info => "Info", 21 | IModularDocLogger.LogType.Error => "Error", 22 | IModularDocLogger.LogType.Warning => "Warning", 23 | IModularDocLogger.LogType.Debug => "Debug", 24 | _ => throw new ArgumentOutOfRangeException() 25 | }; 26 | } 27 | 28 | /// 29 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 30 | => value switch 31 | { 32 | "Info" => IModularDocLogger.LogType.Info, 33 | "Error" => IModularDocLogger.LogType.Error, 34 | "Warning" => IModularDocLogger.LogType.Warning, 35 | "Debug" => IModularDocLogger.LogType.Debug, 36 | _ => throw new ArgumentOutOfRangeException() 37 | }; 38 | } 39 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/ProcessStateToColorConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using Avalonia.Media; 5 | using ModularDoc; 6 | using ModularDoc.Core; 7 | 8 | namespace ModularDoc.Views.Main.Converters 9 | { 10 | public class ProcessStateToColorConverter 11 | : IValueConverter 12 | { 13 | /// 14 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 15 | { 16 | if (value is not IProcess.ProcessState state) 17 | return null!; 18 | 19 | return state switch 20 | { 21 | IProcess.ProcessState.Idle => Brushes.Black, 22 | IProcess.ProcessState.Running => Brushes.Black, 23 | IProcess.ProcessState.Success => Brushes.Green, 24 | IProcess.ProcessState.Failure => Brushes.Red, 25 | IProcess.ProcessState.Cancelled => Brushes.DarkSalmon, 26 | _ => throw new ArgumentOutOfRangeException() 27 | }; 28 | } 29 | 30 | /// 31 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 32 | => throw new NotSupportedException(); 33 | } 34 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/ProcessStateToIconConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using ModularDoc; 5 | using ModularDoc.Core; 6 | 7 | namespace ModularDoc.Views.Main.Converters 8 | { 9 | public class ProcessStateToIconConverter 10 | : IValueConverter 11 | { 12 | /// 13 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 14 | { 15 | if (value is not IProcess.ProcessState state) 16 | return null!; 17 | 18 | return state switch 19 | { 20 | IProcess.ProcessState.Idle => "fa-clock", 21 | IProcess.ProcessState.Running => "fa-spinner", 22 | IProcess.ProcessState.Success => "fa-check-circle", 23 | IProcess.ProcessState.Failure => "fa-times-circle", 24 | IProcess.ProcessState.Cancelled => "fa-ban", 25 | _ => throw new ArgumentOutOfRangeException() 26 | }; 27 | } 28 | 29 | /// 30 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); 31 | } 32 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/Converters/ProcessStateToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | using ModularDoc; 5 | using ModularDoc.Core; 6 | 7 | namespace ModularDoc.Views.Main.Converters 8 | { 9 | public class ProcessStateToVisibilityConverter 10 | : IValueConverter 11 | { 12 | /// 13 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 14 | { 15 | if (value is not IProcess.ProcessState state) 16 | return null!; 17 | 18 | var result = state == IProcess.ProcessState.Running; 19 | return parameter is null ? result : !result; 20 | } 21 | 22 | /// 23 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); 24 | } 25 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/HomeView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using ModularDoc.MVVM.Helpers; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views.Main 6 | { 7 | public class HomeView 8 | : BaseUserControl, IHomeView 9 | { 10 | // ReSharper disable once UnusedParameter.Local 11 | private void SplitView_OnPaneClosing(object? sender, SplitViewPaneClosingEventArgs e) 12 | => e.Cancel = ViewModel.SelectedPlugin is not null; 13 | } 14 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/SettingsView.axaml.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc.MVVM.Helpers; 2 | using ModularDoc.ViewModels; 3 | 4 | namespace ModularDoc.Views.Main 5 | { 6 | public class SettingsView 7 | : BaseUserControl, ISettingsView 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/StartupView.axaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/StartupView.axaml.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc.MVVM.Helpers; 2 | using ModularDoc.ViewModels; 3 | 4 | namespace ModularDoc.Views.Main 5 | { 6 | public class StartupView 7 | : BaseUserControl, IStartupView 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/SummaryView.axaml.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc.MVVM.Helpers; 2 | using ModularDoc.ViewModels; 3 | 4 | namespace ModularDoc.Views.Main 5 | { 6 | public class SummaryView 7 | : BaseUserControl, ISummaryView 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views.Main/TreeHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using Avalonia.Controls; 4 | using Avalonia.Controls.Primitives; 5 | using Avalonia.VisualTree; 6 | 7 | namespace ModularDoc.Views.Main 8 | { 9 | internal static class TreeHelper 10 | { 11 | public static List GetVisualTreeObjects(this IVisual obj) where T : IVisual 12 | { 13 | var objects = new List(); 14 | foreach (var child in obj.GetVisualChildren()) 15 | { 16 | if (child is T requestedType) 17 | objects.Add(requestedType); 18 | objects.AddRange(child.GetVisualTreeObjects()); 19 | } 20 | 21 | return objects; 22 | } 23 | 24 | public static void ToggleExpander(this DataGrid dataGrid, bool expand) 25 | { 26 | var groupHeaderList = GetVisualTreeObjects(dataGrid); 27 | if (groupHeaderList.Count == 0) 28 | return; 29 | 30 | foreach (var e in groupHeaderList.SelectMany(GetVisualTreeObjects)) 31 | e.IsChecked = expand; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/IConfiguratorView.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc; 2 | using ModularDoc.Core; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views 6 | { 7 | public interface IConfiguratorView 8 | : IView 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/IHomeView.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc; 2 | using ModularDoc.Core; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views 6 | { 7 | public interface IHomeView 8 | : IView 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/ISettingsView.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc; 2 | using ModularDoc.Core; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views 6 | { 7 | public interface ISettingsView 8 | : IView 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/IStartupView.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc; 2 | using ModularDoc.Core; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views 6 | { 7 | public interface IStartupView 8 | : IView 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/ISummaryView.cs: -------------------------------------------------------------------------------- 1 | using ModularDoc; 2 | using ModularDoc.Core; 3 | using ModularDoc.ViewModels; 4 | 5 | namespace ModularDoc.Views 6 | { 7 | public interface ISummaryView 8 | : IView 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Libraries/Views/ModularDoc.Views/ModularDoc.Views.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | false 6 | enable 7 | Denis Akopyan 8 | https://github.com/hailstorm75/ModularDoc 9 | 10 | 11 | 12 | ..\..\..\..\bin\Debug\Libraries\Views 13 | 14 | 15 | 16 | ..\..\..\..\bin\Release\Libraries\Views 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/ModularDoc.App/Assets/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hailstorm75/ModularDoc/8433ae328620bf95ea003da12c8d1385c33a400f/src/ModularDoc.App/Assets/logo.ico -------------------------------------------------------------------------------- /src/ModularDoc.App/Program.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.ReactiveUI; 3 | using Projektanker.Icons.Avalonia; 4 | using Projektanker.Icons.Avalonia.FontAwesome; 5 | 6 | namespace ModularDoc.App 7 | { 8 | public static class Program 9 | { 10 | // Initialization code. Don't use any Avalonia, third-party APIs or any 11 | // SynchronizationContext-reliant code before AppMain is called: things aren't initialized 12 | // yet and stuff might break. 13 | public static void Main(string[] args) 14 | => BuildAvaloniaApp() 15 | .StartWithClassicDesktopLifetime(args); 16 | 17 | // Avalonia configuration, don't remove; also used by visual designer. 18 | private static AppBuilder BuildAvaloniaApp() 19 | => AppBuilder.Configure() 20 | .UsePlatformDetect() 21 | .LogToTrace() 22 | .WithIcons(container => container.Register()) 23 | .UseReactiveUI(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/ModularDoc.App/Views/DialogView.axaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 19 |