Awesome
Julia Grammar
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
.
Contributing
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
cd
into it - Run
npm ci
- Open
grammars/julia.template.json
in 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
.
Testing the updated grammar in VS Code
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.
Contributor list
- Everyone who has helped with the tmBundle
- See contributors
Atom package
<details> <summary>Atom package (sunset end of 2022)</summary>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.
Features:
- Syntax highlighting
- Snippets for common Julia keywords and constructs (see
snippets/language-julia.cson
) - Toggle folding of docstrings
Installation
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
Recommended Extras
- 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.
Toggling docstrings
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'
</details>