Add JSON with interpolation language support

Introduce a new 'json-interpolation' language that extends JSON with
${...} variable interpolation syntax. Features include:

- Monarch tokenizer with nextEmbedded for JavaScript inside ${...}
- Variable context API for custom completion and hover providers
- Diagnostics filtering to ignore errors inside interpolations
- Full JSON language service integration (formatting, symbols, etc.)
- Support for JSONC-style comments and trailing commas

Usage:
```typescript
monaco.languages.jsonInterpolation.jsonInterpolationDefaults.setVariableContext({
  getVariables: () => [
    { name: 'env', type: 'string', value: 'production' }
  ]
});
```
This commit is contained in:
Claude 2025-12-09 19:46:12 +00:00
parent c619ef9a3d
commit 4540e05e5a
No known key found for this signature in database
6 changed files with 991 additions and 1 deletions

View file

@ -37,6 +37,10 @@ export default defineConfig(async (args) => {
__dirname,
'../../src/language/json/monaco.contribution.ts'
),
'language/json-interpolation/monaco.contribution': resolve(
__dirname,
'../../src/language/json-interpolation/monaco.contribution.ts'
),
'language/typescript/monaco.contribution': resolve(
__dirname,
'../../src/language/typescript/monaco.contribution.ts'