Skip to content

Commit c17a7a6

Browse files
nullvariantclaude
andauthored
feat(git-id-switcher): unify command category prefix to Git ID Switcher (#197)
* feat(git-id-switcher): unify command category prefix to Git ID Switcher BREAKING CHANGE: Command palette display names changed from "Git ID:" to "Git ID Switcher:" Changes: - Add "category": "Git ID Switcher" to all 3 commands in package.json - Remove "Git ID: " prefix from command titles in 17 package.nls files - Update command tables in all 26 language READMEs - Add previously missing "Show Documentation" command to README command lists - Bump version from 0.13.8 to 0.14.0 Migration: - Users searching for "Git ID:" in command palette should now search "Git ID Switcher:" - Keyboard shortcuts are NOT affected (command IDs unchanged) - Settings are NOT affected (configuration keys unchanged) 🖥️ IDE: [Cursor](https://cursor.sh) 🔌 Extension: [Claude Code](https://claude.ai/download) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Model-Raw: claude-opus-4-5-20251101 * style: apply prettier-markdown formatting to README tables 🖥️ IDE: [Cursor](https://cursor.sh) 🔌 Extension: [Claude Code](https://claude.ai/download) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Model-Raw: claude-opus-4-5-20251101 --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 948ff88 commit c17a7a6

47 files changed

Lines changed: 1207 additions & 1156 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

extensions/git-id-switcher/CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.14.0] - 2026-01-22
11+
12+
### Changed
13+
14+
- **Command Palette Display Names**: Unified command category prefix for consistency
15+
- Changed from `Git ID:` to `Git ID Switcher:` for all commands
16+
- `Git ID: Select Identity``Git ID Switcher: Select Identity`
17+
- `Git ID: Show Current Identity``Git ID Switcher: Show Current Identity`
18+
- Prevents potential conflicts with other Git ID extensions in the ecosystem
19+
20+
### Added
21+
22+
- **Documentation Command in README**: Added `Git ID Switcher: Show Documentation` to command lists
23+
- Updated all 26 language README variants with the previously missing command
24+
- Each language includes appropriately translated descriptions
25+
26+
### ⚠️ Breaking Change
27+
28+
- **Command Search**: Users who search for commands using `Git ID:` prefix will need to update their search to `Git ID Switcher:`
29+
- **Keyboard Shortcuts**: Not affected (command IDs remain unchanged)
30+
- **Settings**: Not affected (configuration keys remain unchanged)
31+
1032
## [0.13.8] - 2026-01-19
1133

1234
### Changed

extensions/git-id-switcher/README.md

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
While many Git identity switchers exist, **Git ID Switcher** solves the complex problems that others ignore:
4141

42-
1. **Submodules Nightmare**: Working with repositories that have submodules (e.g., Hugo themes, vendored libraries) usually requires setting `git config user.name` manually for *each* submodule. This extension handles it elegantly by recursively applying your identity to all active submodules.
42+
1. **Submodules Nightmare**: Working with repositories that have submodules (e.g., Hugo themes, vendored libraries) usually requires setting `git config user.name` manually for _each_ submodule. This extension handles it elegantly by recursively applying your identity to all active submodules.
4343
2. **SSH & GPG handling**: It doesn't just change your name; it swaps your SSH keys in the agent and configures GPG signing so you never commit with the wrong signature.
4444

4545
## Features
@@ -294,17 +294,17 @@ Note: The last identity (`freelance`) has no SSH - it only switches Git config.
294294

295295
### Identity Properties
296296

297-
| Property | Required | Description |
298-
| ------------- | -------- | ---------------------------------------------------------- |
299-
| `id` | | Unique identifier (e.g., `"work"`, `"personal"`) |
300-
| `name` | | Git user.name - shown in commits |
301-
| `email` | | Git user.email - shown in commits |
302-
| `icon` | | Emoji shown in status bar (e.g., `"🏠"`). Single emoji only |
297+
| Property | Required | Description |
298+
| ------------- | -------- | ---------------------------------------------------------------- |
299+
| `id` || Unique identifier (e.g., `"work"`, `"personal"`) |
300+
| `name` || Git user.name - shown in commits |
301+
| `email` || Git user.email - shown in commits |
302+
| `icon` | | Emoji shown in status bar (e.g., `"🏠"`). Single emoji only |
303303
| `service` | | Service name (e.g., `"GitHub"`, `"GitLab"`). Used for UI display |
304-
| `description` | | Short description shown in picker and tooltip |
305-
| `sshKeyPath` | | Path to SSH private key (e.g., `"~/.ssh/id_ed25519_work"`) |
306-
| `sshHost` | | SSH config Host alias (e.g., `"github-work"`) |
307-
| `gpgKeyId` | | GPG key ID for commit signing |
304+
| `description` | | Short description shown in picker and tooltip |
305+
| `sshKeyPath` | | Path to SSH private key (e.g., `"~/.ssh/id_ed25519_work"`) |
306+
| `sshHost` | | SSH config Host alias (e.g., `"github-work"`) |
307+
| `gpgKeyId` | | GPG key ID for commit signing |
308308

309309
#### Display Limitations
310310

@@ -313,38 +313,38 @@ Note: The last identity (`freelance`) has no SSH - it only switches Git config.
313313

314314
### Global Settings
315315

316-
| Setting | Default | Description |
317-
| ------- | ------- | ----------- |
318-
| `gitIdSwitcher.identities` | See sample | List of identity configurations |
319-
| `gitIdSwitcher.defaultIdentity` | See sample | ID of default identity to use |
320-
| `gitIdSwitcher.autoSwitchSshKey` | `true` | Auto-switch SSH key when changing identities |
321-
| `gitIdSwitcher.showNotifications` | `true` | Show notification on identity switch |
322-
| `gitIdSwitcher.applyToSubmodules` | `true` | Propagate identity to Git submodules |
323-
| `gitIdSwitcher.submoduleDepth` | `1` | Max depth for nested submodule config (1-5) |
324-
| `gitIdSwitcher.includeIconInGitConfig` | `false` | Include icon emoji in Git config `user.name` |
325-
| `gitIdSwitcher.logging.fileEnabled` | `false` | Enable audit logging (identity switches, SSH operations) |
326-
| `gitIdSwitcher.logging.filePath` | `""` | Log file path (e.g., `~/.git-id-switcher/security.log`). Empty = default location |
327-
| `gitIdSwitcher.logging.maxFileSize` | `10485760` | Max file size before rotation (bytes, 1MB-100MB) |
328-
| `gitIdSwitcher.logging.maxFiles` | `5` | Max rotated log files to keep (1-20) |
329-
| `gitIdSwitcher.logging.level` | `"INFO"` | Log level: `DEBUG`/`INFO`/`WARN`/`ERROR`/`SECURITY`. Records selected level and above |
330-
| `gitIdSwitcher.logging.redactAllSensitive` | `false` | When enabled, all values are masked in logs (maximum privacy mode) |
331-
| `gitIdSwitcher.commandTimeouts` | `{}` | Custom timeout per command (ms, 1sec-5min). E.g., `{"git": 15000, "ssh-add": 10000}` |
316+
| Setting | Default | Description |
317+
| ------------------------------------------ | ---------- | ------------------------------------------------------------------------------------- |
318+
| `gitIdSwitcher.identities` | See sample | List of identity configurations |
319+
| `gitIdSwitcher.defaultIdentity` | See sample | ID of default identity to use |
320+
| `gitIdSwitcher.autoSwitchSshKey` | `true` | Auto-switch SSH key when changing identities |
321+
| `gitIdSwitcher.showNotifications` | `true` | Show notification on identity switch |
322+
| `gitIdSwitcher.applyToSubmodules` | `true` | Propagate identity to Git submodules |
323+
| `gitIdSwitcher.submoduleDepth` | `1` | Max depth for nested submodule config (1-5) |
324+
| `gitIdSwitcher.includeIconInGitConfig` | `false` | Include icon emoji in Git config `user.name` |
325+
| `gitIdSwitcher.logging.fileEnabled` | `false` | Enable audit logging (identity switches, SSH operations) |
326+
| `gitIdSwitcher.logging.filePath` | `""` | Log file path (e.g., `~/.git-id-switcher/security.log`). Empty = default location |
327+
| `gitIdSwitcher.logging.maxFileSize` | `10485760` | Max file size before rotation (bytes, 1MB-100MB) |
328+
| `gitIdSwitcher.logging.maxFiles` | `5` | Max rotated log files to keep (1-20) |
329+
| `gitIdSwitcher.logging.level` | `"INFO"` | Log level: `DEBUG`/`INFO`/`WARN`/`ERROR`/`SECURITY`. Records selected level and above |
330+
| `gitIdSwitcher.logging.redactAllSensitive` | `false` | When enabled, all values are masked in logs (maximum privacy mode) |
331+
| `gitIdSwitcher.commandTimeouts` | `{}` | Custom timeout per command (ms, 1sec-5min). E.g., `{"git": 15000, "ssh-add": 10000}` |
332332

333333
#### About `includeIconInGitConfig`
334334

335335
Controls behavior when `icon` field is set:
336336

337-
| Value | Behavior |
338-
|-------|----------|
337+
| Value | Behavior |
338+
| ----------------- | ----------------------------------------------------------------------- |
339339
| `false` (default) | `icon` is shown in editor UI only. Only `name` is written to Git config |
340-
| `true` | `icon + name` is written to Git config. Emoji appears in commit history |
340+
| `true` | `icon + name` is written to Git config. Emoji appears in commit history |
341341

342342
Example: `icon: "👤"`, `name: "Alex Smith"`
343343

344-
| includeIconInGitConfig | Git config `user.name` | Commit signature |
345-
|------------------------|------------------------|------------------|
346-
| `false` | `Alex Smith` | `Alex Smith <email>` |
347-
| `true` | `👤 Alex Smith` | `👤 Alex Smith <email>` |
344+
| includeIconInGitConfig | Git config `user.name` | Commit signature |
345+
| ---------------------- | ---------------------- | ----------------------- |
346+
| `false` | `Alex Smith` | `Alex Smith <email>` |
347+
| `true` | `👤 Alex Smith` | `👤 Alex Smith <email>` |
348348

349349
### Note: Basic Setup (No SSH)
350350

@@ -415,24 +415,24 @@ That's why this extension provides submodule propagation (see "Advanced: Submodu
415415

416416
Git ID Switcher manages SSH keys through `ssh-agent`:
417417

418-
| Operation | Command |
419-
| ---------- | ------------------------- |
420-
| Add key | `ssh-add <keyPath>` |
421-
| Remove key | `ssh-add -d <keyPath>` |
422-
| List keys | `ssh-add -l` |
418+
| Operation | Command |
419+
| ---------- | ---------------------- |
420+
| Add key | `ssh-add <keyPath>` |
421+
| Remove key | `ssh-add -d <keyPath>` |
422+
| List keys | `ssh-add -l` |
423423

424424
**Important:** This extension does **NOT** modify `~/.ssh/config`. You need to set up your SSH config manually (see Step 2 in "Quick Start").
425425

426426
### Interaction with Existing SSH Config
427427

428428
If you already have SSH configuration, Git ID Switcher works alongside it:
429429

430-
| Your Setup | Git ID Switcher Behavior |
431-
| ---------------------------------------- | --------------------------------------------------------------- |
432-
| `~/.ssh/config` with `IdentityFile` | Both can be used; use `IdentitiesOnly yes` to prevent conflicts |
433-
| `GIT_SSH_COMMAND` environment variable | Git uses your custom SSH command; ssh-agent still works |
434-
| `git config core.sshCommand` | Same as above |
435-
| direnv with SSH-related env vars | Works alongside; ssh-agent operates independently |
430+
| Your Setup | Git ID Switcher Behavior |
431+
| -------------------------------------- | --------------------------------------------------------------- |
432+
| `~/.ssh/config` with `IdentityFile` | Both can be used; use `IdentitiesOnly yes` to prevent conflicts |
433+
| `GIT_SSH_COMMAND` environment variable | Git uses your custom SSH command; ssh-agent still works |
434+
| `git config core.sshCommand` | Same as above |
435+
| direnv with SSH-related env vars | Works alongside; ssh-agent operates independently |
436436

437437
**Recommended:** Always use `IdentitiesOnly yes` in your SSH config. This prevents SSH from trying multiple keys.
438438

@@ -583,10 +583,11 @@ If you previously saved empty settings, they may have synced to the cloud and ar
583583

584584
## Commands
585585

586-
| Command | Description |
587-
| ------------------------------- | ----------------------------- |
588-
| `Git ID: Select Identity` | Open the identity picker |
589-
| `Git ID: Show Current Identity` | Display current identity info |
586+
| Command | Description |
587+
| ---------------------------------------- | ----------------------------- |
588+
| `Git ID Switcher: Select Identity` | Open the identity picker |
589+
| `Git ID Switcher: Show Current Identity` | Display current identity info |
590+
| `Git ID Switcher: Show Documentation` | Show documentation |
590591

591592
---
592593

0 commit comments

Comments
 (0)