
Configure Editor
- 54 installs
- 49 repo stars
- Updated August 4, 2026
- laurigates/claude-plugins
Helps with ai & agent building tasks.
About
configure-editor is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- configure-editor
- AI & Agent Building
- AI-coding skill
Configure Editor by the numbers
- 54 all-time installs (skills.sh)
- Ranked #6,877 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/laurigates/claude-plugins --skill configure-editorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 54 |
|---|---|
| repo stars | ★ 49 |
| Last updated | August 4, 2026 |
| Repository | laurigates/claude-plugins ↗ |
What it does
Helps with ai & agent building tasks.
Files
/configure:editor
Check and configure editor settings for consistency across the team.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Setting up consistent editor configuration across a team | Personal editor preferences only (configure in user settings) |
| Checking EditorConfig or VS Code workspace compliance | Just viewing existing .editorconfig (use Read tool) |
| Configuring format-on-save for detected languages | Project doesn't use VS Code (configure for other editors manually) |
| Adding recommended VS Code extensions for project tools | Extensions are already properly configured |
| Setting up debug configurations and tasks | Simple project with no debugging needs |
Context
- EditorConfig: !
find . -maxdepth 1 -name \'.editorconfig\' - VS Code settings: !
find . -maxdepth 1 -name \'.vscode/settings.json\' - VS Code extensions: !
find . -maxdepth 1 -name \'.vscode/extensions.json\' - VS Code launch: !
find . -maxdepth 1 -name \'.vscode/launch.json\' - VS Code tasks: !
find . -maxdepth 1 -name \'.vscode/tasks.json\' - Project languages: !
find . -maxdepth 1 \( -name 'package.json' -o -name 'tsconfig.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'biome.json' \) - Project standards: !
find . -maxdepth 1 -name \'.project-standards.yaml\'
Parameters
Parse from $ARGUMENTS:
--check-only: Report compliance status without modifications--fix: Apply all fixes automatically without prompting
Execution
Execute this editor configuration workflow:
Step 1: Detect project languages and tools
Check for language indicators:
| Indicator | Language/Tool | Configuration Needed |
|---|---|---|
package.json | JavaScript/TypeScript | Biome |
tsconfig.json | TypeScript | TypeScript extension |
pyproject.toml | Python | Ruff, Python extension |
Cargo.toml | Rust | rust-analyzer |
biome.json | Biome formatter/linter | Biome extension |
Step 2: Analyze current editor configuration
Check existing configuration against these requirements:
EditorConfig: 1. Verify .editorconfig exists 2. Check root directive, charset, end-of-line, final newline, trim whitespace 3. Check language-specific sections match detected languages
VS Code Settings: 1. Verify .vscode/settings.json exists 2. Check format-on-save, default formatters per language, language-specific settings
VS Code Extensions: 1. Verify .vscode/extensions.json exists 2. Check recommended extensions match project tools
Step 3: Generate compliance report
Print a formatted compliance report showing status of each check:
Editor Configuration Compliance Report
=======================================
Project: [name]
Languages: [detected]
Detected Tools: [detected]
EditorConfig: [status per check]
VS Code Settings: [status per check]
VS Code Extensions: [status per check]
Overall: [X issues found]
Recommendations: [list specific fixes]If --check-only, stop here.
Step 4: Configure editor files (if --fix or user confirms)
Apply fixes based on detected languages. Use configurations from REFERENCE.md.
1. Create or update .editorconfig with language-specific sections 2. Create or update .vscode/settings.json with format-on-save and per-language formatters 3. Create or update .vscode/extensions.json with recommended extensions for detected tools 4. Add language-specific settings (TypeScript import preferences, Python interpreter, Rust clippy)
Step 5: Create launch and task configurations
1. Create .vscode/launch.json with debug configurations for detected languages 2. Create .vscode/tasks.json with build/test/lint tasks
Step 6: Update standards tracking
Update .project-standards.yaml:
components:
editor: "2025.1"
editor_config: true
vscode_settings: true
vscode_extensions: trueStep 7: Create documentation
Create docs/EDITOR_SETUP.md with quick start instructions for the team covering VS Code setup, recommended extensions, and troubleshooting.
Step 8: Print completion report
Print a summary of all changes made, including files created/updated, extensions recommended, and next steps for the team.
For detailed configuration templates and language-specific settings, see REFERENCE.md.
Agentic Optimizations
| Context | Command |
|---|---|
| Check if EditorConfig exists | `test -f .editorconfig && echo "exists" \ |
| Validate EditorConfig syntax | editorconfig-checker .editorconfig 2>&1 (if installed) |
| Check VS Code settings exist | test -f .vscode/settings.json && jq empty .vscode/settings.json 2>&1 |
| List detected languages | find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \) -exec basename {} \; |
| Quick compliance check | /configure:editor --check-only |
| Auto-fix all issues | /configure:editor --fix |
Flags
| Flag | Description |
|---|---|
--check-only | Report status without offering fixes |
--fix | Apply all fixes automatically without prompting |
Examples
# Check compliance and offer fixes
/configure:editor
# Check only, no modifications
/configure:editor --check-only
# Auto-fix all issues
/configure:editor --fixError Handling
- No language detected: Create minimal EditorConfig
- Conflicting formatters: Warn about duplicate formatter configs
- Invalid JSON: Report parse error, offer to replace with template
See Also
/configure:formatting- Configure code formatting/configure:linting- Configure linting tools/configure:all- Run all compliance checks- EditorConfig documentation: https://editorconfig.org
- VS Code settings reference: https://code.visualstudio.com/docs/getstarted/settings
configure-editor Reference
Configuration templates and language-specific settings for editor configuration.
EditorConfig Template
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# JavaScript, TypeScript, JSX, TSX
[*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}]
indent_style = space
indent_size = 2
max_line_length = 100
# JSON, JSONC
[*.{json,jsonc}]
indent_style = space
indent_size = 2
# Python
[*.py]
indent_style = space
indent_size = 4
max_line_length = 100
# Rust
[*.rs]
indent_style = space
indent_size = 4
max_line_length = 100
# YAML
[*.{yml,yaml}]
indent_style = space
indent_size = 2
# Markdown
[*.md]
trim_trailing_whitespace = false
max_line_length = off
# Shell scripts
[*.{sh,bash,zsh}]
indent_style = space
indent_size = 2
max_line_length = 100
# Makefile
[Makefile]
indent_style = tab
# Go
[*.go]
indent_style = tab
indent_size = 4
# HTML, Vue, Svelte
[*.{html,vue,svelte}]
indent_style = space
indent_size = 2
# CSS, SCSS, SASS
[*.{css,scss,sass,less}]
indent_style = space
indent_size = 2
# XML, SVG
[*.{xml,svg}]
indent_style = space
indent_size = 2
# TOML
[*.toml]
indent_style = space
indent_size = 2
# INI
[*.ini]
indent_style = space
indent_size = 2VS Code Settings Template
Full Settings (Biome + Ruff + rust-analyzer)
{
"editor.formatOnSave": true,
"editor.formatOnPaste": false,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.eol": "\n",
"editor.defaultFormatter": "biomejs.biome",
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"python.analysis.typeCheckingMode": "basic",
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true
},
"rust-analyzer.check.command": "clippy",
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.trimTrailingWhitespace": false
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"git.autofetch": true,
"git.confirmSync": false,
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/__pycache__": true,
"**/*.pyc": true,
"**/node_modules": true,
"**/.next": true,
"**/dist": true,
"**/build": true,
"**/coverage": true
},
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/.next": true,
"**/coverage": true,
"**/.venv": true,
"**/target": true
}
}Alternative: With Prettier instead of Biome
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}VS Code Extensions Templates
Full Stack (JS/TS + Python + Rust)
{
"recommendations": [
"editorconfig.editorconfig",
"biomejs.biome",
"charliermarsh.ruff",
"ms-python.python",
"ms-python.vscode-pylance",
"rust-lang.rust-analyzer",
"yzhang.markdown-all-in-one",
"redhat.vscode-yaml",
"ms-azuretools.vscode-docker",
"eamodio.gitlens",
"vitest.explorer",
"gruntfuggly.todo-tree",
"usernamehw.errorlens"
],
"unwantedRecommendations": []
}Frontend (Vue/React)
{
"recommendations": [
"editorconfig.editorconfig",
"biomejs.biome",
"vue.volar",
"vitest.explorer",
"usernamehw.errorlens"
]
}Python
{
"recommendations": [
"editorconfig.editorconfig",
"charliermarsh.ruff",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.debugpy",
"usernamehw.errorlens"
]
}Rust
{
"recommendations": [
"editorconfig.editorconfig",
"rust-lang.rust-analyzer",
"vadimcn.vscode-lldb",
"serayuzgur.crates",
"usernamehw.errorlens"
]
}Language-Specific Settings
TypeScript/JavaScript
{
"typescript.updateImportsOnFileMove.enabled": "always",
"typescript.preferences.importModuleSpecifier": "relative",
"javascript.updateImportsOnFileMove.enabled": "always",
"javascript.preferences.importModuleSpecifier": "relative"
}Python
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
"python.analysis.diagnosticMode": "workspace"
}Rust
{
"rust-analyzer.check.command": "clippy",
"rust-analyzer.cargo.allFeatures": true,
"rust-analyzer.inlayHints.chainingHints.enable": true,
"rust-analyzer.inlayHints.parameterHints.enable": true
}Launch Configurations
Node.js/TypeScript
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug TypeScript",
"type": "node",
"request": "launch",
"runtimeExecutable": "tsx",
"runtimeArgs": ["${workspaceFolder}/src/index.ts"],
"skipFiles": ["<node_internals>/**"]
},
{
"name": "Run Tests",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "test"],
"skipFiles": ["<node_internals>/**"]
}
]
}Python
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "Python: pytest",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": ["${file}"],
"console": "integratedTerminal"
}
]
}Rust
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Rust",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}Tasks Configuration
{
"version": "2.0.0",
"tasks": [
{
"label": "format",
"type": "shell",
"command": "npm run format",
"group": "build",
"presentation": {
"reveal": "silent"
}
},
{
"label": "lint",
"type": "shell",
"command": "npm run lint",
"group": "test",
"problemMatcher": []
},
{
"label": "test",
"type": "shell",
"command": "npm test",
"group": {
"kind": "test",
"isDefault": true
}
}
]
}Documentation Template (docs/EDITOR_SETUP.md)
# Editor Setup
This project includes EditorConfig and VS Code settings for consistent development experience.
## Quick Start
### VS Code (Recommended)
1. **Install recommended extensions:**
- Open Command Palette (Cmd/Ctrl+Shift+P)
- Run: "Extensions: Show Recommended Extensions"
- Click "Install All"
2. **Reload window:**
- Command Palette -> "Developer: Reload Window"
3. **Verify setup:**
- Open any source file
- Save file (Cmd/Ctrl+S)
- File should auto-format
### Other Editors
Install EditorConfig plugin for your editor:
- **Vim/Neovim**: `editorconfig/editorconfig-vim`
- **Emacs**: `editorconfig-emacs`
- **Sublime Text**: `EditorConfig`
- **IntelliJ IDEA**: Built-in support
## Troubleshooting
**Format on save not working:**
1. Check default formatter is set for file type
2. Verify extension is installed and enabled
3. Check for conflicting extensions
**Extension conflicts:**
- Disable Prettier if using Biome for formatting
**Python formatter not working:**
1. Check Ruff extension is installed
2. Verify default formatter: `charliermarsh.ruff`
3. Check virtual environment is activated