microsoft / microsoft/monaco-editor
[Bug] HTML language does not recognize inline <script type="module"> as JavaScript
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 46.8k
- Forks
- 4.1k
- Avg merge
- 17h 58m
- Merged PRs (30d)
- 1
Description
Reproducible in vscode.dev or in VS Code Desktop?
- Not reproducible in vscode.dev or VS Code Desktop
Reproducible in the monaco editor playground?
- Not reproducible in the monaco editor playground
Monaco Editor Playground Code
monaco.editor.create(document.getElementById('container'), {
value: `<script type="module">\n\tconsole.log("hello");\n</script>`,
language: 'html'
});
Actual Behavior
The contents of the script tag are marked as language vs.editor.nullLanguage, precluding highlighting and, upon editing or merely moving the cursor within the tag, causing various callbacks for editor features to throw Unexpected languageId when calling LanguageConfigurationRegistry.getLanguageConfiguration.
Expected Behavior
Inline code is recognized as JavaScript, is syntax highlighted, and editing/navigation does not raise exceptions.
Additional Context
This began causing exceptions in version 0.32.0, with 0.31.1 and prior nothing is raised but the inline code is still similarly marked as vs.editor.nullMode.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Monaco editor playground code using monaco.editor.create and the inline module script, then trace how the HTML language marks the script contents and how LanguageConfigurationRegistry handles the resulting language ID. Reproduce the issue and verify that module script contents receive JavaScript highlighting without editor callbacks throwing Unexpected languageId.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- html, javascript, typescript
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100