PPL Language Support for VS Code
VS Code extension assets for the Procedural Programming Language (.ppl).
Included in v0.6
Everything in v0.3, plus support for newer PPL additions:
- Syntax, outline, hover, completion, references, and semantic highlighting for
enum declarations and variants
- Type-alias parsing (
type Name = ...) and module-level let / const globals
- Highlighting and literal hover support for
0x / 0b / 0o numbers and _ digit separators
- Struct field defaults, shorthand/update-spread snippets,
if expressions, and break / continue keywords
Included in v0.3
Everything in v0.2, plus a full set of compiler-aware editor features driven by a
lightweight in-extension index of every .ppl file in the workspace (including
std/):
- Hover — routine signatures with their doc comments, struct layouts, operator
declarations, and built-in keyword/type documentation
- Outline & breadcrumbs — routines, types (with their fields), and operators
via a Document Symbol provider, plus workspace symbol search (
Ctrl+T)
- Completion — keywords, built-in types, in-scope locals/parameters, all
workspace routines (inserted as a call template) and types, literals, and
import path completion for std.* and sibling modules
- Signature help — parameter hints as you fill in a routine call, with the
active argument highlighted (variadics handled)
- References (
Shift+F12) for routines, types, operators, and locals
- CodeLens — a
▶ Run action above main and reference counts above
routines and types (toggle with ppl.codeLens.enabled)
- Semantic highlighting — scope-aware coloring that distinguishes routine
calls, types, parameters, locals, and struct fields (toggle with
ppl.semanticHighlighting.enabled)
- Sharper diagnostics — squiggles now span the compiler's caret underline
(not just one character), and
note: lines attach as related information
- Compiler-insight commands — PPL: Show LLVM IR / Assembly / AST / Tokens
open the corresponding
--emit output in a side editor, and PPL: Build
Executable links the active file, surfacing errors in the Problems panel
- Status bar item — reflects the last compile result (ok / errors /
compiling / compiler-not-found); click it to open the output channel
Included in v0.2
- Run button (
▶ in the editor title bar) and PPL: Run File command/context-menu entry that compiles and runs the active .ppl file with ppl run in an integrated terminal, reusing the configured ppl.compilerPath / ppl.cargoPath resolution
Included in v0.1
- Syntax highlighting for current PPL declarations, literals, operators,
match, comments, imports, extern routine, intrinsic routine, enum, type aliases, globals, unsigned scalars, pointers, arrays, function-pointer types, and packed varargs (...)
- Language configuration for
// comments, bracket matching, auto-closing pairs, number suffixes, and basic indentation
- Snippets for
routine, procedures, extern routine, packed varargs, type, enum, type aliases, globals, if/else, if expressions, while ... do, do ... while, for ... while ... do, match, operators, imports, function pointer types, casts, struct update, and raw byte pointers
- Go to Definition (
Ctrl+Click / F12) for local variables, for initializers, routine parameters, top-level routines/externs, type names/usages, user-defined operators, and imported modules
- Compiler diagnostics in the editor for saved
.ppl files, using the project compiler output
What this does not include
- Language Server Protocol integration (features run in-process from the
extension's own index rather than a separate server)
- In-memory semantic diagnostics/type checking for unsaved files (diagnostics run
the real compiler on save)
- Rename and formatting
- Type inference, so member completion after
. is intentionally left off rather
than guessed
Develop and run
- Open this
editors/vscode folder.
- Install extension development dependencies in your VS Code environment if needed.
- Press
F5 in VS Code to launch an Extension Development Host.
- Open any
.ppl file in the new window.
If you prefer packaging later, this folder is already structured as a standalone extension with package.json, syntaxes/, snippets/, and language-configuration.json.
Useful files
Layout
All VS Code extension assets for PPL live under editors/vscode, including the source grammar reference used while building the TextMate grammar.
| |