feat: Improve syntax highlighting support for template languages, such as Tera #13549
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Template languages like Tera can be used for any language at all. They can generate JavaScript, Rust, HTML or Markdown.
That's great! But it makes syntax highlighting for these languages harder than any other. You usually have to make a dedicated grammar for each language combination, like
html-tera
,css-tera
,js-tera
etc.With this PR, it's all in a much better position now! The language injected will be based off the file name. That is, if you have a file like
index.html.tera
, it will inject thehtml
language. If you haveindex.css.tera
, it injectscss
. It simply uses the 2nd extension.What this means is that, we can basically support all template languages with any possible language that they template for.
This PR depends on this PR to tree-house
Before
After