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
enumdeclarations and variants - Type-alias parsing (
type Name = ...) and module-levellet/constglobals - Highlighting and literal hover support for
0x/0b/0onumbers and_digit separators - Struct field defaults, shorthand/update-spread snippets,
ifexpressions, andbreak/continuekeywords
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
importpath completion forstd.*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
▶ Runaction abovemainand reference counts above routines and types (toggle withppl.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
--emitoutput 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.pplfile withppl runin an integrated terminal, reusing the configuredppl.compilerPath/ppl.cargoPathresolution
Included in v0.1
- Syntax highlighting for current PPL declarations, literals, operators,
match, comments, imports,extern routine,intrinsic routine,enum, type aliases, globals,unsignedscalars, 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,ifexpressions,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,forinitializers, routine parameters, top-level routines/externs, type names/usages, user-defined operators, andimported modules - Compiler diagnostics in the editor for saved
.pplfiles, 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/vscodefolder. - Install extension development dependencies in your VS Code environment if needed.
- Press
F5in VS Code to launch an Extension Development Host. - Open any
.pplfile 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
- package.json
- syntaxes/ppl.tmLanguage.json
- snippets/ppl.json
- language-configuration.json
- references/PPL.syntax
Layout
All VS Code extension assets for PPL live under editors/vscode, including the source grammar reference used while building the TextMate grammar.