Home

Awesome

Julia Grammar

Build Status

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:

  1. 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.
  2. Clone this repo and cd into it
  3. Run npm ci
  4. Open grammars/julia.template.json in your favourite editor and fix a bug or implement additional highlighting rules
  5. Add corresponding tests at the bottom of test/test.js
  6. Run the updated tests with npm run test
  7. 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

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:

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

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>