Julia grammar definition for Atom, VS Code, and GitHub.
The source of truth in this repo is grammars/julia.template.json; julia.json, julia.cson, and julia_vscode.json are automatically generated in a pre-commit hook or with npm run generate.
We love contributors. Here are the steps we have taken to develop on this package:
- Install prerequisites: Node.js and
npm(comes bundled with Node). We recommend using a Node version manager. LTS is recommended, but any node version newer than 14 should do. - Clone this repo and
cdinto it - Run
npm ci - Open
grammars/julia.template.jsonin your favourite editor and fix a bug or implement additional highlighting rules - Add corresponding tests at the bottom of
test/test.js - Run the updated tests with
npm run test - Once tests pass and you're happy with your changes, commit them and open a PR against this repo. This should automatically run a pre-commit hook that generates derivative grammars for VS Code and Atom from
julia.template.json.
Follow the julia-vscode developer instructions to get the extension setup. Afterwards, simply copy the updated julia_vscode.json from this repo into julia-vscode/syntaxes and you should see your changes in the debug editor after reloading it.
- Everyone who has helped with the tmBundle
- See contributors
Atom package (sunset end of 2022)
This is also an Atom package to provide Julia syntax highlighting, snippets, and docstring folding. Originally based off of JuliaLang/julia.tmBundle, merged with new ideas from language-julia.
- Syntax highlighting
- Snippets for common Julia keywords and constructs (see
snippets/language-julia.cson) - Toggle folding of docstrings
Installation happens normally either through apm install language-julia or through the install section of the settings tab within Atom.
Note: if you already have a different version of language-julia plugin installed (e.g. this one), you would need to remove it first using apm uninstall language-julia
- The LaTeX Completions package provides support for unicode characters similarly to the Julia REPL.
- The Indent Detective package will help you keep to the style guidelines when working on Base or packages.
- Install language-markdown for syntax highlighting in docstrings.
- Install atom-language-r for syntax highlighting of R string macros.
Two Atom commands are provided to toggle all docstrings or the docstring under the cursor: language-julia:toggle-docstrings and language-julia:toggle-all-docstrings. These are not assigned keys. Here is one example of adding these to keymaps using org-mode style keys:
'atom-text-editor[data-grammar="source julia"]:not([mini])':
'tab': 'language-julia:toggle-docstrings'
'shift-tab': 'language-julia:toggle-all-docstrings'