microsoft / monaco-editor

A browser based code editor
https://microsoft.github.io/monaco-editor/
MIT License
39.84k stars 3.55k forks source link

[Bug] Freemarker #3426

Open septagram opened 1 year ago

septagram commented 1 year ago

Reproducible in vscode.dev or in VS Code Desktop?

Reproducible in the monaco editor playground?

Monaco Editor Playground Code

monaco.editor.create(document.getElementById('container'), {
    value: "function hello() {\n\talert('Hello world!');\n}",
    language: 'freemarker2'
});

Reproduction Steps

Make sure "freemarker2" language is selected. Enter the Freemarker sample from the official site:

<html>
<head>
  <title>Welcome!</title>
</head>
<body>
  <h1>
    Welcome ${user}<#if user == "Big Joe">, our beloved leader</#if>!
  </h1>
  <p>Our latest product:
  <a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>

Actual (Problematic) Behavior

This is how the code is highlighted in Monaco:

image

The HTML tags receive no highlighting whatsoever, and FTL-specific features are only highlighted partially.

Expected Behavior

This is how the same code is highlighted by Visual Studio Code with the Freemarker plugin:

image

Code highlighting is a lot more detailed and verbose. HTML tags are treated appropriately.

Additional Context

I don't see a way to select Freemarker language in Visual Studio Code, despite it using Monaco under the hood.

septagram commented 1 year ago

I've also tried to specify language explicitly as "freemarker2.tag-angle.interpolation-dollar". Nothing changed.