Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2126 commits
Select commit Hold shift + click to select a range
3ccb5fd
Bump to v4.7.7
phr00t Oct 4, 2022
f9a37fd
Audio: further improve this error message
phr00t Oct 5, 2022
75d317f
Audio: make sure this math is calculated correctly
phr00t Oct 5, 2022
83d1727
GlobalSoundManager: play positional/attached sounds that are looped, …
phr00t Oct 5, 2022
201fa93
Bump to v4.7.8
phr00t Oct 5, 2022
a74d7bd
GlobalSoundManager: don't need to set this regularly
phr00t Oct 7, 2022
3f5e093
ContentManager: add an AllURLs() function to get lists of assets read…
phr00t Oct 7, 2022
262ef90
Bump to v4.7.9
phr00t Oct 7, 2022
58ff32e
Scene: shortcut to generating a dictionary of all entities in scene
phr00t Oct 8, 2022
86daf51
Bump to v4.7.10
phr00t Oct 8, 2022
f0b389b
Buffers: add a method for picking which models to store buffers for b…
phr00t Oct 8, 2022
18c471b
Bump to v4.7.11
phr00t Oct 8, 2022
21e8571
Fix rare GameStudio crash
phr00t Oct 10, 2022
ce7e0a6
v4.8 release! Big updates to Nuget packages (OpenXR, Vulkan etc.)
phr00t Oct 10, 2022
6c4c8ea
VR: Split "Hold Angle Offset" into Grip and Point offsets, so they ca…
phr00t Oct 13, 2022
0511104
Bump to v4.8.1
phr00t Oct 13, 2022
901472b
Direct3D: wrap this in a lock to handle a rare crash
phr00t Oct 15, 2022
057fbf5
Physics: small fixes and additional option to attach an entity to the…
phr00t Oct 17, 2022
87e6f48
Physics: bepu-powered, VR and non-VR super cool character controller!
phr00t Oct 17, 2022
db1dc3e
Bump to v4.9
phr00t Oct 17, 2022
b125ee3
Physics: improvements to character controller
phr00t Oct 17, 2022
bf5a042
Bump to v4.9.1
phr00t Oct 17, 2022
ae286be
Physics: fix VR character controller (still minor tweaks needed)
phr00t Oct 17, 2022
22dc098
CharacterController: add VR "comfort mode" FOV reduction feature (and…
phr00t Oct 18, 2022
bab3bf1
Bump to v4.9.2
phr00t Oct 18, 2022
b277bb7
CharacterController: fov reduction speed option
phr00t Oct 18, 2022
bac0a38
Bump to v4.9.3
phr00t Oct 18, 2022
7db6604
CharacterController: small tweaks
phr00t Oct 19, 2022
eef7eb9
Bump to v4.9.4
phr00t Oct 19, 2022
75060b6
CharacterController: small improvements and a blackout option for VR …
phr00t Oct 21, 2022
5548bce
Bump to v4.9.6
phr00t Oct 21, 2022
89bd25d
CharacterController: properly reuse rigidbodies if one already exists
phr00t Oct 22, 2022
9b28998
Bump to v4.9.7
phr00t Oct 22, 2022
996a9bc
Graphics: "lazy" pipeline compilation! Fixes Vulkan lag spikes when r…
phr00t Oct 23, 2022
98a79fe
Bump to v4.9.8
phr00t Oct 23, 2022
f36e69e
Rendering: smarter autoselection of latest ready rendering pipeline
phr00t Oct 25, 2022
6371d43
Bump to v4.9.9
phr00t Oct 25, 2022
b723004
CharacterController: better active management (hopefully fixes rare c…
phr00t Oct 27, 2022
8504a53
Bump to v4.9.10
phr00t Oct 27, 2022
2eac9fa
VR: Add OpenXR input for Magic Leap controller
phr00t Oct 29, 2022
1f9b393
Bump to v4.9.11
phr00t Oct 29, 2022
52ca693
Rendering: automatically detect transparency changes and set proper r…
phr00t Oct 30, 2022
abeb34a
Bump to v4.9.12
phr00t Oct 30, 2022
7b8ceff
Engine: don't throw this crash, just don't add it to the scene (keep …
phr00t Nov 1, 2022
91c5d99
CharacterController: add more options and features to the VR part of …
phr00t Nov 1, 2022
db3b501
VR: add an optional action to call when VR is done initializing
phr00t Nov 1, 2022
72352b7
Bump to v4.9.13
phr00t Nov 1, 2022
312bcd6
UI: GetNoBullshitSize will now calculate recent changes immediately i…
phr00t Nov 4, 2022
58e5e4f
Bump to v4.9.14
phr00t Nov 4, 2022
a0f9aef
CharacterController: functions to set looking direction
phr00t Nov 6, 2022
660f130
Bump to v4.9.15
phr00t Nov 6, 2022
0548e41
CharacterController: fix how this update tick function is added
phr00t Nov 9, 2022
7d91c4a
Bump to v4.9.16
phr00t Nov 9, 2022
008b322
VR: backup method for calculating controller velocity
phr00t Dec 15, 2022
04f64ee
Bump to v4.9.17
phr00t Dec 15, 2022
d0ee125
Update a bunch of NuGet packages (fixes some downgrade errors)
phr00t Dec 24, 2022
c899ac1
Bump to v4.10
phr00t Dec 24, 2022
7a4d839
Audio: new features and options for handling overlapping audio
phr00t Dec 27, 2022
6b585d2
Bump to v4.10.2
phr00t Dec 27, 2022
8c2e1cf
Update AvalonEdit nuget package
phr00t Jan 6, 2023
0367670
Bump to v4.10.3
phr00t Jan 6, 2023
595b0f8
Why does this cause exceptions here sometimes now? Let's just step ov…
phr00t Jan 7, 2023
70c1ef7
Bump to v4.10.4
phr00t Jan 7, 2023
9025241
Editor: fix a crash when dragging empty stuff (like an empty folder) …
phr00t Jan 9, 2023
408ada5
Bump to v4.10.5
phr00t Jan 9, 2023
f23c8b7
BepuCharacterController: fix camera discovery on player characters
phr00t Jan 13, 2023
b0c05aa
Physics: add option for a rigidbody to just always get its pose from …
phr00t Jan 13, 2023
baf9548
Bump to v4.10.7
phr00t Jan 13, 2023
f9b6a84
UI: fix EditText selection + new text offset option
phr00t Jan 14, 2023
30ab708
Bump to v4.10.8
phr00t Jan 14, 2023
4d07dc4
UI: fix a bug with displaying perfectly-fit pulldown list entries
phr00t Jan 16, 2023
f0ebe3e
Bump to v4.10.9
phr00t Jan 16, 2023
5374969
UI: Fix caret sizing and add scaling options
phr00t Jan 17, 2023
291f4fc
Bump to v4.10.10
phr00t Jan 17, 2023
97bac5f
UI: better "GetNoBullshitSize" function
phr00t Jan 18, 2023
4c414d0
UI: performance improvement to GetNoBullshitSize
phr00t Jan 19, 2023
4976c47
UI: option to skip organizing some elements with auto-organizer
phr00t Jan 19, 2023
0b0186d
Physics: add some helper function to BepuContact to automatically fli…
phr00t Jan 25, 2023
b15ebc3
Engine: added OrientedBoundingBoxes (thank you SharpDX!)
phr00t Jan 25, 2023
7aa6255
UI: experimental VR scrolling feature with thumbstick/touchpad
phr00t Jan 25, 2023
1097dc7
ModelComponent: add scaling option to getting oriented bounding box
phr00t Jan 26, 2023
6ce806f
UI: Automatic organization improvements
phr00t Jan 26, 2023
a7cbbff
UI: Only care about the touch direction of scrollviewer when checking…
phr00t Jan 26, 2023
ef965e8
UI: Fixes to VR touchpad/thumstick scrolling (now tested working)
phr00t Jan 26, 2023
a9f1494
Bump to v4.11
phr00t Jan 26, 2023
e85ded6
UI: helper function GetSelection() for base GridList
phr00t Jan 28, 2023
2d0ba37
Bump to v4.11.1
phr00t Jan 28, 2023
f119655
UI: Make room for hidden things, but not collapsed, when reorganizing…
phr00t Feb 9, 2023
045551a
Physics: when generating mesh colliders via BepuHelpers, consider ind…
phr00t Feb 9, 2023
71d4263
Bump to v4.11.3
phr00t Feb 9, 2023
f47f6b8
Particles: add option for 2D rotation on emitting specific particles
phr00t Feb 13, 2023
ce2af4c
Bump to v4.11.4
phr00t Feb 13, 2023
ebf0aa8
UI: Fix BoundingBox generation for UIComponents
phr00t Feb 13, 2023
fd07225
Bump to v4.11.5
phr00t Feb 13, 2023
a594a07
Update some NuGet packages
phr00t Feb 27, 2023
78d4df5
Vulkan revert to known stable version (Steam Deck)
phr00t Feb 27, 2023
753fd67
Revert "Update some NuGet packages"
phr00t Feb 27, 2023
a93c7cc
Revert "Revert "Update some NuGet packages""
phr00t Feb 27, 2023
03ee70e
Nuget: Stop trying to use VS API, just call dotnet via commandline to…
phr00t Feb 27, 2023
a6f4870
Fix weird error when creating new projects
phr00t Feb 27, 2023
d3e2259
attempts
phr00t Feb 28, 2023
c2dc7c9
Nuget resolve changes
phr00t Feb 28, 2023
571fa20
Bring back CoreNative
phr00t Feb 28, 2023
553324f
Reduce this warning verbosity
phr00t Feb 28, 2023
d35e0bb
Prioritize xenko folder for loading libraries
phr00t Feb 28, 2023
8b7bcb9
Think I finally redesigned assets, templates and nuget shit to be mor…
phr00t Mar 1, 2023
dd67960
UI: further fix to UIComponent BoundingBox for frustum culling
phr00t Mar 1, 2023
807e3fd
Bump to v4.12.1
phr00t Mar 1, 2023
80e3fb3
Update some packages
phr00t Mar 6, 2023
b70f1b8
NuGet Resolver: fix recent issues and make it more reliable
phr00t Mar 6, 2023
37f8bee
Bump to v4.12.2
phr00t Mar 6, 2023
24dbc1e
CinematicAnimation: fix sorting compare
phr00t Mar 11, 2023
35227d3
CinematicAction: throw an exception if modifying animation while playing
phr00t Mar 11, 2023
39911f9
Bump to v4.12.3
phr00t Mar 11, 2023
c35ba1d
UI: Add event if anything is clicked in the grid or pulldown list
phr00t Mar 16, 2023
a542602
Bump to v4.12.4
phr00t Mar 16, 2023
46e491d
UI: Call "any change" event when select is called via code
phr00t Mar 16, 2023
7f84d50
UI: Sliders now "capture" the cursor while sliding so they are easier…
phr00t Mar 21, 2023
10b2dbe
Bump to v4.12.5
phr00t Mar 21, 2023
681a113
UI: missed a spot for slider grabby clearing
phr00t Mar 21, 2023
cc92484
Bump to v4.12.6
phr00t Mar 21, 2023
c4bad6b
SimpleSaver: new tool for easy organized data saving/loading
phr00t Mar 26, 2023
8bd43a7
Audio: add separate music/sfx volumes for GlobalSoundManager
phr00t Mar 26, 2023
d367d5c
Bump to v4.12.7
phr00t Mar 26, 2023
495da12
Add info on SimpleSaver
phr00t Mar 26, 2023
bf33d00
Engine: make sure to remove something from the scene in niche situation
phr00t Apr 3, 2023
6666a50
VR: Add BodyOffset position feature
phr00t Apr 3, 2023
93b7374
VR: easy function to reset the FOV reduction created to reduce motion…
phr00t Apr 5, 2023
8c9e154
VR: fix and simplify the BodyOffset
phr00t Apr 5, 2023
9a4fbb8
Bump to v4.13.2
phr00t Apr 5, 2023
aa5baa6
UI: Make this thread safe if we are touching multiple UIComponents at…
phr00t Apr 5, 2023
58f989c
VR UI: skip checking fullscreen touches, which are impossible, and al…
phr00t Apr 5, 2023
95cff23
Bump to v4.13.3
phr00t Apr 5, 2023
b44d91c
VR: Make second UI activation button optional
phr00t Apr 17, 2023
cac3770
Bump to v4.13.4
phr00t Apr 17, 2023
c958972
CharacterController: default new option to ignore headset Y positiona…
phr00t Apr 24, 2023
653d762
UI: Add easy function to get UI elements from GridList entries
phr00t Apr 24, 2023
0989888
Bump to v4.13.5
phr00t Apr 24, 2023
0367fd3
Engine: fix oriented box translations from ModelComponents
phr00t May 17, 2023
e11bf5a
Bump to v4.13.6
phr00t May 17, 2023
5863b49
update bepuphysics with small locking change
phr00t May 20, 2023
40b9c90
Physics: use a more multithreaded-friendly method for raycasts
phr00t May 20, 2023
382ead9
Physics: managed raycast scheduler
phr00t May 20, 2023
32477ec
Physics: have a list of actions a rigidbody can take after each physi…
phr00t May 20, 2023
2ceba17
Bump to v4.13.7
phr00t May 20, 2023
1d79bd2
Physics: do worldmatrix update automatically by default to avoid a co…
phr00t May 23, 2023
b815c07
Bump to v4.13.8
phr00t May 23, 2023
bb105bb
VR: Update to latest OpenXR (and Silk.NET AssImp), may fix validation…
phr00t Jun 18, 2023
9a68f04
VR: fix validation error
phr00t Jun 27, 2023
169c4f4
Experimental shader compilation helper tool
phr00t Jun 27, 2023
ce9fa3b
Bump to v4.14.1
phr00t Jun 27, 2023
9b9b64a
Update README.md
phr00t Jun 27, 2023
bc4f05f
VR: fix velocity calcuation in hand controllers when bodyscaling/offs…
phr00t Jul 3, 2023
eab0b4a
UI: Add simple function to get entry count in a GridList
phr00t Jul 11, 2023
7adfb4e
fix nuget resolver so prebuilt release can be run
phr00t Dec 1, 2023
1489dda
improve default physics flags
phr00t Dec 6, 2023
b13c106
update a bunch of nuget packages
phr00t Dec 6, 2023
c6f67ae
version bump to v4.14.5
phr00t Dec 6, 2023
4ef01b5
allow project loading even if an asset is missing
phr00t Dec 21, 2023
06d119d
Bump to v4.14.6
phr00t Dec 21, 2023
c8e6374
rollback to official .net 6 supported nuget packages
phr00t Dec 21, 2023
3425149
simplify "new game" template that doesn't require hardcoded files
phr00t Dec 21, 2023
801c138
bump to v4.14.7
phr00t Dec 21, 2023
ab96f85
fix GameStudio's handing of certain packages
phr00t Dec 21, 2023
eff8f87
version bump to v4.14.8
phr00t Dec 21, 2023
61a11f0
more useful errors when loading broken paths
phr00t Apr 9, 2024
402d767
assure model data loading alignment for modelbatcher unpacking
phr00t Apr 9, 2024
9665a43
bump to v1.14.9
phr00t Apr 9, 2024
8ff648f
default to one cascade for directional light shadows, which is faster…
phr00t Apr 9, 2024
5c0020c
tweaks to fence management (vulkan)
phr00t Apr 16, 2024
42753db
Version bump to v4.14.11
phr00t Apr 16, 2024
5477733
function to create physics meshes from models (that might have multip…
phr00t Apr 22, 2024
caad86b
Bump to v4.14.12
phr00t Apr 22, 2024
cef8248
enable shadow/small object culling by default for performance/stability
phr00t Apr 22, 2024
5cdf5bf
Bump to v4.14.13
phr00t Apr 22, 2024
33a86b9
BatchedMeshDraw rare crashfix
phr00t Apr 24, 2024
1db9e99
Fix long standing audio velocity/doppler effect bug
phr00t Apr 27, 2024
2cb81a7
improve threading of globalsoundmanager
phr00t Apr 29, 2024
1934809
Bump to v4.14.16
phr00t Apr 29, 2024
369d893
#2214 Vulkan uses gl_InstanceIndex and gl_VertexIndex instead of gl_I…
johang88 Apr 21, 2024
f89d361
Bump to v4.14.17
phr00t Apr 29, 2024
86aff1e
Improved UI auto organization feature
phr00t May 2, 2024
a169f03
Bump to v4.15
phr00t May 2, 2024
1cba6b6
minor adjustments to hopefully address crashing with shadowmaps (does…
phr00t May 2, 2024
a5081d3
cached loading content manager helper
phr00t May 3, 2024
2cd81c5
bump to v4.15.1
phr00t May 3, 2024
f495784
Better handling of rotated and offset bepu physics objects
phr00t May 7, 2024
b304be3
minor fix to offset physics rotations when rotations are ignored
phr00t May 8, 2024
79d3f3f
fix resizing option for buttons
phr00t May 20, 2024
7a323ae
new unified simplistic gamepad/controller system with pointer emulation
phr00t May 24, 2024
d00d2c6
update SDL2 gamecontroller DB
phr00t May 25, 2024
9758312
major SDL2 update
phr00t May 25, 2024
3faf6f4
SDL: support secondary displays
phr00t May 31, 2024
aacb311
Vulkan: add debugging info for tracking lost devices
phr00t May 31, 2024
b1cb5e9
bump to v4.16.2
phr00t May 31, 2024
e182d80
get rid of vulkan debugging for now
phr00t Jun 2, 2024
eb3ee01
fix flickering with high draw counts!
phr00t Jun 2, 2024
8d70119
bump to v4.16.3
phr00t Jun 2, 2024
39d987b
feature in GlobalSoundManager to pause and resume looped sounds
phr00t Jun 3, 2024
d68c732
increase vulkan upload buffer and make it consistent
phr00t Jun 3, 2024
6753d92
more consistent, better buffer pool counts/sizes for vulkan
phr00t Jun 3, 2024
952acb9
more error reporting popup options
phr00t Jun 3, 2024
698abf6
using popups to hopefully print more devicelost errors
phr00t Jun 3, 2024
3c84dc4
noting where a device lost may have happened in previous versions of …
phr00t Jun 3, 2024
dfa0df7
bump to v4.16.5
phr00t Jun 3, 2024
1856c54
fix Xenko.Core.Tasks.csproj line order to solve build error
yellowberryHN Jun 24, 2024
eee0149
ModelBatcher: more options to batching lots of models together
phr00t Jul 20, 2024
81ae535
VR: ability to override what the base rotation of the head rotation is
phr00t Jul 20, 2024
592ad2d
BepuCharacterController: allow mouse control of more than camera
phr00t Jul 20, 2024
903fb67
bump to v4.6.10
phr00t Jul 20, 2024
0439cb8
Merge pull request #114 from yellowberryHN/master
phr00t Jul 21, 2024
46c10a9
UI: allow fullscreen UI to be translated across the screen
phr00t Jul 21, 2024
6926059
Bump to v4.17
phr00t Jul 21, 2024
2c2bd66
UI: fix pulldown list rare null object value sneaking in
phr00t Jul 30, 2024
acd1c96
better describe null crash when trying to save some data with SimpleS…
phr00t Jul 30, 2024
00fbc17
Bump to v4.17.1
phr00t Jul 30, 2024
05c70d2
Allow BatchedMeshDraw to be properly frustum optimized when not root …
phr00t Aug 3, 2024
1843fcd
Bump to v4.17.2
phr00t Aug 3, 2024
79aa1f7
better management of batchedmeshdraw indicies
phr00t Aug 11, 2024
3ec829a
Bump to v4.17.3
phr00t Aug 11, 2024
fe6f0b0
fixed sized UI components now respect field of view changes
phr00t Aug 12, 2024
18780c7
Allow physics single function to be always called before any simulati…
phr00t Aug 14, 2024
e3a55ee
GameStudio: fix texture previews
phr00t Aug 17, 2024
4f36672
GlobalSoundManager: option to bypass doppler effect
phr00t Aug 18, 2024
7c12352
feature to completely disable doppler effect
phr00t Sep 11, 2024
3ff78d2
nuget packaging fixes/upgrades
phr00t Sep 11, 2024
cd1b81c
fixes for bepucharactercontroller rotation in VR
phr00t Sep 13, 2024
aad2f3b
simplify some OpenXR initialization, update openxr_loader dll
phr00t Sep 13, 2024
4db554e
use more recent OpenXR API version
phr00t Sep 13, 2024
95e5636
ok OpenXR API is 1.0.36
phr00t Sep 13, 2024
6403834
Significant rewrite for BepuCharacterController physics & VR
phr00t Sep 14, 2024
1eb4d65
added VR zoom scaling
phr00t Sep 14, 2024
26fea36
Bump to v4.18.8
phr00t Sep 14, 2024
adac797
more direct access to VR field of view through BepuCharacterController
phr00t Sep 16, 2024
898bd57
minor, insignificant openxr change
phr00t Sep 17, 2024
80ba7bf
Bump to v4.18.11
phr00t Sep 17, 2024
98796f2
consider VR field of view scaling for small culling
phr00t Sep 18, 2024
e24e6e7
complete redesign of VR matrix and body handling, so its easier to ro…
phr00t Sep 19, 2024
5049690
Rework of GlobalSoundManager for better threadsafe reliability
phr00t Nov 25, 2024
48c56ec
Updates to Silk.Net and Nuget packages
phr00t Nov 25, 2024
d7fb2a3
SDL2 upgrade to 2.30.10
phr00t Dec 10, 2024
c328d4b
protection against a rare save problem that could cause project corru…
phr00t Dec 29, 2024
c2ad34c
GlobalSoundManager: add feature to auto-cleaning itself, like garbage…
phr00t Jan 16, 2025
2d124bf
Update README.md
phr00t Jan 19, 2025
7ce03f4
C# 9->12, window resolution reset tweak
phr00t Mar 18, 2025
ef3e4a6
Merge branch 'master' of https://github.com/phr00t/FocusEngine
phr00t Mar 18, 2025
3e6c23b
fix some nuget packages / json logging
phr00t Aug 5, 2025
4fc97a2
version bump
phr00t Aug 5, 2025
5b92733
physics performance improvements / adjustments
phr00t Aug 13, 2025
4095920
simply/improve entity management, resolving very rare multithreading …
phr00t Dec 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
159 changes: 154 additions & 5 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
########################################################
# Xenko editor config

root = true

[*]
Expand All @@ -9,13 +12,159 @@ charset = utf-8
[*.ttinclude]
insert_final_newline = false

# C# files
[*.cs]
indent_style = space
indent_size = 4
##################################
# XAML Code Style Rules #
##################################

# XAML files
[*.xaml]
# enable this once we have merged most of our branches into master
indent_style = space
indent_size = 2

########################################################
# Following config is taken from
# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference?view=vs-2019#example-editorconfig-file
# (to force default expected VS2019 settings)

# Code files
[*.{cs,csx,vb,vbx}]
indent_style = space
indent_size = 4

###############################
# .NET Coding Conventions #
###############################

[*.{cs,vb}]
# Organize usings
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false

# this. preferences
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
dotnet_style_readonly_field = true:suggestion

# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent

###############################
# Naming Conventions #
###############################

# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
dotnet_naming_symbols.constant_fields.required_modifiers = const

###############################
# C# Code Style Rules #
###############################

[*.cs]
# var preferences
csharp_style_var_for_built_in_types = true:silent
csharp_style_var_when_type_is_apparent = true:silent
csharp_style_var_elsewhere = true:silent

# Expression-bodied members
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent

# Pattern-matching preferences
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion

# Null-checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion

# Expression-level preferences
csharp_prefer_braces = true:silent
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion

###############################
# C# Formatting Rules #
###############################

# New line preferences
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left

# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_after_comma = true
csharp_space_after_dot = false

# Wrapping preferences
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true

##################################
# Visual Basic Code Style Rules #
##################################

[*.vb]
# Modifier preferences
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,8 @@ fastlane/report.xml
fastlane/screenshots
*.user
project.lock.json
*.lock
*.bak
routerlog.txt
hooks
lfs
Loading