Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: BruTile/BruTile
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4.0.0
Choose a base ref
...
head repository: BruTile/BruTile
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 24,178 additions and 13,806 deletions.
  1. +267 −0 .editorconfig
  2. +1 −0 .github/FUNDING.yml
  3. +35 −9 .github/workflows/build.yml
  4. +44 −0 .github/workflows/publish-docs.yml
  5. +56 −0 .github/workflows/publish-nuget.yml
  6. +3 −2 .gitignore
  7. +0 −136 BruTile-Build.sln
  8. +0 −37 BruTile.Common.props
  9. +16 −17 BruTile.MbTiles/BruTile.MbTiles.csproj
  10. +25 −26 BruTile.MbTiles/MbTilesFormat.cs
  11. +224 −229 BruTile.MbTiles/MbTilesTileSource.cs
  12. +17 −18 BruTile.MbTiles/MbTilesType.cs
  13. +17 −0 BruTile.Osmdroid/BruTile.Osmdroid.csproj
  14. +24 −0 BruTile.Osmdroid/OsmdroidTilesFormat.cs
  15. +297 −0 BruTile.Osmdroid/OsmdroidTilesTileSource.cs
  16. +246 −18 BruTile.sln
  17. +0 −40 BruTile.sln.DotSettings
  18. +13 −0 BruTile.slnf
  19. +5 −13 BruTile/Attribution.cs
  20. +0 −1 BruTile/BruTile.cs
  21. +28 −11 BruTile/BruTile.csproj
  22. +90 −126 BruTile/Cache/FileCache.cs
  23. +5 −6 BruTile/Cache/IMemoryCache.cs
  24. +9 −11 BruTile/Cache/IPersistentCache.cs
  25. +21 −22 BruTile/Cache/ITileCache.cs
  26. +102 −107 BruTile/Cache/MemoryCache.cs
  27. +14 −15 BruTile/Cache/NullCache.cs
  28. +0 −91 BruTile/Extensions/HttpWebRequestExtensions.cs
  29. +14 −0 BruTile/Extensions/ObjectExtensions.cs
  30. +73 −94 BruTile/Extent.cs
  31. +0 −30 BruTile/FileSystem/FileTileProvider.cs
  32. +23 −0 BruTile/FileSystem/FileTileSource.cs
  33. +10 −0 BruTile/ILocalTileSource.cs
  34. +11 −13 BruTile/ITileProvider.cs
  35. +114 −115 BruTile/ITileSchema.cs
  36. +17 −19 BruTile/ITileSource.cs
  37. +0 −17 BruTile/Predefined/BingSchema.cs
  38. +104 −115 BruTile/Predefined/GlobalMercator.cs
  39. +56 −65 BruTile/Predefined/GlobalSphericalMercator.cs
  40. +167 −170 BruTile/Predefined/KnownTileSources.cs
  41. +0 −17 BruTile/Predefined/SphericalMercatorInvertedWorldSchema.cs
  42. +0 −52 BruTile/Predefined/SphericalMercatorWorldSchema.cs
  43. +48 −51 BruTile/Predefined/WkstNederlandSchema.cs
  44. +21 −35 BruTile/Resolution.cs
  45. +52 −60 BruTile/TileIndex.cs
  46. +5 −6 BruTile/TileInfo.cs
  47. +50 −50 BruTile/TileRange.cs
  48. +161 −166 BruTile/TileSchema.cs
  49. +0 −48 BruTile/TileSource.cs
  50. +63 −70 BruTile/TileTransform.cs
  51. +0 −39 BruTile/Tms/Root.cs
  52. +30 −0 BruTile/Tms/TileMap.AOT.cs
  53. +161 −463 BruTile/Tms/TileMap.cs
  54. +77 −78 BruTile/Tms/TileMapParser.cs
  55. +29 −28 BruTile/Tms/TileMapService.cs
  56. +0 −127 BruTile/Tms/TmsRequest.cs
  57. +29 −0 BruTile/Tms/TmsRootParser.cs
  58. +0 −32 BruTile/Tms/TmsTileSource.cs
  59. +149 −0 BruTile/Tms/TmsUrlBuilder.cs
  60. +51 −50 BruTile/Utilities.cs
  61. +10 −9 BruTile/ValidationException.cs
  62. +0 −77 BruTile/Web/ArcGisTileRequest.cs
  63. +0 −29 BruTile/Web/ArcGisTileSource.cs
  64. +0 −154 BruTile/Web/BasicRequest.cs
  65. +159 −0 BruTile/Web/BasicUrlBuilder.cs
  66. +0 −55 BruTile/Web/BingRequest.cs
  67. +0 −24 BruTile/Web/BingTileSource.cs
  68. +0 −21 BruTile/Web/HttpClientBuilder.cs
  69. +0 −45 BruTile/Web/HttpTileProvider.cs
  70. +55 −48 BruTile/Web/HttpTileSource.cs
  71. +15 −0 BruTile/Web/IHttpTileSource.cs
  72. +0 −29 BruTile/Web/IRequest.cs
  73. +19 −0 BruTile/Web/IUrlBuilder.cs
  74. +0 −27 BruTile/Web/OsmRequest.cs
  75. +0 −14 BruTile/Web/OsmTileSource.cs
  76. +0 −14 BruTile/Web/WebResponseFormatException.cs
  77. +60 −75 BruTile/Wms/Attribution.cs
  78. +45 −61 BruTile/Wms/AuthorityURL.cs
  79. +95 −98 BruTile/Wms/BoundingBox.cs
  80. +136 −180 BruTile/Wms/Capability.cs
  81. +103 −109 BruTile/Wms/ContactAddress.cs
  82. +111 −138 BruTile/Wms/ContactInformation.cs
  83. +56 −61 BruTile/Wms/ContactPersonPrimary.cs
  84. +41 −43 BruTile/Wms/DCPType.cs
  85. +41 −55 BruTile/Wms/DCPTypeElement.cs
  86. +59 −72 BruTile/Wms/DataURL.cs
  87. +101 −108 BruTile/Wms/Dimension.cs
  88. +90 −93 BruTile/Wms/ExGeographicBoundingBox.cs
  89. +34 −40 BruTile/Wms/Exception.cs
  90. +59 −73 BruTile/Wms/FeatureListURL.cs
  91. +10 −12 BruTile/Wms/Get.cs
  92. +61 −83 BruTile/Wms/HTTP.cs
  93. +40 −43 BruTile/Wms/Identifier.cs
  94. +39 −41 BruTile/Wms/Keyword.cs
  95. +51 −63 BruTile/Wms/KeywordList.cs
  96. +182 −183 BruTile/Wms/Layer.cs
  97. +62 −74 BruTile/Wms/LegendURL.cs
  98. +82 −84 BruTile/Wms/LogoURL.cs
  99. +50 −65 BruTile/Wms/MetadataURL.cs
  100. +45 −47 BruTile/Wms/OnlineResource.cs
  101. +62 −86 BruTile/Wms/OperationType.cs
  102. +10 −12 BruTile/Wms/Post.cs
  103. +103 −144 BruTile/Wms/Request.cs
  104. +208 −238 BruTile/Wms/Service.cs
  105. +52 −54 BruTile/Wms/ServiceException.cs
  106. +33 −34 BruTile/Wms/ServiceExceptionReport.cs
  107. +6 −7 BruTile/Wms/ServiceName.cs
  108. +136 −169 BruTile/Wms/Style.cs
  109. +46 −58 BruTile/Wms/StyleSheetURL.cs
  110. +46 −58 BruTile/Wms/StyleURL.cs
  111. +268 −290 BruTile/Wms/WmsCapabilities.cs
  112. +19 −22 BruTile/Wms/WmsParsingException.cs
  113. +20 −23 BruTile/Wms/WmsPropertyException.cs
  114. +88 −155 BruTile/Wms/WmsVersion.cs
  115. +64 −65 BruTile/Wms/XmlObject.cs
  116. +128 −0 BruTile/Wmsc/WmscCapabilitiesParser.cs
  117. +0 −83 BruTile/Wmsc/WmscRequest.cs
  118. +0 −140 BruTile/Wmsc/WmscTileSource.cs
  119. +77 −0 BruTile/Wmsc/WmscUrlBuilder.cs
  120. +4,137 −247 BruTile/Wmts/CrsAxisOrderRegistry.cs
  121. +68 −71 BruTile/Wmts/CrsIdentifier.cs
  122. +5,231 −466 BruTile/Wmts/CrsUnitOfMeasureRegistry.cs
  123. +33 −0 BruTile/Wmts/Generated/xlink_owscommon_wmtsGetCapabilities_response.AOT.cs
  124. +6 −9 BruTile/Wmts/Generated/xlink_owscommon_wmtsGetCapabilities_response.cs
  125. +6 −7 BruTile/Wmts/ResourceUrl.cs
  126. +43 −57 BruTile/Wmts/ScaleSet.cs
  127. +19 −28 BruTile/Wmts/ScaleSetItem.cs
  128. +175 −200 BruTile/Wmts/WellKnownScaleSets.cs
  129. +389 −0 BruTile/Wmts/WmtsCapabilitiesParser.cs
  130. +0 −397 BruTile/Wmts/WmtsParser.cs
  131. +0 −55 BruTile/Wmts/WmtsRequest.cs
  132. +164 −171 BruTile/Wmts/WmtsTileSchema.cs
  133. +53 −0 BruTile/Wmts/WmtsUrlBuilder.cs
  134. +0 −17 Build/deploy.cmd
  135. +44 −0 Directory.Build.props
  136. +0 −80 Dockerfile
  137. BIN Images/brutile.png
  138. +0 −13 NuGet.config
  139. +16 −20 Performance/BruTile.Performance.Desktop/BruTile.Performance.Desktop.csproj
  140. +45 −54 Performance/BruTile.Performance.Desktop/Cache/FileCacheTests.cs
  141. +6 −16 Performance/BruTile.Performance.Desktop/Utilities/Paths.cs
  142. +35 −51 Performance/BruTile.Performance.Desktop/WorkTimer.cs
  143. +6 −27 README.md
  144. +1 −3 Samples/BruTile.Demo/App.xaml
  145. +9 −15 Samples/BruTile.Demo/App.xaml.cs
  146. +6 −4 Samples/BruTile.Demo/AssemblyInfo.cs
  147. +22 −24 Samples/BruTile.Demo/BruTile.Demo.csproj
  148. +2 −1 Samples/BruTile.Demo/MainWindow.xaml
  149. +64 −31 Samples/BruTile.Demo/MainWindow.xaml.cs
  150. +158 −125 Samples/BruTile.Demo/MapControl.cs
  151. +25 −44 Samples/BruTile.Demo/Renderer.cs
  152. +13 −16 Samples/BruTile.GettingStarted/BruTile.GettingStarted.csproj
  153. +51 −46 Samples/BruTile.GettingStarted/Program.cs
  154. +16 −18 Samples/BruTile.Samples.Common/BruTile.Samples.Common.csproj
  155. +33 −48 Samples/BruTile.Samples.Common/FetchStrategy.cs
  156. +157 −167 Samples/BruTile.Samples.Common/Fetcher.cs
  157. +8 −13 Samples/BruTile.Samples.Common/Geometries/Point.cs
  158. +0 −70 Samples/BruTile.Samples.Common/HashSet.cs
  159. +0 −70 Samples/BruTile.Samples.Common/RenderSelect.cs
  160. +19 −24 Samples/BruTile.Samples.Common/Samples/GoogleMapsSample.cs
  161. +7 −6 Samples/BruTile.Samples.Common/Samples/GoogleMapsTerrainSample.cs
  162. +10 −9 Samples/BruTile.Samples.Common/Samples/HereMapsSample.cs
  163. +16 −17 Samples/BruTile.Samples.Common/Samples/LantMaterietTopowebbSample.cs
  164. +8 −7 Samples/BruTile.Samples.Common/Samples/MbTilesSample.cs
  165. +11 −10 Samples/BruTile.Samples.Common/Samples/MichelinWmtsSample.cs
  166. +12 −13 Samples/BruTile.Samples.Common/Samples/TileSourceForWmsSample.cs
  167. +9 −8 Samples/BruTile.Samples.Common/Tile.cs
  168. +86 −98 Samples/BruTile.Samples.Common/Viewport.cs
  169. +23 −24 Samples/BruTile.Samples.Common/ZoomHelper.cs
  170. +23 −25 Samples/BruTile.Samples.MbTiles/BruTile.Samples.MbTiles.csproj
  171. +0 −41 Samples/BruTile.Samples.MbTiles/Form1.Designer.cs
  172. +0 −21 Samples/BruTile.Samples.MbTiles/Form1.cs
  173. +0 −120 Samples/BruTile.Samples.MbTiles/Form1.resx
  174. +81 −128 Samples/BruTile.Samples.MbTiles/MapTransform.cs
  175. +4 −4 Samples/BruTile.Samples.MbTiles/MbTilesForm.Designer.cs
  176. +167 −167 Samples/BruTile.Samples.MbTiles/MbTilesForm.cs
  177. +14 −17 Samples/BruTile.Samples.MbTiles/Program.cs
  178. +22 −24 Samples/BruTile.Samples.SimpleStaticMap/BruTile.Samples.SimpleStaticMap.csproj
  179. +94 −77 Samples/BruTile.Samples.SimpleStaticMap/Form1.cs
  180. +14 −14 Samples/BruTile.Samples.SimpleStaticMap/Program.cs
  181. +60 −70 Samples/BruTile.Samples.SimpleStaticMap/Viewport.cs
  182. +0 −85 Samples/BruTile.Samples.VectorTileToBitmap/BruTile.Samples.VectorTileToBitmap.csproj
  183. +0 −62 Samples/BruTile.Samples.VectorTileToBitmap/FrameBufferObjectHelper.cs
  184. +0 −97 Samples/BruTile.Samples.VectorTileToBitmap/GeoJsonRenderer.cs
  185. +0 −134 Samples/BruTile.Samples.VectorTileToBitmap/GeoJsonToOpenTKRenderer.cs
  186. +0 −41 Samples/BruTile.Samples.VectorTileToBitmap/GraphicsContextToBitmapConverter.cs
  187. +0 −38 Samples/BruTile.Samples.VectorTileToBitmap/HttpVectorTileSource.cs
  188. +0 −36 Samples/BruTile.Samples.VectorTileToBitmap/Properties/AssemblyInfo.cs
  189. BIN Samples/BruTile.Samples.VectorTileToBitmap/Resources/14-8801-5371.vector.pbf
  190. +0 −36 Samples/BruTile.Samples.VectorTileToBitmap/SphericalMercator.cs
  191. +0 −11 Samples/BruTile.Samples.VectorTileToBitmap/app.config
  192. +0 −8 Samples/BruTile.Samples.VectorTileToBitmap/packages.config
  193. +29 −33 Tests/BruTile.MbTiles.Tests/BruTile.MbTiles.Tests.csproj
  194. +91 −89 Tests/BruTile.MbTiles.Tests/MbTilesTileSourceTests.cs
  195. +6 −17 Tests/BruTile.MbTiles.Tests/Utilities/Paths.cs
  196. +31 −0 Tests/BruTile.Osmdroid.Test/BruTile.Osmdroid.Test.csproj
  197. +60 −0 Tests/BruTile.Osmdroid.Test/OsmdroidTilesTileSourceTests.cs
  198. BIN Tests/BruTile.Osmdroid.Test/Resources/test.sqlite
  199. +20 −0 Tests/BruTile.Osmdroid.Test/Utilities/Paths.cs
  200. +89 −90 Tests/BruTile.Tests/BruTile.Tests.csproj
  201. +125 −121 Tests/BruTile.Tests/Cache/CacheTests.cs
  202. +19 −20 Tests/BruTile.Tests/Cache/FileCacheTests.cs
  203. +81 −80 Tests/BruTile.Tests/Cache/MemoryCacheTests.cs
  204. +3 −2 Tests/BruTile.Tests/Cache/SQLiteCacheTests.cs
  205. +0 −177 Tests/BruTile.Tests/Crs/CrsAxisOrderRegistryTest.cs
  206. +0 −175 Tests/BruTile.Tests/Crs/CrsUnitOfMeasureRegistryTest.cs
  207. +35 −33 Tests/BruTile.Tests/ExtentTests.cs
  208. +0 −26 Tests/BruTile.Tests/FileSystem/FileTileProviderTests.cs
  209. +31 −0 Tests/BruTile.Tests/FileSystem/FileTileSourceTests.cs
  210. +23 −21 Tests/BruTile.Tests/Predefined/GlobalSphericalMercatorTests.cs
  211. 0 Tests/BruTile.Tests/Resources/Wmsc/{WmsCCapabilities_1_1_1.xml → WmscCapabilities_1_1_1.xml}
  212. +373 −373 ...wmts-capabilties-restful-wien-resourceUrls.xml → wmts-capabilities-restful-wien-resourceUrls.xml}
  213. +368 −368 ...ile.Tests/Resources/Wmts/{wmts-capabilties-restful-wien.xml → wmts-capabilities-restful-wien.xml}
  214. +3,298 −0 Tests/BruTile.Tests/Resources/Wmts/wmts_capabilities_missing_crs.xml
  215. +18 −16 Tests/BruTile.Tests/TileIndexTests.cs
  216. +123 −122 Tests/BruTile.Tests/TileTransformTests.cs
  217. +22 −20 Tests/BruTile.Tests/Tms/RootTest.cs
  218. +22 −20 Tests/BruTile.Tests/Tms/RootTests.cs
  219. +53 −51 Tests/BruTile.Tests/Tms/TileMapServiceTest.cs
  220. +53 −51 Tests/BruTile.Tests/Tms/TileMapServiceTests.cs
  221. +35 −33 Tests/BruTile.Tests/Tms/TmsRequestTests.cs
  222. +6 −17 Tests/BruTile.Tests/Utilities/Paths.cs
  223. +16 −14 Tests/BruTile.Tests/UtilityTests.cs
  224. +35 −36 Tests/BruTile.Tests/Web/BasisRequestTests.cs
  225. +0 −27 Tests/BruTile.Tests/Web/HttpTileSourceExtensions.cs
  226. +64 −23 Tests/BruTile.Tests/Web/HttpTileSourceTests.cs
  227. +177 −186 Tests/BruTile.Tests/Wms/WmsCapabilitiesTests.cs
  228. +0 −56 Tests/BruTile.Tests/Wmsc/TileSourceWmsCTests.cs
  229. +37 −0 Tests/BruTile.Tests/Wmsc/TileSourceWmscTests.cs
  230. +34 −32 Tests/BruTile.Tests/Wmsc/WmscRequestTests.cs
  231. +238 −253 Tests/BruTile.Tests/Wmts/WmtsTests.cs
  232. +1 −0 Tools/DeleteBinAndObjFolders.ps1
  233. +156 −0 Tools/EpsgAccessDatabaseTests/CrsAxisOrderRegistryTest.cs
  234. +146 −0 Tools/EpsgAccessDatabaseTests/CrsUnitOfMeasureRegistryTest.cs
  235. +24 −0 Tools/EpsgAccessDatabaseTests/EpsgAccessDatabaseTests.csproj
  236. +0 −11 Tools/GetVersionFromAssembly/GetVersionFromAssembly.csproj
  237. +0 −30 Tools/GetVersionFromAssembly/Program.cs
  238. +74 −0 documentation/mkdocs/docs/getting-started.md
  239. +39 −0 documentation/mkdocs/docs/index.md
  240. +10 −0 documentation/mkdocs/mkdocs.yml
  241. +41 −0 spelling_exclusion.txt
267 changes: 267 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
# Rules in this file were initially inferred by Visual Studio IntelliCode from the C:\code\github\BruTile codebase based on best match to current usage at 13-3-2022
# You can modify the rules from these initially generated values to suit your own policies
# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
[*.cs]

#Core editorconfig formatting - indentation

#use soft tabs (spaces) for indentation
indent_style = space

#Formatting - indentation options

#indent switch case contents.
csharp_indent_case_contents = true
#indent switch labels
csharp_indent_switch_labels = true

#Formatting - new line options

#place catch statements on a new line
csharp_new_line_before_catch = true
#place else statements on a new line
csharp_new_line_before_else = true
#require finally statements to be on a new line after the closing brace
csharp_new_line_before_finally = true
#require members of object initializers to be on the same line
csharp_new_line_before_members_in_object_initializers = false
#require braces to be on a new line for lambdas, types, methods, accessors, object_collection_array_initializers, control_blocks, and properties (also known as "Allman" style)
csharp_new_line_before_open_brace = lambdas, types, methods, accessors, object_collection_array_initializers, control_blocks, properties

#Formatting - organize using options

dotnet_sort_system_directives_first = true #sort System.* using directives alphabetically, and place them before other usings

#Formatting - spacing options

#require NO space between a cast and the value
csharp_space_after_cast = false
#require a space before the colon for bases or interfaces in a type declaration
csharp_space_after_colon_in_inheritance_clause = true
#require a space after a keyword in a control flow statement such as a for loop
csharp_space_after_keywords_in_control_flow_statements = true
#require a space before the colon for bases or interfaces in a type declaration
csharp_space_before_colon_in_inheritance_clause = true
#remove space within empty argument list parentheses
csharp_space_between_method_call_empty_parameter_list_parentheses = false
#remove space between method call name and opening parenthesis
csharp_space_between_method_call_name_and_opening_parenthesis = false
#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call
csharp_space_between_method_call_parameter_list_parentheses = false
#remove space within empty parameter list parentheses for a method declaration
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list.
csharp_space_between_method_declaration_parameter_list_parentheses = false

#Formatting - wrapping options

#leave code block on single line
csharp_preserve_single_line_blocks = true
#leave statements and member declarations on the same line
csharp_preserve_single_line_statements = true

#Style - Code block preferences

#prefer no curly braces if allowed
csharp_prefer_braces = false:suggestion

#Style - expression bodied member options

csharp_style_expression_bodied_accessors = true:suggestion #prefer block bodies for accessors
csharp_style_expression_bodied_constructors = false:suggestion #prefer block bodies for constructors
csharp_style_expression_bodied_indexers = true:suggestion #prefer expression-bodied members for indexers
csharp_style_expression_bodied_methods = true:silent # I prefer expression bodies but but lets not change it now
csharp_style_expression_bodied_properties = true:suggestion #prefer block bodies for properties
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent

#Style - expression level options

#prefer out variables to be declared inline in the argument list of a method call when possible
csharp_style_inlined_variable_declaration = true:suggestion
#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them
dotnet_style_predefined_type_for_member_access = true:suggestion

#Style - Expression-level preferences

#prefer objects to be initialized using object initializers when possible
dotnet_style_object_initializer = true:suggestion

#Style - implicit and explicit types

#prefer var over explicit type in all cases, unless overridden by another code style rule
csharp_style_var_elsewhere = true:suggestion
#prefer var is used to declare variables with built-in system types such as int
csharp_style_var_for_built_in_types = true:suggestion
#prefer var when the type is already mentioned on the right-hand side of a declaration expression
csharp_style_var_when_type_is_apparent = true:suggestion

#Style - language keyword and framework type options

#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion

#Style - modifier options

#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods.
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion

#Style - Modifier preferences

#when this rule is set to a list of modifiers, prefer the specified ordering.
csharp_preferred_modifier_order = public,private,internal,protected,static,readonly,override,virtual,async,volatile:suggestion

#Style - qualification options

file_header_template = Copyright (c) BruTile developers team. All rights reserved. See License.txt in the project root for license information.
csharp_indent_labels = one_less_than_current
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_static_local_function = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion


csharp_style_namespace_declarations = file_scoped:error
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
csharp_style_throw_expression = true:suggestion
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
csharp_style_conditional_delegate_call = true:suggestion
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:silent
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
dotnet_style_namespace_match_folder = true:suggestion
dotnet_style_readonly_field = true:suggestion
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_allow_multiple_blank_lines_experimental = false:error
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =

# Naming styles

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent

# The block below is added by Visual Studio in this format. Let's keep it exactly like this.
[*.{cs,vb}]
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
indent_size = 4
end_of_line = crlf
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion

# Spelling

spelling_exclusion_path = spelling_exclusion.txt

dotnet_code_quality_unused_parameters = all:suggestion # IDE0060 Remove unused parameter
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent

# Disable nullable for generated folders
[{**/Wms/**.cs,**/Wmts/**.cs}]
dotnet_diagnostic.CS8600.severity = none
dotnet_diagnostic.CS8601.severity = none
dotnet_diagnostic.CS8602.severity = none
dotnet_diagnostic.CS8603.severity = none
dotnet_diagnostic.CS8604.severity = none
dotnet_diagnostic.CS8618.severity = none
dotnet_diagnostic.CS8625.severity = none

dotnet_style_prefer_auto_properties = true:silent
dotnet_style_object_initializer = true:silent
dotnet_style_collection_initializer = true:suggestion
dotnet_style_allow_multiple_blank_lines_experimental = false # Needed for IDE2000

# dotnet_diagnostic

dotnet_diagnostic.IDE0005.severity = error # Remove unnecessary using directives
dotnet_diagnostic.IDE0055.severity = error # Formatting rule
dotnet_diagnostic.IDE0046.severity = silent # Use conditional expression for return
dotnet_diagnostic.CS1591.severity = silent # Missing XML comment for publicly visible type or member 'Type_or_Member'
dotnet_diagnostic.CA2000.severity = error # Dispose objects before losing scope
dotnet_diagnostic.IDE2000.severity = error # IDE2000: Avoid multiple blank lines
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: pauldendulk
44 changes: 35 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,43 @@
name: Build BruTile
name: Build on Windows

on: [push]
on:
push:
branches: [ '**' ]
paths-ignore:
- 'documentation'
pull_request:
branches: [ '**' ]
paths-ignore:
- 'documentation'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
build:

runs-on: ubuntu-latest

env:
SOLUTION: 'BruTile.sln'

runs-on: windows-latest

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.4xx
9.0.x
- name: Build
run: dotnet build $SOLUTION --configuration Release -p:Version=$(git describe --tags)
- name: check the formatting
run: dotnet format BruTile.sln --verbosity normal --verify-no-changes --exclude BruTile/Wmts # Exclude Wmts because of generated EPSG data. Perhaps the data should be move to a separate file.
- name: Test
run: dotnet test $SOLUTION --configuration Release -p:Version=$(git describe --tags) --no-restore --verbosity normal
- name: Upload packages
uses: actions/upload-artifact@v4
with:
dotnet-version: 3.1.301
- name: Build with dotnet
run: dotnet build BruTile-Build.sln --configuration Release
name: nupkg
path: BruTile*/bin/Release/*.nupkg
44 changes: 44 additions & 0 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Build and deploy docs
on:
push:
branches:
- master
- main
permissions:
contents: write
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material
- run: mkdocs build -f documentation/mkdocs/mkdocs.yml -d ../site --clean
- uses: actions/upload-artifact@v4
with:
name: site
path: documentation/site
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'documentation/site'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

Loading