catala/syntax_highlighting/README.md
Louis Gesbert cf2e80ba51 Refactor Python dependency handling
* Use the newer "pyproject.toml" for syntax highlighters
* Use venv for everything (previously, the pygment lexers were installed
  globally, but more recent Python releases frown upon that. This will probably
  be more stable in the long run...)
* Use one venv at the root of the project (`_python_venv/`) for both
  pygments and the runtime
* Initialise this venv automatically from the Makefile (it should no longer be
  necessary to run scattered `set_up.sh` scripts with mysterious interactions)

On the downsides, though:
* Only tested with Python 3.11 at the moment
* Need to remember to activate the venv (`. _python_venv/bin/activate`) from the
  root for e.g. HTML literate output to work. A more manageable solution could
  be for Catala to provide the lexers on-the-fly when calling `pygmentize`.
2023-03-02 16:24:53 +01:00

1.8 KiB

Syntax highlighting

The Catala language also comes with syntax highlighting to ease program development. The syntax highlighting is done, among other techniques, with the Iro compiler that allows writing the syntax only once, and then export it to formats understood by various IDE.

DISCLAIMER:

The maintenance of the various syntax highlighting plugins is BEST-EFFORT. Indeed many of the plugins were developed by the community and their creators did not commit to long-term maintenance.

Atom

To get Catala syntax highlighting in Atom, simply enter from the root of the repository, depending on the language you want to use :

make atom_fr

or

make atom_en

You can now reload Atom and check that you have syntax highlighting on any .catala file.

VSCode

To get Catala syntax highlighting in VSCode, simply enter from the root of the repository, depending on the language you want to use :

make vscode_fr

or

make vscode_en

You can now reload VSCode and check that you have syntax highlighting on any .catala file.

Pygments

Pygments is a Python-based versatile lexer for various programming languages. To use a version of Pygments augmented with the Catala plugin, simply enter from the root of the repository

make pygments

This will setup a Python virtual environment ("venv"), and install the syntax highlighting plugins that allow Pygments to handle Catala files. Those are defined in syntax_highlighting/XX/pygments/.

Pygments is used for instance by the minted LaTeX package. To make sure it is available, you need to "activate" the python venv each time using:

. _python_venv/bin/activate

GNU gedit

Copy the file catala.lang to the directory below (create if it does not exist) and then restart GEdit.

~/.local/share/gtksourceview-4/language-specs