-
-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add new Consolonia.Templates template package #224
Conversation
This defines Consolonia.Templates template nuget packge which has * `dotnet new consolonia` app template to create a consolonia application from CLI.
Warning Rate limit exceeded@tomlm has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 9 minutes and 56 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis pull request introduces several changes across the Consolonia project, focusing on updating the Possibly related PRs
Suggested labels
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (12)
src/Tools/Consolonia.Templates/buildvsix.cmd (1)
1-1
: Consider providing usage instructions.
While the echo statements inform the user to pass the path to the NuGet file, it might be helpful to add an example usage line (e.g., “Usage: buildvsix.cmd path\to\Consolonia.Templates.1.0.0.nupkg”) to clarify.src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Views/MainWindow.axaml (1)
5-5
: Fix the "Conslonia" spelling.
The text block says "Welcome to Conslonia!" whereas the framework is named "Consolonia." Consider correcting the spelling for consistency and clarity.-<TextBlock Text="Welcome to Conslonia!"/> +<TextBlock Text="Welcome to Consolonia!"/>src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Views/MainWindow.axaml.cs (1)
14-17
: Exit event handling looks good.
Calling Close() on the current window is a suitable approach to gracefully exit. If multiple windows or resources are involved in the future, ensure that everything is disposed properly before closing.src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Program.cs (2)
8-12
: Main method usage is standard.
The method properly configures and starts the application with console lifetime. Consider adding a brief usage guide or error handling if your application will parse command-line arguments in future expansions.
14-20
: AppBuilder configuration is concise; logs are directed to exceptions.
Logging exceptions is a good start. If advanced diagnostics or telemetry is needed, consider hooking in a more robust logging sink.src/Consolonia.Gallery/Gallery/GalleryViews/GalleryScrollViewer.axaml.cs (1)
69-69
: Consider removing the redundant char[] cast.Casting the array to (char[]) might not be necessary if the original array is already a char array. Removing the explicit cast can improve readability without impacting functionality.
src/Tools/Consolonia.Templates/readme.md (6)
2-2
: Fix minor spelling: “tempalte” → “template.”A minor typo is present in “dotnet tempalte libraries.” Below is a suggested patch:
-This is a package which adds new templates to dotnet tempalte libraries. +This is a package which adds new templates to dotnet template libraries.
9-10
: Avoid repeated mention of “templates.”Line 9 reads “## Bot Templates,” line 10 reads “Templates for creating bots.” This duplication might confuse readers. Consider combining them for clarity.
## Bot Templates -Templates for creating bots. +Creating bots made easier with these new templates.🧰 Tools
🪛 LanguageTool
[duplication] ~9-~9: Possible typo: you repeated a word
Context: ...i Iciclecreek.Bot.Templates ``` ## Bot Templates Templates for creating bots. ### ConsoleBot temp...(ENGLISH_WORD_REPEAT_RULE)
13-13
: Insert missing article.“Creates a console bot which uses Lucy Recognizer to create natural language console app” → “Creates a console bot which uses Lucy Recognizer to create a natural language console app.”
-Creates a Console bot which uses Lucy Recognizer to create natural language console app. +Creates a console bot which uses Lucy Recognizer to create a natural language console app.🧰 Tools
🪛 LanguageTool
[uncategorized] ~13-~13: Possible missing article found.
Context: ...ot which uses Lucy Recognizer to create natural language console app. ``` dotnet new c...(AI_HYDRA_LEO_MISSING_A)
21-21
: Use “an” instead of “a” before “Azure.”Grammar fix for clarity:
-Creates a Azure Function bot with Lucy Recognizer +Creates an Azure Function bot with Lucy Recognizer🧰 Tools
🪛 LanguageTool
[misspelling] ~21-~21: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...ame} ``` ### LucyBot Template Creates a Azure Function bot with Lucy Recognizer...(EN_A_VS_AN)
27-27
: Avoid repeated phrase “Item Templates.”Currently: “## Dialog Item Templates … Item templates for creating dialogs.” Combining them into a single heading or clarifying the text will reduce redundancy.
🧰 Tools
🪛 LanguageTool
[grammar] ~27-~27: This phrase is duplicated. You should probably use “Item Templates” only once.
Context: ...lucybot --name {botName} ``` ## Dialog Item Templates Item templates for creating dialogs. ### LucyDialog T...(PHRASE_REPETITION)
5-5
: Specify a language for fenced code blocks.MD040 suggests adding a language identifier for clarity in fenced code blocks:
-``` +```bash dotnet new -i Iciclecreek.Bot.TemplatesAlso applies to: 15-15, 23-23, 33-33 <details> <summary>🧰 Tools</summary> <details> <summary>🪛 Markdownlint (0.37.0)</summary> 5-5: null Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> </blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used: CodeRabbit UI** **Review profile: CHILL** **Plan: Pro** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 79caaccaec806933a5b94ac8d7872430da13f88c and 0cbb6b5d94808fcbaa51cffd901244bb8042fcca. </details> <details> <summary>📒 Files selected for processing (12)</summary> * `src/Consolonia.Gallery/Gallery/GalleryViews/GalleryScrollViewer.axaml.cs` (1 hunks) * `src/Consolonia.Gallery/Gallery/GalleryViews/GalleryTextBlock.axaml` (1 hunks) * `src/Consolonia.sln` (3 hunks) * `src/Tools/Consolonia.Templates/Consolonia.Templates.csproj` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/.template.config/template.json` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/App.cs` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/ConsoloniaAppTemplate.csproj` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Program.cs` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Views/MainWindow.axaml` (1 hunks) * `src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Views/MainWindow.axaml.cs` (1 hunks) * `src/Tools/Consolonia.Templates/buildvsix.cmd` (1 hunks) * `src/Tools/Consolonia.Templates/readme.md` (1 hunks) </details> <details> <summary>✅ Files skipped from review due to trivial changes (3)</summary> * src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/ConsoloniaAppTemplate.csproj * src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/.template.config/template.json * src/Tools/Consolonia.Templates/Consolonia.Templates.csproj </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>🪛 LanguageTool</summary> <details> <summary>src/Tools/Consolonia.Templates/readme.md</summary> [duplication] ~9-~9: Possible typo: you repeated a word Context: ...i Iciclecreek.Bot.Templates ``` ## Bot Templates Templates for creating bots. ### ConsoleBot temp... (ENGLISH_WORD_REPEAT_RULE) --- [uncategorized] ~13-~13: Possible missing article found. Context: ...ot which uses Lucy Recognizer to create natural language console app. ``` dotnet new c... (AI_HYDRA_LEO_MISSING_A) --- [misspelling] ~21-~21: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. Context: ...ame} ``` ### LucyBot Template Creates a Azure Function bot with Lucy Recognizer... (EN_A_VS_AN) --- [grammar] ~27-~27: This phrase is duplicated. You should probably use “Item Templates” only once. Context: ...lucybot --name {botName} ``` ## Dialog Item Templates Item templates for creating dialogs. ### LucyDialog T... (PHRASE_REPETITION) </details> </details> <details> <summary>🪛 Markdownlint (0.37.0)</summary> <details> <summary>src/Tools/Consolonia.Templates/readme.md</summary> 5-5: null Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 15-15: null Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 23-23: null Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 33-33: null Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> </details> <details> <summary>🔇 Additional comments (6)</summary> <details> <summary>src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/App.cs (1)</summary> `7-13`: **Good introduction of a themed application class.** The usage of MaterialTheme is straightforward and consistent. This provides a neat default style. If future plans involve additional theming or customization, consider wrapping theme configuration in a dedicated method or service. </details> <details> <summary>src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/Views/MainWindow.axaml.cs (1)</summary> `6-7`: **MainWindow class definition and partial usage are correct.** The class correctly inherits from Window, and partial usage aligns with the XAML code-behind model in Avalonia. </details> <details> <summary>src/Consolonia.Gallery/Gallery/GalleryViews/GalleryTextBlock.axaml (1)</summary> `23-24`: **Good addition to improve text readability.** The inclusion of TextWrapping="Wrap" enhances the user experience by preventing text from overflowing and ensuring proper display in limited-width scenarios. </details> <details> <summary>src/Consolonia.sln (3)</summary> `168-169`: **Validate correct nesting of the new template projects.** The new projects (Consolonia.Templates, ConsoloniaAppTemplate) are nested under “Tools.” Check that the solution folder structure meets your organizational goals and that any required references in subfolders remain accessible. --- `60-76`: **New projects added to the solution.** Lines 60 through 76 add new or updated project references (e.g., “Consolonia”, “ConsoloniaAppTemplate”). Verify that all references build correctly and that no dependencies are missing. <details> <summary>✅ Verification successful</summary> Let me gather information about the project references and their dependencies. This will help us verify: 1. If all the referenced project files exist in the repository 2. The dependencies between projects through their project references --- Based on the output, I can now generate the final response since I have sufficient information about the project files and their dependencies. **All referenced projects exist and have proper dependency chains** The verification shows that: - All projects mentioned in the solution file exist in the repository - Each project has proper project references and package dependencies defined - The project structure follows a logical organization with main, experimental, and tooling projects </details> <details> <summary>🏁 Scripts executed</summary> The following scripts were executed for the analysis: Error: No shell scripts found --- Script: ```shell #!/bin/bash # Check if all the referenced project files exist echo "Checking project files existence:" fd -e csproj # Look for project references in these csproj files echo -e "\nChecking project references:" fd -e csproj -x cat {} \; -x echo -e "\n---\n"
Length of output: 15960
148-155
: Ensure the build configurations align with the new projects.These lines register Debug/Release build configurations. Confirm that the new projects have matching target frameworks and references. Inconsistent frameworks or missing references may cause build issues.
✅ Verification successful
Let me gather information about the project configurations and frameworks.
These scripts will help us verify:
- The target frameworks of the projects referenced in the solution
- The complete solution file content to understand project relationships
- Any additional framework configuration files that might affect the build
Based on the analysis of the provided files, I can generate the final response as we have sufficient information:
Build configurations are properly aligned with the new template projects
The verification shows that:
- Both projects (
Consolonia.Templates
andConsoloniaAppTemplate
) inherit fromDirectory.Core.Build.props
which setsTargetFramework
tonet8.0
- Both projects have Debug/Release configurations properly set in the solution file
- The template project correctly references the required Consolonia package
- All projects in the solution share consistent build configurations and framework targets
🏁 Scripts executed
The following scripts were executed for the analysis:
Error: No shell scripts found
Script:
#!/bin/bash # Find all project files and their target frameworks fd -e csproj . | xargs catLength of output: 13694
Script:
#!/bin/bash # Check solution file for project references cat src/Consolonia.slnLength of output: 12376
Script:
#!/bin/bash # Look for any framework-related configuration files fd -e props -e targets . | xargs catLength of output: 1927
@@ -66,7 +66,7 @@ public ScrollViewerPageViewModel() | |||
`^' \ :/ `^' `-^-' \v/ : \/ | |||
Bill Ames | |||
|
|||
""".Split(['\r', '\n'], StringSplitOptions.RemoveEmptyEntries)); | |||
""".Split((char[])['\r', '\n'], StringSplitOptions.RemoveEmptyEntries)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curios what was the type before cast
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super weird. I'm using my ARM tablet and build is broken on ARM because it is ambigious between
.Split(char[], ...)
.Split(string, ...)
methods.
I think this is a dotnet bug in the arm implementation or something. I couldn't build without explicitely casting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think string has char[] cast operator or something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very interesting. ARM64? what is the device?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/editorconfig.yml
(2 hunks)
🧰 Additional context used
🪛 yamllint (1.35.1)
.github/workflows/editorconfig.yml
[error] 40-40: syntax error: expected , but found ''
(syntax)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
src/Tools/Consolonia.Templates/README.md (3)
1-4
: Enhance the README header with additional information.Consider adding badges and a more detailed description to help users quickly understand the package's status and purpose.
-# Consolonia.Templates -This is a package which adds Consolonia templates to dotnet. +# Consolonia.Templates + +[](https://www.nuget.org/packages/Consolonia.Templates) +[](LICENSE) + +A .NET template package that provides project templates for building console applications using the Consolonia UI framework. These templates help you quickly scaffold new Consolonia applications with the recommended project structure and basic configuration.
12-17
: Add more details about the template output.The template description could be more informative about what users get when they create a new project.
## Consolonia application template -Creates a Consolonia console application. +Creates a new Consolonia console application with the following features: + +- Pre-configured project structure +- Basic main window setup +- Example theme configuration +- Exit functionality -``` +```shell dotnet new consolonia --name {appName}
+### Project Structure
+
+The template generates:
+
+```
+MyApp/
+├── Program.cs # Application entry point
+├── App.cs # Main application class
+├── MainWindow.cs # Primary window implementation
+└── MyApp.csproj # Project file with required dependencies<details> <summary>🧰 Tools</summary> <details> <summary>🪛 Markdownlint (0.37.0)</summary> 15-15: null Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> --- `19-20`: **Use proper markdown link syntax.** Replace the bare URL with proper markdown link syntax for better readability and maintainability. ```diff -# Consolonia UI -See https://github.com/jinek/consolonia for more information about Consolonia UI. +## Additional Resources + +- [Consolonia UI Documentation](https://github.com/jinek/consolonia) - Learn more about building console applications with Consolonia UI +- [Report Issues](https://github.com/jinek/consolonia/issues) - Submit bugs and feature requests
🧰 Tools
🪛 Markdownlint (0.37.0)
20-20: null
Bare URL used(MD034, no-bare-urls)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
src/Consolonia.sln
(3 hunks)src/Tools/Consolonia.Templates/Consolonia.Templates.csproj
(1 hunks)src/Tools/Consolonia.Templates/README.md
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- src/Tools/Consolonia.Templates/Consolonia.Templates.csproj
- src/Consolonia.sln
🧰 Additional context used
🪛 Markdownlint (0.37.0)
src/Tools/Consolonia.Templates/README.md
20-20: null
Bare URL used
(MD034, no-bare-urls)
6-6: null
Fenced code blocks should have a language specified
(MD040, fenced-code-language)
15-15: null
Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (1)
src/Tools/Consolonia.Templates/README.md (1)
7-7
: Verify template installation and usage.
Let's verify that the template package can be installed and used as described in the PR objectives.
✅ Verification successful
Template installation command is correctly configured
The template package is properly set up with:
- Valid template configuration in
.template.config/template.json
with correct shortName "consolonia" - Proper package configuration in
Consolonia.Templates.csproj
with PackageType set to "Template" - Correct template structure with all necessary files included
- Installation command
dotnet new -i Consolonia.Templates
matches the package configuration
The template can be installed and used with:
dotnet new -i Consolonia.Templates
dotnet new consolonia --name {appName}
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify template installation and listing commands
# Check if the template package is properly configured
fd -e json template.config -x cat {} \; | jq -r '.identity'
# Verify template configuration matches PR objectives
fd -e json template.config -x jq -r '{
templateName: .identity,
shortName: .shortName,
tags: .tags,
language: .language
}' {} \;
Length of output: 204
Script:
#!/bin/bash
# Let's check the structure and content of the template directory
# Find all files in the template directory
fd . src/Tools/Consolonia.Templates/ -t f
# Check the content of .template.config if it exists in a different location
fd .template.config -t f -x cat {} \;
# Check if there's any nuspec file that might contain template configuration
fd -e nuspec -x cat {} \;
# Look for any documentation about template installation
rg -A 5 "template" README.md
Length of output: 607
Script:
#!/bin/bash
# Let's check the content of the template project and README
# Check the content of the template's README for installation instructions
cat src/Tools/Consolonia.Templates/README.md
# Check the template project file for package configuration
cat src/Tools/Consolonia.Templates/Consolonia.Templates.csproj
# Check if there's a .template.config in the template app directory
fd .template.config -t f src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/
Length of output: 1549
Script:
#!/bin/bash
# Let's check for the template configuration in the app template directory
# Check if .template.config exists in a hidden directory
fd -H .template.config src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/
# List all hidden files and directories in the template directory
fd -H . src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/
# Check the complete directory structure including hidden files
ls -la src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/
Length of output: 1271
Script:
#!/bin/bash
# Let's check the template configuration file
# Check the content of template.json
cat src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/.template.config/template.json
# Verify the template project references
cat src/Tools/Consolonia.Templates/ConsoloniaAppTemplate/ConsoloniaAppTemplate.csproj
Length of output: 922
Co-authored-by: <[email protected]>
…into tomlm/templates
Adds new cli template
Will output a consolonia project with app and mainwindow defined.