- Node.js and npm installed
- Visual Studio Code or Cursor installed
-
Install dependencies
npm install
-
Compile TypeScript
npm run compile
-
Package the extension
npm install -g @vscode/vsce vsce package
This creates a
.vsixfile (e.g.,command-completion-0.0.1.vsix)
- Build the extension (see above)
- In VSCode/Cursor:
- Open Command Palette (
Cmd+Shift+PorCtrl+Shift+P) - Type "Extensions: Install from VSIX"
- Select the
.vsixfile you just built
- Open Command Palette (
- Reload the window
- Test the extension!
- Open this project in VSCode/Cursor
- Press
F5to launch Extension Development Host - Test in the new window that opens
-
Test with Java files
- Generate Constructors works
- Generate Getters/Setters works
- Generate Tests works
- Extract refactorings work
- Lazy actions are filtered out (don't appear)
-
Test with TypeScript/JavaScript files
- Refactorings work
- Navigation commands work (Go to Definition, Find References, etc.)
-
Test with other languages (Python, Go, etc.)
- Commands appear and work
-
Test edge cases
- Multiple dots (
..,...) work - Commands appear after normal autocomplete
- Dots are removed when command executes
- Multiple dots (
Test the extension for 3-7 days with your daily workflow before publishing.
- Create a Microsoft account (if you don't have one)
- Create an Azure DevOps organization
- Get a Personal Access Token (PAT)
- Go to https://dev.azure.com
- User Settings → Personal Access Tokens
- Create new token with Marketplace (Manage) scope
-
Login to vsce
vsce login <publisher-name>
Enter your PAT when prompted
-
Create publisher (first time only)
vsce create-publisher <publisher-name>
-
Update package.json Add your publisher name:
{ "publisher": "your-publisher-name", ... } -
Publish
vsce publish
Or publish a specific version:
vsce publish minor # 0.0.1 -> 0.1.0 vsce publish patch # 0.0.1 -> 0.0.2 vsce publish major # 0.0.1 -> 1.0.0
Cursor uses the same VSCode marketplace, so once published to VSCode, it will automatically be available in Cursor!
- Major (1.0.0): Breaking changes
- Minor (0.1.0): New features, backwards compatible
- Patch (0.0.1): Bug fixes
- Update version in
package.json - Update
CHANGELOG.mdwith changes - Test thoroughly
- Commit changes
- Create git tag:
git tag v0.0.1 - Push tag:
git push --tags - Build and publish
- Display Name: Command Completion
- Description: Postfix completion for IDE commands - access quick fixes, refactorings, and navigation via dot notation
- Categories: Other, Programming Languages
- Tags: refactoring, navigation, productivity, postfix, code-actions
- Icon: (Optional) Create a 128x128 PNG icon
- Repository: Your GitHub repository URL
- License: MIT
The marketplace will use your README.md, so make sure it's well-formatted with:
- Clear description
- Screenshots/GIFs
- Usage examples
- Feature list
- Known limitations
Install vsce globally:
npm install -g @vscode/vsceAdd to package.json:
{
"publisher": "your-publisher-name"
}Add to package.json:
{
"repository": {
"type": "git",
"url": "https://github.com/yourusername/vscommandcompletion.git"
}
}- Monitor issues on GitHub
- Respond to user feedback
- Plan next version based on feedback
- Keep dependencies updated
# Development
npm install # Install dependencies
npm run compile # Compile TypeScript
npm run watch # Watch mode for development
# Building
vsce package # Create .vsix file
# Publishing
vsce login # Login to marketplace
vsce publish # Publish new version
vsce publish minor # Bump minor version and publish