Feedback and high-quality pull requests are highly welcome!
This EclipseⓇ plug-in adds syntax highlighting support for the following languages/file formats utilizing TM4E:
*.cr
) - https://crystal-lang.org/*.eea
) - https://wiki.eclipse.org/JDT_Core/Null_Analysis/External_Annotations#File_format*.er
) - https://github.com/BurntSushi/erd*.erl
) - https://www.erlang.org/*.fish
) - https://fishshell.com/docs/current/language.html*.gleam
) - https://gleam.run/*.dot
) - https://graphviz.org/doc/info/lang.html*.hcl
) - https://github.com/hashicorp/hcl (e.g. used by HasiCorp Packer)*.sentinel
) - https://www.hashicorp.com/sentinel*.tf
) - https://www.terraform.io/*.tpl
) - https://helm.sh/*.json5
) - https://json5.org/*.jsonnet
) - https://jsonnet.org/*.mako
) - https://www.makotemplates.org/*.md
) - https://daringfireball.net/projects/markdown/*.mmd, *.mermaid
) - https://github.com/mermaid-js/mermaid/nginx.conf
) - https://www.nginx.com/*.njk
) - https://mozilla.github.io/nunjucks/*.nu
) - https://github.com/nushell/nushell*.ml
) - https://ocaml.org/*.pas
) - https://en.wikipedia.org/wiki/Pascal_(programming_language)*.pu
) - https://plantuml.com/*.pony
) - https://www.ponylang.io/*.re
) - https://reasonml.github.io/*.roc
) - https://www.roc-lang.org/For a lot more formats install the TM4E Language Pack from the TM4E update site https://download.eclipse.org/tm4e/releases/latest/
For the following languages/file formats you can also install specialised Eclipse plug-ins with additional features:
Jenkinsfile
): Jenkins Editor*.bat
, *.cmd
): Batch EditorTo install the plugin into an existing Eclipse installation do:
Extra Syntax Highlighting
feature to install.Contact all update sites during install to find required software
is enabled.Next
twice.Finish
.Language/Format | File Associations | Source |
---|---|---|
ANTLR | file-extensions="g, g4" | master@mike-lischke/vscode-antlr4 |
Apache HTTP Config | file-extensions="conf, htaccess, htgroups, htpasswd" | master@mrmlnc/vscode-apache |
Astro | file-extensions="astro" | main@withastro/language-tools |
Ballerina | file-extensions="bal" | master@ballerina-platform/ballerina-grammar |
bazelrc | file-extensions="bazelrc" file-names=".bazelrc, bazel.rc" |
master@bazelbuild/vscode-bazel |
Branflakes | file-extensions="bf, bfsck, brainfuck" | main@chrisvrose/bf-server |
Carbon | file-extensions="carbon" | trunk@carbon-language/carbon-lang |
COBOL | file-extensions="cbl, cob, cobol, copy, cpy" file-patterns="**/broadcommfd.cobol-language-support/*/copybooks/**" |
development@eclipse-che4z/che-che4z-lsp-for-cobol |
Crystal | file-extensions="cr" | master@crystal-lang-tools/vscode-crystal-lang [upstream] |
Crystal Slang | file-extensions="slang" | master@crystal-lang-tools/vscode-crystal-lang |
EditorConfig | file-extensions="editorconfig" | main@editorconfig/editorconfig-vscode |
Elm | file-extensions="elm" | main@elm-tooling/elm-language-client-vscode |
Embedded Crystal | file-extensions="ecr" | master@crystal-lang-tools/vscode-crystal-lang |
Entity Relationship | file-extensions="er" | master@mikkel-ol/vsc-er-syntax-highlighting |
Erlang | file-extensions="config, erl, escript, hrl, src" | main@erlang-ls/vscode |
Fish | file-extensions="fish" | master@bmalehorn/vscode-fish |
Fortran | file-extensions="F03, F08, F18, F90, F95, FPP, FYPP, PF, f03, f08, f18, f90, f95, fpp, fypp, pf" | main@fortran-lang/vscode-fortran-support |
Fortran77 | file-extensions="F, F77, FOR, f, f77, for" | main@fortran-lang/vscode-fortran-support |
Gleam | file-extensions="gleam" | main@gleam-lang/vscode-gleam |
GraphQL | file-extensions="gql, graphql, graphqls" | main@graphql/graphiql |
GraphViz DOT File | file-extensions="dot" | master@textmate/graphviz.tmbundle |
HashiCorp Sentinel | file-extensions="sentinel" | main@hashicorp/syntax |
HashiCorp Terraform | file-extensions="tf, tfvars" | main@hashicorp/syntax |
Haxe | file-extensions="hx" | master@vshaxe/haxe-TmLanguage |
HCL Config File | file-extensions="hcl" | main@hashicorp/syntax |
helm-template | file-patterns="**/templates/**/*.tpl, **/templates/**/*.yaml, **/templates/**/*.yml, **/templates/*.tpl, **/templates/*.yaml, **/templates/*.yml" | master@vscode-kubernetes-tools/vscode-kubernetes-tools |
Janet | file-extensions="janet" | master@janet-lang/vscode-janet |
Jinja C++ | file-extensions="c.j2, c.jinja, c.jinja2, cpp.j2, cpp.jinja, cpp.jinja2, h.j2, h.jinja, h.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Cisco Config | file-extensions="cisco.j2, cisco.jinja, cisco.jinja2, ios.j2, ios.jinja, ios.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja CSS | file-extensions="css.j2, css.jinja, css.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Cython | file-extensions="pxd.j2, pxd.jinja, pxd.jinja2, pxi.j2, pxi.jinja, pxi.jinja2, pyx.j2, pyx.jinja, pyx.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Dockerfile | file-extensions="dockerfile.j2, dockerfile.jinja, dockerfile.jinja2" file-names="Dockerfile.j2, Dockerfile.jinja, Dockerfile.jinja2" |
main@samuelcolvin/jinjahtml-vscode |
Jinja Groovy | file-extensions="groovy.j2, groovy.jinja, groovy.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja HTML | file-extensions="htm.j2, htm.jinja, htm.jinja2" file-patterns="*html.j2, *html.jinja, *html.jinja2" |
main@samuelcolvin/jinjahtml-vscode |
Jinja Java | file-extensions="java.j2, java.jinja, java.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja JavaScript | file-extensions="js.j2, js.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja JSON | file-extensions="code-workspace.j2, code-workspace.jinja, code-workspace.jinja2, json.j2, json.jinja, json.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja LaTeX | file-extensions="latex.j2, latex.jinja2, tex.j2, tex.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Lua | file-extensions="lua.j2, lua.jinja, lua.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Markdown | file-extensions="md.j2, md.jinja, md.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Nginx | file-extensions="conf.j2, conf.jinja, conf.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja PHP | file-extensions="php.j2, php.jinja, php.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Properties/ini/Conf | file-extensions="cfg.j2, conf.j2, desktop.j2, directory.j2, ini.j2, properties.j2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Python | file-extensions="py.j2, py.jinja, py.jinja2, pyi.j2, pyi.jinja, pyi.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Ruby | file-extensions="rb.j2, rb.jinja2, rbw.j2, rbw.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Rust | file-extensions="rs.j2, rs.jinja, rs.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Shell Script | file-extensions="bash.j2, bash_aliases.j2, bash_login.j2, bash_logout.j2, bash_profile.j2, bashrc.j2, ebuild.j2, env.j2, env.jinja, env.jinja2, install.j2, ksh.j2, profile.j2, sh.j2, zlogin.j2, zlogout.j2, zprofile.j2, zsh-theme.j2, zsh.j2, zshenv.j2, zshrc.j2" | main@samuelcolvin/jinjahtml-vscode |
Jinja SQL | file-extensions="sql.j2, sql.jinja, sql.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Systemd Unit File | file-extensions="automount.j2, automount.jinja, automount.jinja2, device.j2, device.jinja, device.jinja2, link.j2, link.jinja, link.jinja2, mount.j2, mount.jinja, mount.jinja2, netdev.j2, netdev.jinja, netdev.jinja2, network.j2, network.jinja, network.jinja2, path.j2, path.jinja, path.jinja2, scope.j2, scope.jinja, scope.jinja2, service.j2, service.jinja, service.jinja2, slice.j2, slice.jinja, slice.jinja2, snapshot.j2, snapshot.jinja, snapshot.jinja2, socket.j2, socket.jinja, socket.jinja2, swap.j2, swap.jinja, swap.jinja2, target.j2, target.jinja, target.jinja2, timer.j2, timer.jinja, timer.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja Terraform | file-extensions="hcl.j2, hcl.jinja, hcl.jinja2, tf.j2, tf.jinja, tf.jinja2, tfvars.j2, tfvars.jinja, tfvars.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja TOML | file-extensions="toml.j2, toml.jinja, toml.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja TypeScript | file-extensions="ts.j2, ts.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja XML | file-extensions="xml.j2, xml.jinja, xml.jinja2" | main@samuelcolvin/jinjahtml-vscode |
Jinja YAML | file-extensions="sls, yaml.j2, yaml.jinja, yaml.jinja2, yml.j2, yml.jinja, yml.jinja2" | main@samuelcolvin/jinjahtml-vscode |
JSON5 | file-extensions="json5" | master@katjanakosic/vscode-json5 |
Jsonnet | file-extensions="jsonnet, libsonnet" | main@grafana/vscode-jsonnet |
Kotlin | file-extensions="kt, kts" | main@fwcd/vscode-kotlin |
LDIF File | file-extensions="ldif" | master@FlashSystems/LDIF-Syntax |
Mako Template | file-extensions="mako" | master@marconi/mako-tmbundle |
Markdown | file-extensions="livemd, markdown, md, mdown, mdwn, mkd, mkdn, mkdown, ronn, scd, workbook" | main@wooorm/markdown-tm-language |
mermaid | file-extensions="mermaid, mmd" | master@bpruitt-goddard/vscode-mermaid-syntax-highlight |
NGINX Conf | file-extensions="conf, conf.default, conf.template, fastcgi_params, mime.types, nginx, nginx.conf, scgi_params, uwsgi_params" | main@ahmadalli/vscode-nginx-conf |
Nunjucks HTML | file-extensions="njk, njk.html" | main@edheltzel/better-nunjucks-for-visual-studio-code |
nushell | file-extensions="nu" | main@nushell/vscode-nushell-lang |
OCaml | file-extensions="eliom, ml, ocamlinit" | master@ocamllabs/vscode-ocaml-platform |
OCaml Interface | file-extensions="eliomi, mli" | master@ocamllabs/vscode-ocaml-platform |
OCamlFormat | file-extensions="ocamlformat" | master@ocamllabs/vscode-ocaml-platform |
odin | file-extensions="odin" | master@DanielGavin/ols |
opam | file-extensions="opam, opam.locked, opam.template" file-names="opam" |
master@ocamllabs/vscode-ocaml-platform |
OpenGL Shading Language | file-extensions="comp, csh, frag, fs, fsh, fshader, geom, glsl, gs, gsh, gshader, mesh, rahit, rcall, rchit, rgen, rint, rmiss, task, tesc, tese, vert, vs, vsh, vshader" | master@GeForceLegend/vscode-glsl |
Pascal | file-extensions="dfm, dpk, dpr, fmx, lfm, lpr, p, pas" | master@textmate/pascal.tmbundle |
PlantUML | file-extensions="iuml, plantuml, pu, puml, wsd" | master@qjebbs/vscode-plantuml |
Pony | file-extensions="pony" | main@chalcolith/eohippus |
Prisma | file-extensions="prisma" | main@prisma/language-tools |
Reason | file-extensions="re, rei" | master@ocamllabs/vscode-ocaml-platform |
Ring | file-extensions="rform, rh, ring" | master@ring-lang/ring |
Roc | file-extensions="roc" | main@ivan-demchenko/roc-vscode-unofficial |
Starlark | file-extensions="BUILD, WORKSPACE, bazel, bzl, bzlmod, sky, star" file-names="BUILD, WORKSPACE" |
master@bazelbuild/vscode-bazel |
Svelte | file-extensions="svelte" | master@sveltejs/language-tools |
TOML Config File | file-extensions="toml" file-names="Cargo.lock, Pipfile, pdm.lock" |
master@juggernautjp/less-toml [upstream] |
Wing | file-extensions="w, wsim" | main@winglang/wing |
Zig | file-extensions="zig, zon" | master@ziglang/vscode-zig |
To ensure reproducible builds this Maven project inherits from the vegardit-maven-parent project which declares fixed versions and sensible default settings for all official Maven plug-ins.
The project also uses the maven-toolchains-plugin which decouples the JDK that is used to execute Maven and it's plug-ins from the target JDK that is used for compilation and/or unit testing. This ensures full binary compatibility of the compiled artifacts with the runtime library of the required target JDK.
To build the project follow these steps:
Download and install a Java 17 SDK, e.g. from:
Download and install the latest Maven distribution.
In your user home directory create the file .m2/toolchains.xml
with the following content:
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>17</version>
<vendor>default</vendor>
</provides>
<configuration>
<jdkHome>[PATH_TO_YOUR_JDK_17]</jdkHome>
</configuration>
</toolchain>
</toolchains>
Set the [PATH_TO_YOUR_JDK_17]
parameter accordingly.
Checkout the code using one of the following methods:
git clone https://github.com/sebthom/extra-syntax-highlighting-eclipse-plugin
Run mvn clean verify
in the project root directory. This will execute compilation, unit-testing, integration-testing and
packaging of all artifacts.
If not otherwise specified (see below), files in this repository fall under the Eclipse Public License 2.0.
Individual files contain the following tag instead of the full license text:
SPDX-License-Identifier: EPL-2.0
This enables machine processing of license information based on the SPDX License Identifiers that are available here: https://spdx.org/licenses/.
An exception is made for:
LICENSE.txt
file, or.LICENSE.txt
suffix added to the base-name of the original file.
For example foobar.js
is may be accompanied by a foobar.LICENSE.txt
license file.