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: 1.0.2. Release history: pseudocode-i18n-languageserver changelog.
Requirements and dependencies
- Python: 3.11 or newer (
>=3.11). - Pseudocode ecosystem:
pseudocode-i18n >= 1.0.2, < 1.1. - LSP stack:
pygls >= 2.1.1, < 2.2andlsprotocol == 2025.0.0. - These runtime dependencies are declared by the package and are installed automatically by
pip.
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>=1.0.2,<1.1'
On an externally managed Python installation, when you deliberately install into user/system packages:
python -m pip install --break-system-packages 'pseudocode-i18n-languageserver>=1.0.2,<1.1'
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; parser-recovery fallback details are localized too, so backend English text never leaks into a diagnostic in another Pseudocode language;
- completion plus retained frontend snippets (including localized XOR expressions,
Do/Faire/...loop forms and distinct range/stepped-range/collection-loop snippets), signature help, document symbols, definitions, references, rename and formatting; every structural snippet is linked to its exact shared documentation card instead of being matched only by its first word; - hover documentation generated by the core for ordinary keywords and structural grammar fragments such as
Alors,fois,Jusqu'àand every word of localized multi-word import aliases such asen tant que; complete recognized structures take priority over ambiguous fragments, so French range-loopde,à,pasandFaireshow the correct range/stepped-range syntax rather than import help; - 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. Its optionalfontSizepresentation parameter reserializes the already cached flowchart snapshots without replaying the Tutor; the model otherwise includes static flowchart snapshots with stable node/edge IDs, compact incremental output deltas and source-language human labels/values while canonical machine fields remain stable. The response also carries the cachedexecutablestate and the exact LSP diagnostic set: error-level diagnostics return a blocked Tutor model without constructing an execution session, while warnings/information accompany a normal executable model; no second lint or parse is performed;pseudocode/flowchartexposes the same shared flowchart model for static previews/export aspseudocode-flowchart/v1. An optionalfontSizeparameter selects the shared renderer-neutral text size while reusing the cached semantic snapshot. Every response carries both canonical sources (sources.mermaidandsources.graphviz), Mermaid remainsdefault_engine, andsourcefollows the requestedengine; nodes include conventionalprocess/decision/io/terminalsemantic kinds, rangePouruses the shared source-level head → body → exterior-return topology without synthetic init/update nodes, its return edge exposes the implicit increment as presentation annotation metadata,Si/Sinon Sidiamonds expose question-form labels, and loop steps expose both taken and natural-exit edge activation when known. Semantic diagnostics do not block a graph when the original AST is structurally available. Symbol scopes carry localizeddisplay_labeltext beside canonicalname/kind, and rich Tutor clients can render once and toggle stable IDs locally rather than requesting a new graph per step. Mermaid receives the core-ownedvalidated-loop-attached-edges-v22ELK profile; Graphviz receives deterministicneatopositions with WEST loop-back / EAST exit routing. The server duplicates neither semantics nor geometry;- 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; French repeat-until formatting canonically emits
Jusqu'à ...while the longer accepted synonym remains valid; .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 1.0.2
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-1.0.2.tar.gz | 77.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pseudocode_i18n_languageserver-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.0 kB
Release files / pseudocode_i18n_languageserver-1.0.2.tar.gz
| Download URL | pseudocode_i18n_languageserver-1.0.2.tar.gz |
|---|---|
| Size | 77.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8135a60f10b234fc45795c0e0c40407db1cf1b91a49edbd12c06021f9d9cd6e9
|
|
BLAKE2b-256 checksum How to use checksums |
37e1a955ea7a469074039436564243bc8da239665829de53e32dc6c1aa099ec7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / pseudocode_i18n_languageserver-1.0.2-py3-none-any.whl
| Download URL | pseudocode_i18n_languageserver-1.0.2-py3-none-any.whl |
|---|---|
| Size | 29.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0093f0bdd33c9459d870a083c3e573306537e6333a8fe66cc9c35f20e814c7ab
|
|
BLAKE2b-256 checksum How to use checksums |
d1ef3a326408e58754eefeb5a648ed81fb0462561f59ec7e52584433e32ffb55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|