Skip to content

Demo the esmvaltool language server - #4661

Draft
bouweandela wants to merge 1 commit into
mainfrom
demo-language-server
Draft

bouweandela wants to merge 1 commit into
mainfrom
demo-language-server

Conversation

@bouweandela

@bouweandela bouweandela commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

Description

Branch to try out the new esmvaltool-language-server. You can install the language server into the default pixi environment by running pixi install in the repository with this branch. After installing it and configuring your editor to use it (instructions for VSCode below, for emacs in the language server repo, for other editors ask or google it yourself), you can open a recipe to try out the features.

VSCode instructions

The esmvaltool-language-server repository contains both the language server and a vscode extension that uses the language server. Because the VSCode extension has not yet been published on the its marketplace, you'll need to build and install it manually to use it for now. Once ESMValCore v2.16 is released (assuming the changes to ESMValCore needed to make it work in ESMValGroup/ESMValCore#3261 and optionally ESMValGroup/ESMValCore#3279 make it into that release), we can publish the extension on the vscode marketplace, and these steps will no longer be needed.

Build and install the extension:

This requires Node.js, which isn't part of the pixi environment, so it uses the node and npm you already have or if you don't have them yet, you'll need to install those using your OS package manager or from https://nodejs.org/en/download.

mkdir -p ~/src/ESMValGroup
cd ~/src/ESMValGroup
git clone https://github.com/ESMValGroup/esmvaltool-language-server
cd esmvaltool-language-server
git switch main && git pull upstream main
cd client
npm ci                  # install the exact versions in package-lock.json
npm run package         # type-check, bundle and build esmvaltool-0.1.0.vsix
code --install-extension esmvaltool-0.1.0.vsix --force

npm run package will build the VSCode extension and produce a file named esmvaltool-0.1.0.vsix. Use the --force flag to replace any older copy you've installed.

Point the extension at the demo environment:

cd ~/src/ESMValGroup/esmvaltool
git switch demo-language-server
pixi install
pixi run which python

After a reload, the extension uses the Python interpreter selected in the Python extension.
Either select the pixi environment there, or set esmvaltool.languageServer.pythonPath in .vscode/settings.json to the path that pixi run which python prints.


Before you get started

Checklist

It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.


To help with the number of pull requests:

Use the development versions of ESMValCore and the language server in
the default environment, to demonstrate the language server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bouweandela bouweandela mentioned this pull request Nov 10, 2026
5 of 7 tasks
@bouweandela bouweandela added the requires new ESMValCore release A new release of ESMValCore is needed to solve this issue/merge this pull request.. label Nov 10, 2026
@valeriupredoi

Copy link
Copy Markdown
Contributor

what's that "esmvaltool language server", bud?
Duolingo-esmvaltool

@valeriupredoi

Copy link
Copy Markdown
Contributor

nevermind, I actually read through the package 😃 - that is a mega cool thing! I had no idea there's such a thing, and that can be that useful as middleware, am pinching this idea for other things like xconv2 🍻

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires new ESMValCore release A new release of ESMValCore is needed to solve this issue/merge this pull request..

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants