All notable changes to the "sac-language-support" extension will be documented in this file.
- Added SaC language registration for
.sacfiles. - Added language configuration for editor behaviors (comments/brackets/word boundaries).
- Added SaC TextMate grammar + injection support for SaC-aware highlighting inside C scopes.
- Added built-in SaC snippets.
- Added SaC file icon contribution and icon theme mapping.
- Added multiple bundled SaC color themes (
Default,Warm,Cool,Vibrant).
- Added SaC language server activation and lifecycle wiring from the extension host.
- Added diagnostics publication to Problems panel + inline squiggles.
- Added hover provider for:
- builtins + stdlib docs from
docs/builtinsanddocs/stdlib - compiler-index-backed symbols when available
- source-defined function docs/signatures fallback
- builtins + stdlib docs from
- Added go-to-definition provider using compiler navigation index with source/stdlib fallbacks.
- Added safe server error handling (
runSafely) so failures are logged instead of crashing server process.
- Added diagnostics execution modes:
onSave,onType(debounced),manual. - Added diagnostics presentation modes:
expanded,smart,hybrid. - Added best-effort parser/grouping pipeline for
sac2coutput. - Added related information + stack/context rendering controls:
sac.diagnostics.includeRelatedInformationsac.diagnostics.includeStackInMessagesac.diagnostics.maxStackFrames
- Added workspace-wide diagnostics scan controls:
sac.diagnostics.workspaceScan.enabledsac.diagnostics.workspaceScan.onInitializesac.diagnostics.workspaceScan.onConfigurationChangesac.diagnostics.workspaceScan.excludeDirectories
Compiler prerequisite (current fork status):
- Error-column diagnostics improvements rely on sac2c branch: https://gitlab.sac-home.org/LuckyLuuk/sac2c/-/tree/luukk/error-end-column
- Related upstream MR draft: https://gitlab.sac-home.org/sac-group/sac2c/-/merge_requests/633
- Added compiler resolution strategy with channels:
system,stable,develop. - Added explicit compiler path override via
sac.compiler.path. - Added fallback behavior to system compiler when bundled channel binary is missing.
- Added backend execution modes:
localwsl(Windows host)docker
- Added configurable extra compiler args and deterministic messaging args:
sac.compiler.extraArgssac.compiler.messaging.enabledsac.compiler.messaging.args
- Added markdown documentation lookup + formatting pipeline for hover content.
- Added heading/section parsing helpers for richer hover rendering.
- Added builtin family doc resolution (for example
_add_SxS_->_add_.md). - Added hover/definition runtime tracing controls via
sac.compiler.traceand debug logging hooks.
Compiler prerequisite (current fork status):
- Hover/navigation output-phase support currently depends on fork branch: https://gitlab.sac-home.org/LuckyLuuk/sac2c/-/commits/luukk/vscode-extension-output-phase
- Added diagnostics architecture docs (
docs/diagnostics-pipeline.md,docs/editor-agnostic-diagnostics.md). - Added extension packaging optimization:
- esbuild bundle pipeline for extension + server outputs
- prepublish bundle hook before
vsce package - lean
.vscodeignorerules for smaller VSIX artifacts
- Added initial GitHub workflow foundation for nightly/stable VSIX release automation.
- Added Node.js runtime pin via
.nvmrc. - Added npm behavior pin via
.npmrcand package-manager metadata.