Skip to main content

YMMSL Language Support

Download the latest VS Code extension (.vsix)

VS Code installation tutorial

YMMSL Language Support provides a Language Server Protocol (LSP) server built on top of the validation and consistency checks provided by ymmsl-python.

The server enables IDEs and editors such as VS Code, Emacs, and Neovim to provide inline diagnostics and highlight validation errors directly in YMMSL files.

Installation

Linux executable

On Linux, you can download the latest prebuilt executable:

https://github.com/multiscale/ymmsl-lsp/releases?q=server-

Place the executable under bin/ in the repository root.

Requirements

  • glibc >= 2.34

If you use the VS Code extension, the executable is already bundled and ready to use.

Installing with pip, pipx, or uv

You can directly install from this repository, or from PyPi.

As this is a tool it is recommended to use either ´uv tool´ or ´pipx´, after which you will find the executable ymmsl-language-server in /path/to/venv/bin and or have it exposed in your shell.

For example, you could use ´´´ uv tool install ymmsl-lsp ´´´

Usage

The LSP server must be connected to an editor or IDE to be useful.

You can either:

  • Install the VS Code extension, or
  • Generate configuration files for Emacs and Neovim

Generate editor configurations with:

python scripts/generate_editor_configs.py

Generated files are written to:

editors/generated/

Visual Studio Code

Download the extension from the latest GitHub release.

The VS Code extension and the Python language server are released separately. Extension releases are tagged extension-vX.Y.Z; server releases are tagged server-vX.Y.Z. Every server release also publishes a new extension release containing that server version.

Installation tutorial:

https://www.youtube.com/watch?v=nlHnlmtvjF4

The extension bundles the LSP server and should work out of the box.

If not, you need to install it yourself and set the environment variable ´YMMSL_LSP_PATH´

export YMMSL_LSP_PATH=/path/to/venv/bin/ymmsl-language-server

Emacs

The generated file ymmsl-mode_emacs.el provides YMMSL language support for Emacs.

Quick test

Load the generated mode directly:

emacs -l editors/generated/ymmsl-mode_emacs.el

Alternatively, start Emacs and load the file manually:

M-x load-file

Select:

editors/generated/ymmsl-mode_emacs.el

Permanent installation

Copy or symlink the file into your Emacs configuration and load it from init.el:

(add-to-list 'load-path "/path/to/editors/generated")
(load "ymmsl-mode_emacs")

Emacs package installation tutorial:

https://www.youtube.com/watch?v=at_fACZ_o9Q

Neovim

The generated file ymmsl-nvim.lua provides YMMSL language support for Neovim.

Quick test

nvim -c "source editors/generated/ymmsl-nvim.lua"

Permanent installation

Copy the plugin into Neovim's plugin directory:

mkdir -p ~/.config/nvim/plugin
cp editors/generated/ymmsl-nvim.lua ~/.config/nvim/plugin/

Or create a symbolic link:

mkdir -p ~/.config/nvim/plugin
ln -s $(pwd)/editors/generated/ymmsl-nvim.lua \
      ~/.config/nvim/plugin/ymmsl-nvim.lua

Neovim will automatically load the plugin on startup.

What is YMMSL_PATH?

The Python validator resolves imported YMMSL modules using the YMMSL_PATH environment variable.

When a YMMSL file imports another module, the validator searches the directories listed in YMMSL_PATH. If an import cannot be resolved, ensure that YMMSL_PATH points to the directory or directories containing the required YMMSL modules.

Example:

export YMMSL_PATH=/path/to/ymmsl/modules

Multiple directories can be specified using a colon-separated list:

export YMMSL_PATH=/path/one:/path/two:/path/three

This works similarly to PATH and PYTHONPATH.

License

Copyright © 2026 Kristoffer Gustafsson

This repository, including its complete commit history, is licensed under the European Union Public Licence (EUPL) v1.2.

See the LICENSE file for the full license text.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ymmsl_lsp-0.0.4.tar.gz (75.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ymmsl_lsp-0.0.4-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file ymmsl_lsp-0.0.4.tar.gz.

File metadata

  • Download URL: ymmsl_lsp-0.0.4.tar.gz
  • Upload date:
  • Size: 75.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for ymmsl_lsp-0.0.4.tar.gz
Algorithm Hash digest
SHA256 429d81ddef9fff4e5f70eeecbc07047a96692ed8ff99bee96f2f8ff48afae9f8
MD5 1e7443ddfd1da27f3e7795e09d5a048e
BLAKE2b-256 e220b87f8ab06896302b86ddacd3cb4892cfa3f95bec6fae76e6198b19aec960

See more details on using hashes here.

File details

Details for the file ymmsl_lsp-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: ymmsl_lsp-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for ymmsl_lsp-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6f45e880e8e3b75b5d5da83b1b10df17eab7c67cbed7af2d8bf32e6085d027c4
MD5 1a46f50d594451ee649352e97caffb42
BLAKE2b-256 d8f32280592f0afb4b2e50d1930926a2c9248bf6dd39a1321bc1ac96e38fc9ad

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.6

2 files

0.0.5

2 files

This release

0.0.4 This release

2 files

0.0.3

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page