Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>SoutherNew to Visual Studio Code? Get it now.
Souther

Souther

souther

|
3 installs
| (0) | Free
Souther language support: the language server, syntax highlighting, and a Java runtime it fetches for you.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Souther for VS Code

Language support for Souther (.sou): the language server, syntax highlighting, and the Java runtime the server needs.

Install the extension and open a .sou file. Nothing else is required — if the machine has no Java 25, the extension offers to download one and uses it only for Souther. The status bar shows the server starting and turns into a check when it is ready; clicking it opens the log.

What you get

Diagnostics, the document outline, hover, go-to-definition, find-references, rename, name completion, quick-fix code actions, formatting, and semantic tokens. The tokens read the concrete syntax tree, so a type name and a value are coloured differently even though Souther identifiers are not capitalised.

The TextMate grammar is generated from the compiler's lexer, so highlighting keeps up with the language on its own.

Settings

Setting What it does
souther.server.java The java to launch the server with. Leave empty to use a Java 25 from JAVA_HOME or the PATH, or one the extension downloaded. When this points at something too old, the extension says so instead of quietly using another runtime.
souther.server.jar A different souther-lsp.jar — for running a build of the server you made yourself. Defaults to the bundled one.

Two commands: Souther: Restart Language Server and Souther: Show Output.

Where the downloaded runtime goes

Into the extension's global storage, as jre-25. It is a Temurin build from Adoptium, verified against the checksum the API reports, and nothing else on the machine sees it. Deleting the directory makes the extension offer the download again.

If the download cannot go through — a proxy, say — the output channel prints the URL and how to point souther.server.java at a runtime you install yourself.

Building it

The language server jar and the TextMate grammar are build outputs of the compiler repository, so they are not committed here. Fetch them from the release named by southerVersion in package.json:

npm install
npm run fetch      # → server/souther-lsp.jar, syntaxes/souther.tmLanguage.json
npm test

Then open this folder in VS Code and press F5 for an Extension Development Host, or npx @vscode/vsce package for a VSIX.

While changing the language and the extension together, build the server from a checkout and copy from it instead of downloading:

cd ../souther && mvn -pl souther-lsp -am package
cd ../souther-vscode && SOUTHER_LOCAL=../souther npm run fetch

Layout

  • src/extension.js — activation, the client, and the wiring
  • src/java.js — which java runs the server. No VS Code API, so the resolution order is testable
  • src/download.js — the Adoptium query, the download, and unpacking
  • src/status.js — the status bar item and the output channel
  • scripts/fetch-artifacts.mjs — puts the jar and the grammar in place

Releasing

Push a v* tag. The workflow fetches the artifacts, packages the VSIX, attaches it to the GitHub Release, and publishes to Open VSX (with the OVSX_PAT secret).

Publishing to the Visual Studio Marketplace is manual: download the .vsix from the release and upload it under the publisher at https://marketplace.visualstudio.com/manage. A manual upload needs neither a Personal Access Token nor an Azure subscription — both are only required for the vsce publish CLI.

License

EPL-2.0, the same as the language. See LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft