* Setup CodeActions and add quickfix for missing inputs
* PR feedback
* Update languageservice/src/code-actions/quickfix/add-missing-inputs.ts
Co-authored-by: Salman Chishti <salmanmkc@GitHub.com>
* Fix indentSize detection for code actions after rebase
- Add indentSize to MissingInputsDiagnosticData interface
- Pass indentSize parameter from validate.ts to validateActionReference
- Detect indentSize from workflow structure (jobs key to first child)
- Fall back to detecting from with: block children when available
* update typescript
* formatting
* linting
* Gate missing inputs quickfix behind feature flag
* Address PR review: rename files, move position calculation to quickfix
- Rename index.ts files to follow repo patterns:
- code-actions/index.ts → code-actions/code-actions.ts
- code-actions/quickfix/index.ts → quickfix/quickfix-providers.ts
- Move position calculation from validation to quickfix:
- MissingInputsDiagnosticData now passes raw token ranges
- Quickfix computes insertion position and indentation at code action time
- detectIndentSize moved from validate.ts to validate-action-reference.ts
* wip
* Remove pointless comment
---------
Co-authored-by: Salman Chishti <salmanmkc@GitHub.com>
In YAML, block scalars (`|` and `>`) silently add a trailing newline by default
("clip" chomping). This can cause subtle bugs when the newline is unintentional.
This PR adds a warning when clip chomping is used in fields where trailing
newlines commonly cause issues:
- Environment variables (workflow, job, step, container, service levels)
- Action inputs (`with:`)
- Reusable workflow inputs and secrets
- Job outputs
- Matrix values (including `include` and `exclude`)
- Concurrency groups
The warning suggests using `|-` (strip) or `|+` (keep) to be explicit.
Intentionally does NOT warn for:
- `run:` scripts (trailing newlines are normal)
- Fields trimmed server-side (`if:`, `name:`, `runs-on:`, etc.)
The feature is gated behind the `blockScalarChompingWarning` feature flag.
* Add experimentalFeatures to initialization options
Introduce a feature flagging system for opt-in experimental features.
Clients can enable features via initializationOptions.experimentalFeatures
with granular per-feature control or an 'all' flag to enable everything.
First experimental feature: missingInputsQuickfix (for upcoming code actions)
- Remove DiagnosticSeverity.Information for valid cron expressions
- Add new inlay-hints.ts module with getInlayHints() function
- Register inlayHintProvider capability in language server
- Display human-readable cron descriptions as inline hints
Related #269
Fixes https://github.com/github/vscode-github-actions/issues/305
Step outputs are dynamic - actions can generate outputs based on
their inputs, so validating output property names is not feasible.
This marks step output dictionaries as incomplete so that accessing
any output property won't produce a warning. Known outputs from
action.yml will still be suggested for autocomplete.