Skip to content

JuliaEditorSupport/atom-language-julia

Repository files navigation

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

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.

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'