-
Notifications
You must be signed in to change notification settings - Fork 797
Add project-specific guidelines for Rider's coding agent Junie. Generated by Junie. #3250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # Coding Conventions | ||
|
|
||
| Junie Pro generated these guidelines using the Gemini 3 model. | ||
|
|
||
| ## General | ||
| * **Language**: C# (Latest version features used, e.g., file-scoped namespaces, target-typed new). | ||
| * **Framework**: .NET 10.0 (Windows). | ||
| * **Architecture**: MVVM (Model-View-ViewModel). | ||
| * **UI Framework**: WPF (using MahApps.Metro and Dragablz). | ||
|
|
||
| ## Naming Conventions | ||
| * **Classes, Methods, Properties, Enums**: PascalCase. | ||
| * **Private Fields**: `_camelCase` (underscore prefix). | ||
| * Exception: `private static readonly ILog Log` (PascalCase). | ||
| * **Event Handlers**: `Object_EventName` (e.g., `SettingsManager_PropertyChanged`). | ||
| * **Interfaces**: `IPascalCase` (prefix with I). | ||
|
|
||
| ## Formatting | ||
| * **Indentation**: 4 spaces. | ||
| * **Braces**: Allman style (opening brace on a new line). | ||
| * **Namespaces**: File-scoped namespaces (`namespace MyNamespace;`). | ||
BornToBeRoot marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| * **Imports**: `using` directives sorted alphabetically, `System` namespaces mixed in. | ||
| * **Grouping**: `#region` used to group related members (e.g., Variables, Events, Properties). | ||
|
|
||
| ## Specific Practices | ||
| * **Logging**: Use `log4net` via `LogManager.GetLogger(typeof(ClassName))`. | ||
| * **Properties**: Implement `INotifyPropertyChanged` (usually via `ViewModelBase`). Use expression-bodied members for getters where concise. | ||
| * **Null Checks**: Use pattern matching or standard checks. | ||
| * **Localization**: Use static `Strings` class (e.g., `localization:Strings.MyString`). | ||
| * **Documentation**: XML documentation comments (`///`) for all public members. | ||
|
|
||
| # Code Organization and Package Structure | ||
|
|
||
| ## Projects | ||
| The solution is divided into multiple projects to separate concerns: | ||
|
|
||
| * **NETworkManager**: The main WPF application project. Contains the entry point (`App.xaml`), main window, and feature-specific Views and ViewModels. | ||
| * **NETworkManager.Controls**: Custom WPF UI controls used throughout the application. | ||
| * **NETworkManager.Converters**: WPF Value Converters for data binding. | ||
| * **NETworkManager.Models**: Core business logic, data entities, and service wrappers (e.g., Network, Ping, Traceroute logic). | ||
| * **NETworkManager.Utilities**: General purpose utility classes and helpers. | ||
| * **NETworkManager.Utilities.WPF**: WPF-specific utility classes. | ||
| * **NETworkManager.Settings**: Manages application settings and configuration persistence. | ||
| * **NETworkManager.Profiles**: Logic for handling network profiles. | ||
| * **NETworkManager.Localization**: Contains localization resources (`Strings.resx`). | ||
| * **NETworkManager.Validators**: Input validation logic. | ||
| * **NETworkManager.Documentation**: Application documentation resources. | ||
| * **NETworkManager.Update**: Logic for checking and applying application updates. | ||
| * **NETworkManager.Setup**: Related to the installer setup. | ||
|
|
||
| ## Directory Structure | ||
| * `/NETworkManager` | ||
| * `/Views`: XAML Views (UserControls, Windows). | ||
| * `/ViewModels`: ViewModels corresponding to Views. | ||
| * `/Resources`: App-specific resources. | ||
| * `/NETworkManager.Models` | ||
| * Organized by feature (e.g., `/Network`, `/Ping`, `/Lookup`). | ||
| * `/3rdparty`: Third-party libraries and dependencies. Junie must not modify these libraries and dependencies. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.