Skip to content
Open
Show file tree
Hide file tree
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
97 changes: 81 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,87 @@
# Folder view configuration files
.DS_Store
Desktop.ini
# Build outputs
out/
dist/
*.vsix

# Thumbnail cache files
._*
Thumbs.db
# Dependencies
node_modules/

# VS Code test runner
.vscode-test/
.vscode-test.mjs

# Editor/IDE files
.vscode/settings.json
.idea/
*.swp
*.swo
*~

# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage directory used by tools like istanbul
coverage/
*.lcov

# nyc test coverage
.nyc_output

# Dependency directories
jspm_packages/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Files that might appear on external disks
# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# Test files (keep only essential ones)
test_*.yml
!test_enhanced_syntax.yml
!test_fixes.yml

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Compiled Python files
*.pyc

# Compiled C++ files
*.out
# Temporary files
*.tmp
*.temp

# Application specific files
venv
node_modules
.sass-cache
# Generated files
*.map
*.d.ts
5 changes: 5 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": ["dbaeumer.vscode-eslint", "connor4312.esbuild-problem-matchers", "ms-vscode.extension-test-runner"]
}
21 changes: 21 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// A launch configuration that compiles the extension and then opens it inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "${defaultBuildTask}"
}
]
}
13 changes: 13 additions & 0 deletions .vscode/settings copy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"out": false, // set this to true to hide the "out" folder with the compiled JS files
"dist": false // set this to true to hide the "dist" folder with the compiled JS files
},
"search.exclude": {
"out": true, // set this to false to include "out" folder in search results
"dist": true // set this to false to include "dist" folder in search results
},
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
"typescript.tsc.autoDetect": "off"
}
64 changes: 64 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
"version": "2.0.0",
"tasks": [
{
"label": "watch",
"dependsOn": [
"npm: watch:tsc",
"npm: watch:esbuild"
],
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "npm",
"script": "watch:esbuild",
"group": "build",
"problemMatcher": "$esbuild-watch",
"isBackground": true,
"label": "npm: watch:esbuild",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"type": "npm",
"script": "watch:tsc",
"group": "build",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"label": "npm: watch:tsc",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"type": "npm",
"script": "watch-tests",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never",
"group": "watchers"
},
"group": "build"
},
{
"label": "tasks: watch-tests",
"dependsOn": [
"npm: watch",
"npm: watch-tests"
],
"problemMatcher": []
}
]
}
14 changes: 14 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
.vscode/**
.vscode-test/**
out/**
node_modules/**
src/**
.gitignore
.yarnrc
esbuild.js
vsc-extension-quickstart.md
**/tsconfig.json
**/eslint.config.mjs
**/*.map
**/*.ts
**/.vscode-test.*
71 changes: 71 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Change Log

All notable changes to the "helmwave" extension will be documented in this file.

Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.

## [0.1.0] - 2025-07-07

### Added - New Features

- **Enhanced Auto-Completion & IntelliSense**: Comprehensive auto-completion for Helmwave configuration structure
- Intelligent context-aware completions for all major sections (repositories, releases, registries, monitors, lifecycle)
- Snippet-based completions with placeholders for efficient configuration authoring
- Top-level section completions with proper indentation and structure
- Section-specific field completions with detailed descriptions

- **Quick Fixes & Code Actions**: Automated quick fixes for common configuration errors
- Add missing required fields (project, name, chart, url, etc.)
- Automatic insertion of proper field structure with appropriate defaults
- Context-aware error resolution suggestions
- Integration with VS Code's Quick Fix system (Ctrl+. or Cmd+.)

- **Document Outline & Navigation**: Enhanced navigation and document structure
- Structured outline view showing all Helmwave sections and their items
- Symbol-based navigation with Ctrl+Shift+O (Cmd+Shift+O on Mac)
- Hierarchical view of repositories, releases, registries, monitors, and lifecycle hooks
- Quick navigation to specific configuration items
- Breadcrumb navigation support

### Enhanced Features

- **Improved Completion Provider**: Smarter context detection and completion suggestions
- **Enhanced Error Messages**: More descriptive validation messages with better positioning
- **Better Integration**: Improved VS Code integration with native Quick Fixes and Outline view

## [0.0.1] - 2025-07-07 - Initial Release

### Added
- Initial release of Helmwave VS Code Extension
- **Syntax highlighting** for Helmwave YAML configuration files
- **Real-time syntax checking and validation** with comprehensive error detection
- Language configuration with bracket matching, commenting, and code folding
- File associations for `helmwave.yml`, `*_helmwave.yml`, and related patterns
- TextMate grammar with specialized highlighting for Helmwave keywords:
- `project`: Project name configuration
- `version`: Helmwave version constraints
- `repositories`: Helm chart repositories
- `registries`: OCI registries
- `releases`: Helm releases configuration
- `monitors`: Monitoring configurations
- `lifecycle`: Hook configurations
- `tags`: Tag filtering
- `values`: Helm values
- **Validation features**:
- YAML syntax validation
- Schema validation for Helmwave structure
- Required field validation (project, name, chart, etc.)
- Format validation (version format, URLs)
- Unknown field detection with warnings
- Type checking (arrays vs objects)
- **Command palette integration**:
- `Helmwave: Validate Configuration` command for manual validation
- **Automatic validation**:
- On file open, save, and during editing (with debouncing)
- Real-time error display in Problems panel and editor
- Support for both `.yml` and `.yaml` extensions
- Complete YAML syntax support with enhanced Helmwave-specific features

### Dependencies
- Added `js-yaml` for YAML parsing and validation
- Added `@types/js-yaml` for TypeScript support
Loading