Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 36 additions & 41 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,32 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
5. **Branch naming** - Use format: `type/scope/short-description` (e.g., `feat/ui/settings-dialog`)
6. **Working an issue** - Always create a new branch from an updated main branch
7. **Check branch status before pushing** - Verify the remote tracking branch still exists. If a PR was merged/deleted, create a new branch from main instead
8. **WPF for all UI** - All UI must be implemented using WPF (XAML/C#). No web-based technologies (HTML, JavaScript, WebView)
8. **Microsoft coding guidelines** - Follow [Microsoft C# coding conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions) and [.NET library design guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/)
9. **WPF for all UI** - All UI must be implemented using WPF (XAML/C#). No web-based technologies (HTML, JavaScript, WebView)

---

### GitHub CLI Commands

```bash
gh issue list # List open issues
gh issue view <number> # View details
gh issue create --title "type(scope): description" --body "..."
gh issue close <number>
```

### Conventional Commit Types

| Type | Description |
|------|-------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation only |
| `refactor` | Code change that neither fixes a bug nor adds a feature |
| `test` | Adding or updating tests |
| `chore` | Maintenance tasks |
| `perf` | Performance improvement |
| `ci` | CI/CD changes |

### VSIX Development Rules

Expand All @@ -25,7 +50,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

**Build Configuration:**
- Configurations: Debug and Release
- Platform: AnyCPU
- Platform: AnyCPU (or x64 where required)
- Build Tools: Latest 17.* release
- VSSDK: Latest 17.* release

Expand All @@ -45,35 +70,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

**Development Environment:**
- Required extension: Extensibility Essentials 2022
- Helper library: VsixCommunity Toolkit
- Helper library: Community.VisualStudio.Toolkit (where applicable)

**Documentation:**
- README should be exciting and use emojis

---

### GitHub CLI Commands

```bash
gh issue list # List open issues
gh issue view <number> # View details
gh issue create --title "type(scope): description" --body "..."
gh issue close <number>
```

### Conventional Commit Types

| Type | Description |
|------|-------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation only |
| `refactor` | Code change that neither fixes a bug nor adds a feature |
| `test` | Adding or updating tests |
| `chore` | Maintenance tasks |

---

## Project Overview

This is a Visual Studio 2022 extension (VSIX) called "Project Renamifier" that allows users to rename projects completely from within Visual Studio, including the filename, parent folder, namespace, and references in the solution file and other projects.
Expand All @@ -83,10 +86,11 @@ This is a Visual Studio 2022 extension (VSIX) called "Project Renamifier" that a
## Build Commands

```bash
# Build the solution (from repo root)
msbuild src/CodingWithCalvin.ProjectRenamifier/CodingWithCalvin.ProjectRenamifier.slnx
# Build the solution
dotnet build src/CodingWithCalvin.ProjectRenamifier/CodingWithCalvin.ProjectRenamifier.csproj

# Or open in Visual Studio and build (F5 to debug launches experimental VS instance)
# Build Release
dotnet build src/CodingWithCalvin.ProjectRenamifier/CodingWithCalvin.ProjectRenamifier.csproj -c Release
```

## Development Setup
Expand All @@ -110,18 +114,9 @@ msbuild src/CodingWithCalvin.ProjectRenamifier/CodingWithCalvin.ProjectRenamifie
- Commands registered via VSCT files and OleMenuCommandService
- **Always use WPF for user interface** (dialogs, windows, etc.)

## Coding Standards

Follow Microsoft's official guidelines:
## CI/CD

- [C# Coding Conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)
- [.NET Design Guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/)
- [Framework Design Guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions)
GitHub Actions workflows in `.github/workflows/`:

Key points:
- Use PascalCase for public members, types, namespaces, and methods
- Use camelCase for private fields (prefix with `_` e.g., `_fieldName`)
- Use `var` when the type is obvious from the right side of the assignment
- Use meaningful, descriptive names
- Prefer `async`/`await` for asynchronous operations
- Use `ThreadHelper.ThrowIfNotOnUIThread()` when accessing VS services that require the UI thread
- **build.yml** - Triggered on push to main or PR. Builds and uploads VSIX artifact.
- **publish.yml** - Manual trigger to publish to VS Marketplace.