microsoft / microsoft/monaco-editor

[Bug] HTML language does not recognize inline <script type="module"> as JavaScript

Open
#2,962 12 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request help wanted
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?
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.