pseudocode-i18n-languageserver
| Resource | Link | Purpose |
|---|---|---|
| pseudocode-i18n-languageserver — repository | gitlab.com/rod2ik/pseudocode-i18n-languageserver | Shared Language Server Protocol implementation for Pseudocode editors and IDEs |
| pseudocode-i18n-languageserver — documentation | rod2ik.gitlab.io/pseudocode-i18n-languageserver | Installation, features and editor integration |
| pseudocode-i18n | gitlab.com/rod2ik/pseudocode-i18n | Parser, formatter, semantic analysis, i18n registry and editor-neutral semantic index |
| pygments-lexer-pseudocode-i18n | gitlab.com/rod2ik/pygments-lexer-pseudocode-i18n | Pygments highlighting generated from the same language vocabulary |
| mkdocs-pseudocode-i18n | gitlab.com/rod2ik/mkdocs-pseudocode-i18n | MkDocs rendering, MathJax and flowcharts |
| vscode-pseudocode-i18n | gitlab.com/rod2ik/vscode-pseudocode-i18n | VS Code integration, execution and live visualization |
Current version: 0.9.7.
Release history: pseudocode-i18n-languageserver changelog.
pseudocode-i18n-languageserver gives .pseudo and .algo files one reusable intelligence layer for open-source editors and educational IDEs. The server speaks the standard Language Server Protocol (LSP) over stdin/stdout and delegates the language itself to pseudocode-i18n.
Install it once:
python -m pip install 'pseudocode-i18n-languageserver>=0.9.7,<0.10'
On an externally managed Python installation, when you deliberately install into user/system packages:
python -m pip install --break-system-packages 'pseudocode-i18n-languageserver>=0.9.7,<0.10'
Check the command used by editors:
pseudo-lsp --version
You normally do not launch pseudo-lsp yourself. Kate, Neovim, Spyder or another LSP client starts it as a child process and communicates with it through stdin/stdout.
Shared editor intelligence
pseudo-lsp exposes the coordinated editor contract while keeping the language itself in pseudocode-i18n:
- multiple localized diagnostics from the recovering core linter, with exact source ranges;
- completion plus retained frontend snippets, signature help, document symbols, definitions, references, rename and formatting;
- hover documentation generated by the core for ordinary keywords and structural grammar fragments such as
Alors,fois,Jusqu'à ce queand every word of localized multi-word import aliases such asen tant que; - import operands remain symbols rather than documentation keywords, preventing false hover/help on names such as an imported
sqrt; - all 14 source languages receive the same behavior without maintaining language-specific tables in the server;
- project-aware standard/local module resolution and strict type/operation diagnostics are preserved;
pseudocode/tutorexposes the sharedpseudocode-tutor/v2step-by-step execution model, including static flowchart snapshots with stable node/edge IDs and compact incremental output deltas;pseudocode/flowchartexposes the same shared flowchart model for static previews/export and keeps the Mermaid compatibility representation; rich Tutor clients can render once and toggle stable IDs locally rather than requesting a new graph per step;- each open-document model retains its parsed AST and caches Tutor sessions, symbol/scope lists and flowchart snapshots by document version, so diagnostics and custom requests reuse work already performed for the current source;
- custom Pseudocode requests share one document-parameter normalizer, accepting standard
textDocument.uriplus compatibility fallbacks without duplicating parsing in editor plugins.
The server remains a thin LSP layer: source-language knowledge belongs to pseudocode-i18n, so VS Code, Thonny and other clients see the same diagnostics and help.
Language-server capabilities
The server exposes the same language intelligence for all 14 supported natural languages:
- diagnostics from the native
pseudocode-i18nparser and semantic linter, including multiple independent errors in one document, explicit type-contract mismatches and incompatible typed operations; - project-aware module diagnostics:
mathandrandomare standard, while existing local.pseudo/.algomodules are resolved from the document/project path; - i18n code completion and the existing structural snippets, using the normal language-resolution priority;
- completion for document symbols, localized built-ins, constants and types;
- pedagogical hover information for symbols, keywords, types and built-ins, with localized section labels and every accepted syntax synonym exposed;
- signature help;
- document symbols;
- go to definition;
- find references;
- prepare rename and rename;
- whole-document formatting;
.pseudoand.algoas equivalent source extensions.
The server does not maintain a second grammar. pseudocode-i18n remains the source of truth for parsing, language detection, configuration, formatting, diagnostics, snippets and semantic indexing.
Language and snippet resolution
A document uses the same precedence as the core:
- explicit
# language: xx/# lang: xxdirective; language:/lang:inpseudocode.config.yml;- automatic language detection;
fallback_language;- French as the final default.
This means typing a condition snippet in a French file proposes Si … Alors, while an English file proposes If … Then, without editor-specific copies of the snippet catalog.
Editor targets
| Editor / IDE | Integration path |
|---|---|
| Kate | Native generic LSP client; ready to configure. A generated KSyntaxHighlighting definition is included. |
Neovim (nvim) |
Native LSP client; ready to configure. A Lua configuration is included. |
| Spyder | Supports LSP servers for “Other languages”; configuration guide included. |
| Thonny 5 | thonny-pseudocode-i18n connects completion/snippets, hover, signature help, diagnostics, Ctrl+click navigation, rename and formatting to this server. |
| Mu Editor | Requires a Mu mode/editor adapter; the server side is ready. Mu remains an explicit project target. |
| Pyzo | Requires an editor adapter unless/until Pyzo exposes a generic LSP client; the server side is ready. |
| VS Code / Code - OSS | vscode-pseudocode-i18n now uses this server for completion/snippets, hover, navigation, rename, signatures, document symbols, formatting and diagnostics while keeping its richer execution/preview UX. |
See the Editors section of the documentation for exact configuration and current limitations.
Development
yarn setup
yarn bfc
yarn setup installs the current project and uses a sibling ../pseudocode-i18n checkout when present. yarn bfc is an alias for yarn build:full:check and performs version synchronization, generated integrations, linting, tests, a CLI smoke test, strict MkDocs documentation build and Python package build.
Useful commands:
yarn dev
yarn dev:lan
yarn test
yarn lint
yarn smoke
yarn zip
License
GNU General Public License version 3 or later (GPL-3.0-or-later).
Metadata
Release files for pseudocode-i18n-languageserver 0.9.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pseudocode_i18n_languageserver-0.9.7.tar.gz | 50.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pseudocode_i18n_languageserver-0.9.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.7 kB
Release files / pseudocode_i18n_languageserver-0.9.7.tar.gz
| Download URL | pseudocode_i18n_languageserver-0.9.7.tar.gz |
|---|---|
| Size | 50.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68b8de595f4d859362a24efb94229967bfc52d061a65b5de0257fa312525b9c5
|
|
BLAKE2b-256 checksum How to use checksums |
1612429abf2b8eb67e2cb04ac17c11d1c3f2e200bc823a2bcf5a99a3425dc08e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / pseudocode_i18n_languageserver-0.9.7-py3-none-any.whl
| Download URL | pseudocode_i18n_languageserver-0.9.7-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ba7f2f9ae081e58324c9d36044b08ba1a199296fba76ccb07ef430a7a694afe
|
|
BLAKE2b-256 checksum How to use checksums |
26ec6f26b5c0cb0bf02a276ecee8158a297982fc39d634eb88572dad93c967f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|