{"id":39425782,"url":"https://github.com/project-dalec/dalec-vscode-extension","last_synced_at":"2026-01-18T04:00:05.454Z","repository":{"id":329300682,"uuid":"1117712545","full_name":"project-dalec/dalec-vscode-extension","owner":"project-dalec","description":"VS Code extension providing authoring support, CodeLens actions, and BuildKit debugging for Dalec spec files","archived":false,"fork":false,"pushed_at":"2026-01-12T01:13:30.000Z","size":885,"stargazers_count":6,"open_issues_count":7,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T05:51:18.758Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-dalec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-16T17:51:56.000Z","updated_at":"2026-01-12T01:13:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"dd4791fb-a777-4069-8d7e-bdbfa6199be7","html_url":"https://github.com/project-dalec/dalec-vscode-extension","commit_stats":null,"previous_names":["project-dalec/dalec-vscode-extension"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/project-dalec/dalec-vscode-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-dalec%2Fdalec-vscode-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-dalec%2Fdalec-vscode-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-dalec%2Fdalec-vscode-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-dalec%2Fdalec-vscode-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-dalec","download_url":"https://codeload.github.com/project-dalec/dalec-vscode-extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-dalec%2Fdalec-vscode-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T04:00:04.764Z","updated_at":"2026-01-18T04:00:05.443Z","avatar_url":"https://github.com/project-dalec.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dalec VS Code Extension\n\nVS Code extension for authoring and debugging Dalec specs.\n\n\u003e [!WARNING]\n\u003e **Early Development**: This extension is not production ready yet and may change significantly.\n\n## Features\n\n- 🔍 Auto-detects Dalec spec files (YAML with `#syntax=...` header)\n- ✨ Schema-powered completions, hover, and validation via Red Hat YAML extension\n- 🐛 BuildKit debugging support with `dalec-buildx` debug type\n- ▶️ CodeLens actions for quick \"Debug\" and \"Build\" commands\n- 🎯 Queries available targets from the Dalec frontend via `docker buildx build --call targets`\n- 📁 Smart context handling—only prompts when specs reference build contexts\n\n## Quick Start\n\n1. **Install the extension** (via `.vsix` or Extension Manager)\n2. **Open a Dalec spec** (any `.yml`/`.yaml` file starting with `#syntax=...`)\n3. **Run your first build** using CodeLens or Command Palette\n4. **View results** in the integrated terminal\n\n## Commands\n\nAll commands are available via the Command Palette (`Cmd/Ctrl + Shift + P`):\n\n| Command | Description |\n|---------|-------------|\n| `Dalec: Build Current Spec` | Builds the currently opened Dalec spec using `docker buildx build` |\n| `Dalec: Debug Current Spec` | Launches a BuildKit debug session for the current spec |\n| `Dalec: Rerun Last Action` | Re-executes the last build or debug action with the same parameters |\n\n### Screenshots\n\n**Command Palette (`Cmd/Ctrl + Shift + P`)**\n\n![Command Palette](assets/command_shift_p.png)\n\n**Right-click Context Menu**\n\n![Right-click Context Menu](assets/right_click.png)\n\n### Dalec: Build Current Spec\n\nBuilds the currently opened Dalec spec using `docker buildx build`.\n\n**Requirements**\n- File must be a valid Dalec YAML spec (starts with `#syntax=...`)\n- Docker with Buildx must be installed and running\n\n**How to use**\n1. Open a Dalec spec file\n2. Either:\n   - Click the **\"Dalec: Build\"** CodeLens at the top of the file, or\n   - Open Command Palette (`Cmd/Ctrl + Shift + P`) → `Dalec: Build Current Spec`\n3. Select a target when prompted (targets are queried from the Dalec frontend via `docker buildx build --call targets`)\n4. Provide build context path if prompted (only when spec uses `context` sources)\n\n**Output**\n- Build runs in the integrated terminal\n- Errors and logs appear in terminal output\n\n---\n\n### Dalec: Debug Current Spec\n\nLaunches a BuildKit debug session for the current spec.\n\n**Requirements**\n- Same as Build, plus:\n- Set `DALEC_ENABLE_DEBUG=1` environment variable before launching VS Code\n\n**How to use**\n1. Open a Dalec spec file\n2. Either:\n   - Click the **\"Dalec: Debug\"** CodeLens, or\n   - Open Command Palette → `Dalec: Build Current Spec` (with debug environment enabled)\n3. Select a target and provide context if prompted\n4. Debug session starts with breakpoint support\n\n---\n\n### Dalec: Rerun Last Action\n\nRe-executes the previous build or debug action with the same target, spec file, and context settings.\n\n**How to use**\n1. After running a build or debug command at least once\n2. Open Command Palette (`Cmd/Ctrl + Shift + P`) → `Dalec: Rerun Last Action`\n3. The previous action is re-executed with the same parameters\n\n**Note:** This is useful for quick iteration—change your spec and immediately re-run without re-selecting the target.\n\n## Typical Workflow\n\n```\n┌─────────────────────────────────────────────────┐\n│  1. Open/create a Dalec YAML spec               │\n│                  ↓                              │\n│  2. Edit your spec (completions \u0026 validation)   │\n│                  ↓                              │\n│  3. Run \"Dalec: Build Spec\"                     │\n│                  ↓                              │\n│  4. Fix any build errors                        │\n│                  ↓                              │\n│  5. Re-run build → iterate until success        │\n└─────────────────────────────────────────────────┘\n```\n\n**Example scenarios:**\n\n| Goal | Action |\n|------|--------|\n| Quick iteration on a spec | Use CodeLens \"Build\" button after each change |\n| Debug a failing build step | Use \"Debug Spec\" to step through BuildKit execution |\n| Test multiple targets | Run \"Build Spec\" and select different targets from the picker |\n\n## Supported Files\n\nThe extension activates for YAML files that match:\n\n```yaml\n#syntax=ghcr.io/project-dalec/dalec/frontend:latest\n# or\n# syntax=ghcr.io/azure/dalec/frontend:latest\n```\n\nFiles without this header are not recognized as Dalec specs.\n\n## Installation\n\n**For development:**\n```bash\ncd dalec-vscode-extension\nnpm install\nnpm run compile\ncode --extensionDevelopmentPath=$(pwd)\n```\n\n**For testing:**\n1. Build with `npx vsce package`\n2. Install `.vsix` via VS Code Extension Manager\n\n## Debug Configuration\n\nAdd to `.vscode/launch.json`:\n\n```json\n{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Dalec: Buildx Debug\",\n      \"type\": \"dalec-buildx\",\n      \"request\": \"launch\",\n      \"target\": \"frontend\",\n      \"specFile\": \"${file}\",\n      \"context\": \"${workspaceFolder}\"\n    }\n  ]\n}\n```\n\n## Requirements\n\n- Docker with Buildx installed\n- [Red Hat YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) (auto-prompted)\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| No CodeLens appearing | Ensure file starts with `#syntax=...` on the first line |\n| Target picker is empty | Check Docker is running; extension queries targets via `docker buildx build --call targets` |\n| Debug commands missing | Set `DALEC_ENABLE_DEBUG=1` and restart VS Code |\n| Schema validation not working | Install the Red Hat YAML extension |\n\n👉 For more about Dalec, see the [Dalec documentation](https://project-dalec.github.io/dalec/)!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-dalec%2Fdalec-vscode-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject-dalec%2Fdalec-vscode-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-dalec%2Fdalec-vscode-extension/lists"}