A => .gitignore +6 -0
@@ 1,6 @@
+.idea/
+bin/
+obj/
+/packages/
+riderModule.iml
+/_ReSharper.Caches/
A => Directory.Build.props +22 -0
@@ 1,22 @@
+<Project>
+ <PropertyGroup>
+ <StyleCopRuleset>$(MSBuildThisFileDirectory)stylecop.ruleset</StyleCopRuleset>
+ <StyleCopConfiguration>$(MSBuildThisFileDirectory)stylecop.json</StyleCopConfiguration>
+
+ <Nullable>enable</Nullable>
+ <WarningsAsErrors>nullable</WarningsAsErrors>
+
+ <GenerateDocumentationFile>true</GenerateDocumentationFile>
+
+ <CodeAnalysisRuleSet>$(StyleCopRuleset)</CodeAnalysisRuleSet>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.261">
+ <PrivateAssets>all</PrivateAssets>
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+ </PackageReference>
+
+ <AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json"/>
+ </ItemGroup>
+</Project>
A => LICENSE +21 -0
@@ 1,21 @@
+MIT License
+
+Copyright (c) 2021 František Boháček
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
A => NosSmooth.Comms.sln +8 -0
@@ 1,8 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+EndGlobal
A => stylecop.json +61 -0
@@ 1,61 @@
+{
+ "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
+ "settings": {
+ "indentation": {
+ "indentationSize": 4,
+ "tabSize": 4,
+ "useTabs": false
+ },
+ "spacingRules": {
+ },
+ "readabilityRules": {
+ },
+ "orderingRules": {
+ "elementOrder": [
+ "kind",
+ "constant",
+ "accessibility",
+ "static",
+ "readonly"
+ ],
+ "systemUsingDirectivesFirst": true,
+ "usingDirectivesPlacement": "outsideNamespace",
+ "blankLinesBetweenUsingGroups": "allow"
+ },
+ "namingRules": {
+ "allowCommonHungarianPrefixes": true,
+ "allowedHungarianPrefixes": [
+ "gl",
+ "f",
+ "db"
+ ]
+ },
+ "maintainabilityRules": {
+ "topLevelTypes": [
+ "class",
+ "interface",
+ "struct",
+ "enum"
+ ]
+ },
+ "layoutRules": {
+ "allowConsecutiveUsings": false
+ },
+ "documentationRules": {
+ "companyName": "František Boháček",
+ "copyrightText": "\n {fileName}\n\n Copyright (c) {companyName}. All rights reserved.\n Licensed under the {licenseName} license. See {licenseFile} file in the project root for full license information.",
+ "variables": {
+ "licenseName": "MIT",
+ "licenseFile": "LICENSE"
+ },
+ "xmlHeader": false,
+ "documentInterfaces": true,
+ "documentExposedElements": true,
+ "documentInternalElements": true,
+ "documentPrivateElements": false,
+ "documentPrivateFields": false,
+ "documentationCulture": "en-US",
+ "fileNamingConvention": "stylecop"
+ }
+ }
+}
A => stylecop.ruleset +202 -0
@@ 1,202 @@
+<RuleSet Name="Christofel rules" ToolsVersion="14.0">
+ <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
+
+ <!-- Special rules -->
+ <Rule Id="SA0001" Action="Error"/> <!-- XML comment analysis disabled -->
+ <Rule Id="SA0002" Action="Error"/> <!-- Invalid settings file -->
+
+ <!-- Spacing rules -->
+ <Rule Id="SA1000" Action="Error"/> <!-- Keywords must be spaced correctly -->
+ <Rule Id="SA1001" Action="Error"/> <!-- Commas must be spaced correctly -->
+ <Rule Id="SA1002" Action="Error"/> <!-- Semicolons must be spaced correctly -->
+ <Rule Id="SA1003" Action="Error"/> <!-- Symbols must be spaced correctly -->
+ <Rule Id="SA1004" Action="Error"/> <!-- Documentation lines must begin with single space -->
+ <Rule Id="SA1005" Action="Error"/> <!-- Single line comments must begin with single space -->
+ <Rule Id="SA1006" Action="Error"/> <!-- Preprocessor keywords must not be preceded by space -->
+ <Rule Id="SA1007" Action="Error"/> <!-- Operator keyword must be followed by space -->
+ <Rule Id="SA1008" Action="Error"/> <!-- Opening parenthesis must be spaced correctly -->
+ <Rule Id="SA1009" Action="None"/> <!-- Closing parenthesis must be spaced correctly -->
+ <Rule Id="SA1010" Action="Error"/> <!-- Opening square brackets must be spaced correctly -->
+ <Rule Id="SA1011" Action="Error"/> <!-- Closing square brackets must be spaced correctly -->
+ <Rule Id="SA1012" Action="Error"/> <!-- Opening braces must be spaced correctly -->
+ <Rule Id="SA1013" Action="Error"/> <!-- Closing braces must be spaced correctly -->
+ <Rule Id="SA1014" Action="Error"/> <!-- Opening generic brackets must be spaced correctly -->
+ <Rule Id="SA1015" Action="Error"/> <!-- Closing generic brackets must be spaced correctly -->
+ <Rule Id="SA1016" Action="Error"/> <!-- Opening attribute brackets must be spaced correctly -->
+ <Rule Id="SA1017" Action="Error"/> <!-- Closing attribute brackets must be spaced correctly -->
+ <Rule Id="SA1018" Action="Error"/> <!-- Nullable type symbols must be spaced correctly -->
+ <Rule Id="SA1019" Action="Error"/> <!-- Member access symbols must be spaced correctly -->
+ <Rule Id="SA1020" Action="Error"/> <!-- Increment decrement symbols must be spaced correctly -->
+ <Rule Id="SA1021" Action="Error"/> <!-- Negative signs must be spaced correctly -->
+ <Rule Id="SA1022" Action="Error"/> <!-- Positive signs must be spaced correctly -->
+ <Rule Id="SA1023" Action="Error"/> <!-- Dereference and access of symbols must be spaced correctly -->
+ <Rule Id="SA1024" Action="Error"/> <!-- Colons must be spaced correctly -->
+ <Rule Id="SA1025" Action="Error"/> <!-- Code must not contain multiple whitespace in a row -->
+ <Rule Id="SA1026"
+ Action="Error"/> <!-- Code must not contain space after new keyword in implicitly typed array allocation -->
+ <Rule Id="SA1027" Action="Error"/> <!-- Use tabs correctly -->
+ <Rule Id="SA1028" Action="Error"/> <!-- Code must not contain trailing whitespace -->
+
+ <!-- Readability rules -->
+ <Rule Id="SA1100" Action="Error"/> <!-- Do not prefix calls with base unless local implementation exists -->
+ <Rule Id="SA1101" Action="None"/> <!-- Prefix local calls with this -->
+ <Rule Id="SX1101" Action="None"/> <!-- Do not prefix local calls with this. -->
+ <Rule Id="SA1102" Action="Error"/> <!-- Query clause must follow previous clause -->
+ <Rule Id="SA1103" Action="Error"/> <!-- Query clauses must be on separate lines or all on one line -->
+ <Rule Id="SA1104"
+ Action="Error"/> <!-- Query clause must begin on new line when previous clause spans multiple lines -->
+ <Rule Id="SA1105" Action="Error"/> <!-- Query clauses spanning multiple lines must begin on own line -->
+ <Rule Id="SA1106" Action="Error"/> <!-- Code must not contain empty statements -->
+ <Rule Id="SA1107" Action="Error"/> <!-- Code must not contain multiple statements on one line -->
+ <Rule Id="SA1108" Action="Error"/> <!-- Block statements must not contain embedded comments -->
+ <Rule Id="SA1110" Action="None"/> <!-- Opening parenthesis or bracket must be on declaration line -->
+ <Rule Id="SA1111" Action="None"/> <!-- Closing parenthesis must be on line of last parameter -->
+ <Rule Id="SA1112" Action="Error"/> <!-- Closing parenthesis must be on line of opening parenthesis -->
+ <Rule Id="SA1113" Action="Error"/> <!-- Comma must be on the same line as previous parameter -->
+ <Rule Id="SA1114" Action="Error"/> <!-- Parameter list must follow declaration -->
+ <Rule Id="SA1115" Action="Error"/> <!-- Parameter must follow comma -->
+ <Rule Id="SA1116" Action="Error"/> <!-- Split parameters must start on line after declaration -->
+ <Rule Id="SA1117" Action="Error"/> <!-- Parameters must be on same line or separate lines -->
+ <Rule Id="SA1118" Action="Error"/> <!-- Parameter must not span multiple lines -->
+ <Rule Id="SA1119" Action="Error"/> <!-- Statement must not use unnecessary parenthesis -->
+ <Rule Id="SA1120" Action="None"/> <!-- Comments must contain text -->
+ <Rule Id="SA1121" Action="Error"/> <!-- Use built-in type alias -->
+ <Rule Id="SA1122" Action="Error"/> <!-- Use string.Empty for empty strings -->
+ <Rule Id="SA1123" Action="Error"/> <!-- Do not place regions within elements -->
+ <Rule Id="SA1124" Action="Error"/> <!-- Do not use regions -->
+ <Rule Id="SA1125" Action="Error"/> <!-- Use shorthand for nullable types -->
+ <Rule Id="SA1127" Action="None"/> <!-- Generic type constraints must be on their own line -->
+ <Rule Id="SA1128" Action="Error"/> <!-- Put constructor initializers on their own line -->
+ <Rule Id="SA1129" Action="Error"/> <!-- Do not use default value type constructor -->
+ <Rule Id="SA1130" Action="Error"/> <!-- Use lambda syntax -->
+ <Rule Id="SA1131" Action="Error"/> <!-- Use readable conditions -->
+ <Rule Id="SA1132" Action="Error"/> <!-- Do not combine fields -->
+ <Rule Id="SA1133" Action="None"/> <!-- Do not combine attributes -->
+ <Rule Id="SA1134" Action="Error"/> <!-- Attributes must not share line -->
+ <Rule Id="SA1136" Action="Error"/> <!-- Enum values should be on separate lines -->
+ <Rule Id="SA1137" Action="Error"/> <!-- Elements should have the same indentation -->
+ <Rule Id="SA1139" Action="Error"/> <!-- Use literals suffix notation instead of casting -->
+
+ <!-- Ordering rules -->
+ <Rule Id="SA1200" Action="None"/> <!-- Using directives must be placed correctly -->
+ <Rule Id="SA1201" Action="None"/> <!-- Elements must appear in the correct order -->
+ <Rule Id="SA1202" Action="None"/> <!-- Elements must be ordered by access -->
+ <Rule Id="SA1203" Action="Error"/> <!-- Constants must appear before fields -->
+ <Rule Id="SA1204" Action="None"/> <!-- Static elements must appear before instance elements -->
+ <Rule Id="SA1205" Action="Error"/> <!-- Partial elements must declare access -->
+ <Rule Id="SA1206" Action="Error"/> <!-- Declaration keywords must follow order -->
+ <Rule Id="SA1207" Action="Error"/> <!-- Protected must come before internal -->
+ <Rule Id="SA1208" Action="Error"/> <!-- System using directives must be placed before other using directives -->
+ <Rule Id="SA1209" Action="Error"/> <!-- Using alias directives must be placed after other using directives -->
+ <Rule Id="SA1210" Action="Error"/> <!-- Using directives must be ordered alphabetically by namespace -->
+ <Rule Id="SA1210" Action="Error"/> <!-- Using directives must be ordered alphabetically by namespace -->
+ <Rule Id="SA1211" Action="Error"/> <!-- Using alias directives must be ordered alphabetically by alias name -->
+ <Rule Id="SA1212" Action="Error"/> <!-- Property accessors must follow order -->
+ <Rule Id="SA1213" Action="Error"/> <!-- Event accessors must follow order -->
+ <Rule Id="SA1214" Action="Error"/> <!-- Readonly fields must appear before non-readonly fields -->
+ <Rule Id="SA1216" Action="Error"/> <!-- Using static directives must be placed at the correct location. -->
+ <Rule Id="SA1217" Action="Error"/> <!-- Using static directives must be ordered alphabetically -->
+
+ <!-- Naming rules -->
+ <Rule Id="SA1300" Action="None"/> <!-- Element must begin with upper-case letter -->
+ <Rule Id="SA1302" Action="Error"/> <!-- Interface names must begin with I -->
+ <Rule Id="SA1303" Action="Error"/> <!-- Const field names must begin with upper-case letter -->
+ <Rule Id="SA1304" Action="Error"/> <!-- Non-private readonly fields must begin with upper-case letter -->
+ <Rule Id="SA1305" Action="None"/> <!-- Field names must not use Hungarian notation -->
+ <Rule Id="SA1306" Action="None"/> <!-- Field names must begin with lower-case letter -->
+ <Rule Id="SA1307" Action="Error"/> <!-- Accessible fields must begin with upper-case letter -->
+ <Rule Id="SA1308" Action="Error"/> <!-- Variable names must not be prefixed -->
+ <Rule Id="SA1309" Action="None"/> <!-- Field names must not begin with underscore -->
+ <Rule Id="SX1309" Action="Error"/> <!-- Field names must begin with underscore -->
+ <Rule Id="SX1309S" Action="None"/> <!-- Static field names must begin with underscore -->
+ <Rule Id="SA1310" Action="None"/> <!-- Field names must not contain underscore -->
+ <Rule Id="SA1311" Action="Error"/> <!-- Static readonly fields must begin with upper-case letter -->
+ <Rule Id="SA1312" Action="Error"/> <!-- Variable names must begin with lower-case letter -->
+ <Rule Id="SA1313" Action="Error"/> <!-- Parameter names must begin with lower-case letter -->
+ <Rule Id="SA1314" Action="Error"/> <!-- Type name parameters must begin with T -->
+
+ <!-- Maintainability rules -->
+ <Rule Id="SA1400" Action="Error"/> <!-- Access modifier must be declared -->
+ <Rule Id="SA1401" Action="Error"/> <!-- Fields must be private -->
+ <Rule Id="SA1402" Action="Error"/> <!-- File may only contain a single class -->
+ <Rule Id="SA1403" Action="Error"/> <!-- File may only contain a single namespace -->
+ <Rule Id="SA1404" Action="Error"/> <!-- Code analysis suppression must have justification -->
+ <Rule Id="SA1405" Action="Error"/> <!-- Debug.Assert must provide message text -->
+ <Rule Id="SA1406" Action="Error"/> <!-- Debug.Fail must provide message text -->
+ <Rule Id="SA1407" Action="Error"/> <!-- Arithmetic expressions must declare precedence -->
+ <Rule Id="SA1408" Action="Error"/> <!-- Conditional expressions must declare precedence -->
+ <Rule Id="SA1410" Action="Error"/> <!-- Remove delegate parenthesis when possible -->
+ <Rule Id="SA1411" Action="Error"/> <!-- Attribute constructor must not use unnecessary parenthesis -->
+ <Rule Id="SA1412" Action="None"/> <!-- Store files as UTF-8 with byte order mark -->
+ <Rule Id="SA1413" Action="None"/> <!-- Use trailing comma in multi-line initializers -->
+
+ <!-- Layout rules -->
+ <Rule Id="SA1500" Action="Error"/> <!-- Braces for multi-line statements must not share line -->
+ <Rule Id="SA1501" Action="Error"/> <!-- Statement must not be on a single line -->
+ <Rule Id="SA1502" Action="Error"/> <!-- Element must not be on a single line -->
+ <Rule Id="SA1503" Action="Error"/> <!-- Braces must not be omitted -->
+ <Rule Id="SA1504" Action="Error"/> <!-- All accessors must be single-line or multi-line -->
+ <Rule Id="SA1505" Action="Error"/> <!-- Opening braces must not be followed by blank line -->
+ <Rule Id="SA1506" Action="Error"/> <!-- Element documentation headers must not be followed by blank line -->
+ <Rule Id="SA1507" Action="Error"/> <!-- Code must not contain multiple blank lines in a row -->
+ <Rule Id="SA1508" Action="None"/> <!-- Closing braces must not be preceded by blank line -->
+ <Rule Id="SA1509" Action="Error"/> <!-- Opening braces must not be preceded by blank line -->
+ <Rule Id="SA1510" Action="Error"/> <!-- Chained statement blocks must not be preceded by blank line -->
+ <Rule Id="SA1511" Action="Error"/> <!-- While-do footer must not be preceded by blank line -->
+ <Rule Id="SA1512" Action="Warning"/> <!-- Single-line comments must not be followed by blank line -->
+ <Rule Id="SA1513" Action="None"/> <!-- Closing brace must be followed by blank line -->
+ <Rule Id="SA1514" Action="Error"/> <!-- Element documentation header must be preceded by blank line -->
+ <Rule Id="SA1515" Action="Error"/> <!-- Single-line comment must be preceded by blank line -->
+ <Rule Id="SA1516" Action="Error"/> <!-- Elements must be separated by blank line -->
+ <Rule Id="SA1517" Action="Error"/> <!-- Code must not contain blank lines at start of file -->
+ <Rule Id="SA1518" Action="Error"/> <!-- Use line endings correctly at end of file -->
+ <Rule Id="SA1519" Action="Error"/> <!-- Braces must not be omitted from multi-line child statement -->
+ <Rule Id="SA1520" Action="Error"/> <!-- Use braces consistently -->
+
+ <!-- Documentation rules -->
+ <Rule Id="SA1600" Action="Error"/> <!-- Elements must be documented -->
+ <Rule Id="SA1601" Action="None"/> <!-- Partial elements must be documented -->
+ <Rule Id="SA1602" Action="Error"/> <!-- Enumeration items must be documented -->
+ <Rule Id="SA1604" Action="Error"/> <!-- Element documentation must have summary -->
+ <Rule Id="SA1605" Action="Error"/> <!-- Partial element documentation must have summary -->
+ <Rule Id="SA1606" Action="Error"/> <!-- Element documentation must have summary text -->
+ <Rule Id="SA1607" Action="Error"/> <!-- Partial element documentation must have summary text -->
+ <Rule Id="SA1608" Action="Error"/> <!-- Element documentation must not have default summary -->
+ <Rule Id="SA1609" Action="None"/> <!-- Property documentation must have value -->
+ <Rule Id="SA1610" Action="None"/> <!-- Property documentation must have value text -->
+ <Rule Id="SA1611" Action="Error"/> <!-- Element parameters must be documented -->
+ <Rule Id="SA1612" Action="Error"/> <!-- Element parameter documentation must match element parameters -->
+ <Rule Id="SA1613" Action="Error"/> <!-- Element parameter documentation must declare parameter name -->
+ <Rule Id="SA1614" Action="Error"/> <!-- Element parameter documentation must have text -->
+ <Rule Id="SA1615" Action="Error"/> <!-- Element return value must be documented -->
+ <Rule Id="SA1616" Action="Error"/> <!-- Element return value documentation must have text -->
+ <Rule Id="SA1617" Action="Error"/> <!-- Void return value must not be documented -->
+ <Rule Id="SA1618" Action="Error"/> <!-- Generic type parameters must be documented -->
+ <Rule Id="SA1619" Action="Error"/> <!-- Generic type parameters must be documented partial class -->
+ <Rule Id="SA1620" Action="Error"/> <!-- Generic type parameter documentation must match type parameters -->
+ <Rule Id="SA1621" Action="Error"/> <!-- Generic type parameter documentation must declare parameter name -->
+ <Rule Id="SA1622" Action="Error"/> <!-- Generic type parameter documentation must have text -->
+ <Rule Id="SA1623" Action="None"/> <!-- Property summary documentation must match accessors -->
+ <Rule Id="SA1624"
+ Action="None"/> <!-- Property summary documentation must omit accessor with restricted access -->
+ <Rule Id="SA1625" Action="Error"/> <!-- Element documentation must not be copied and pasted -->
+ <Rule Id="SA1626" Action="Error"/> <!-- Single-line comments must not use documentation style slashes -->
+ <Rule Id="SA1627" Action="Error"/> <!-- Documentation text must not be empty -->
+ <Rule Id="SA1629" Action="Error"/> <!-- Documentation text must end with a period -->
+ <Rule Id="SA1633" Action="Error"/> <!-- File must have header -->
+ <Rule Id="SA1634" Action="Error"/> <!-- File header must show copyright -->
+ <Rule Id="SA1635" Action="Error"/> <!-- File header must have copyright text -->
+ <Rule Id="SA1636" Action="Error"/> <!-- File header copyright text must match -->
+ <Rule Id="SA1637" Action="Error"/> <!-- File header must contain file name -->
+ <Rule Id="SA1638" Action="Error"/> <!-- File header file name documentation must match file name -->
+ <Rule Id="SA1639" Action="Error"/> <!-- File header must have summary -->
+ <Rule Id="SA1640" Action="Error"/> <!-- File header must have valid company text -->
+ <Rule Id="SA1641" Action="Error"/> <!-- File header company name text must match -->
+ <Rule Id="SA1642" Action="Error"/> <!-- Constructor summary documentation must begin with standard text -->
+ <Rule Id="SA1643" Action="Error"/> <!-- Destructor summary documentation must begin with standard text -->
+ <Rule Id="SA1644" Action="Error"/> <!-- Documentation header must not contain blank lines -->
+ <Rule Id="SA1648" Action="Error"/> <!-- inheritdoc must be used with inheriting class -->
+ <Rule Id="SA1649" Action="Error"/> <!-- File name must match first type name -->
+ <Rule Id="SA1651" Action="Error"/> <!-- Do not use placeholder elements -->
+ </Rules>
+</RuleSet>