Time Chart Language Support
Time Chart Language Support adds real-time language intelligence for Time Chart Documents in VS Code, including diagnostics, completions, hover, code actions, code lens, document panel, execution commands, and syntax highlighting.

The authoring panel keeps structured device and operation data beside the generated timeline, so timing changes can be reviewed in context.
Features
- Real-time diagnostics for time chart structure and rules (including duration mismatches and configuration issues).
- Context-aware completions for PlantUML blocks, Devices table, Operations table, and Devices Configuration JSON.
- Rich hover details for actions, profiles, durations, aliases, and named positions.
- Quick fixes and command-driven refactors for common authoring tasks.
- Code lens annotations for calculated durations and document insights.
- Time chart execution command with streamed logs to the VS Code Output panel.
- Bundled PlantUML grammar support for
plantuml and puml fenced markdown blocks.
AI Assistance
The VSIX bundles the Time Chart Copilot workflow so no separate agent or MCP installation is required:
@timechart creates and edits Time Chart Documents, keeps source sections aligned with generated PlantUML, validates structure, calculates motor durations, solves motor profiles, and runs charts in simulation or on real hardware.
@timechart-validator is a read-only companion that checks the active document and reports structural and cross-section diagnostics without editing it.
- Eight bundled Time Chart skills provide guidance for document creation, section structure, operations, PlantUML, device actions, motor calculations, and profile solving.
- The bundled
Time Chart MCP Server supplies deterministic device-action lookup, motor-duration calculation, motor-profile solving, linting, and PlantUML generation through the extension-managed provider lifecycle.
Open Copilot Chat, select @timechart, and ask it to create, edit, validate, or execute the active time chart. The extension provides the bundled server to the agent; do not install a second MCP server or create a .mcp.json file for this workflow.
Requirements
- VS Code version
^1.131.0.
- GitHub Copilot and Copilot Chat are required for the bundled agents and skills.
- A trusted workspace when using
timechart.lsp.executablePath.
- The extension bundles
timechart-server.exe under server/win-x64, so out-of-the-box server startup is Windows-focused unless a custom server path is configured.
- Extension dependencies:
shd101wyy.markdown-preview-enhanced
fcrespo82.markdown-table-formatter
First Use
- Open a Markdown file that contains a Time Chart, or run
Time Chart: Load Demo Time Chart Document from the Command Palette to explore the bundled example.
- Use the document panel to review or edit Properties, Devices, Operations, and inline Devices Configuration. The demo is read-only; use
Save As to create a writable copy.
- Run
Time Chart: Validate Document, fix any reported diagnostics, and use Time Chart: Regenerate PlantUML when the generated timeline is stale.
- Run
Time Chart: Run with a simulation profile to exercise the saved chart. For AI-assisted authoring, ask @timechart to validate or edit the active document.
For the complete command sequence, recovery paths, and demo workflow, see the Time Chart Extension Workflows. For the full feature, settings, and contextual-help reference, see the Time Chart Extension Reference. The bundled agent and MCP capability model is described in the Time Chart Agent architecture.
Extension Settings
This extension contributes the following timechart.* settings:
| Setting |
Type |
Default |
Description |
timechart.lsp.enabled |
boolean |
true |
Enable or disable the Time Chart language server. |
timechart.lsp.executablePath |
string |
"" |
Custom server path; empty uses the bundled Windows executable. |
timechart.trace.server |
enum |
"off" |
Trace client-server communication with messages or verbose diagnostics. |
timechart.lsp.serverLog.level |
enum |
"information" |
Set the minimum forwarded or file-logged server level. |
timechart.lsp.serverLog.forwardToClient |
boolean |
true |
Forward server logs to the Time Chart LSP Server output channel. |
timechart.lsp.serverLog.file.enabled |
boolean |
false |
Write server logs to a file for troubleshooting or retention. |
timechart.lsp.serverLog.file.path |
string |
"" |
Optional absolute log path; empty uses the extension log folder. |
timechart.diagnostics.enabled |
boolean |
true |
Enable or disable real-time diagnostics. |
timechart.diagnostics.debounceMs |
number |
300 |
Delay reparsing after edits; smaller values respond sooner. |
timechart.completion.enabled |
boolean |
true |
Enable completion suggestions inside PlantUML blocks. |
timechart.codeLens.enabled |
boolean |
true |
Show code lens annotations on motor operations. |
timechart.codeLens.showTimestamps |
boolean |
true |
Show absolute time markers as code lens annotations. |
timechart.hover.enabled |
boolean |
true |
Enable hover information for Time Chart content. |
timechart.operationsPanel.enabled |
boolean |
true |
Show the Time Chart document panel. |
timechart.operationsPanel.autoReveal |
boolean |
true |
Reveal the document panel when a Time Chart document becomes active. |
timechart.onboarding.showActivationTip |
boolean |
true |
Show the Activity Bar discoverability notification on activation. |
timechart.statusBar.enabled |
boolean |
true |
Show the Time Chart entry in the status bar. |
timechart.disabledRules |
array |
[] |
Rule IDs to suppress, such as TC008 or TC009. |
Commands
The extension contributes the following commands. Context-specific actions also appear on the relevant document-panel nodes.
| Command |
Purpose |
Time Chart: Validate Document |
Open Problems and show the validation summary for the active document. |
Time Chart: Create New Time Chart Document |
Create a scaffolded Time Chart Markdown document. |
Time Chart: Load Time Chart Document |
Choose and load a Time Chart document from the workspace. |
Time Chart: Load Demo Time Chart Document |
Open the bundled read-only demo document. |
Time Chart: Open Time Chart Document |
Open a Time Chart document from the extension view. |
Time Chart: Preview PlantUML Time Chart |
Open the saved document in Markdown Preview Enhanced at the PlantUML section. |
Time Chart: Add Device in Authoring Panel |
Add a device through the authoring panel. |
Time Chart: Edit Device in Authoring Panel |
Edit the selected device through the authoring panel. |
Time Chart: Remove Device in Authoring Panel |
Remove the selected device through the authoring panel. |
Time Chart: Add Operation in Authoring Panel |
Add an operation through the authoring panel. |
Time Chart: Edit Operation in Authoring Panel |
Edit the selected operation through the authoring panel. |
Time Chart: Remove Operation in Authoring Panel |
Remove the selected operation through the authoring panel. |
Time Chart: Add Device Configuration in Authoring Panel |
Add inline per-device configuration. |
Time Chart: Edit Device Configuration in Authoring Panel |
Edit the selected device configuration. |
Time Chart: Recalculate All Durations |
Recompute motor-operation durations from current profile data. |
Time Chart: Regenerate PlantUML |
Regenerate the PlantUML timeline from source sections. |
Time Chart: Shift Times... |
Apply a bulk time offset to matching operations and markers. |
Time Chart: Solve Motor Profile... |
Solve velocity or acceleration for a target duration. |
Time Chart: Run |
Execute the active chart with the selected execution profile. |
Time Chart: Use Simulation (1x) |
Select normal-speed simulation. |
Time Chart: Use Simulation (2x) |
Select 2x-speed simulation. |
Time Chart: Use Simulation (5x) |
Select 5x-speed simulation. |
Time Chart: Use Simulation (10x) |
Select 10x-speed simulation. |
Time Chart: Use Real Hardware |
Select real-hardware execution. |
Time Chart: Go to Source from Tree Item |
Navigate from a document-panel node to its source location. |
The validation status commands for checking, valid, error, warning, and unavailable states are contributed for the document-panel and status-bar state machine; they are not intended for manual invocation.
Known Issues
- The bundled language server binary is currently provided as
server/win-x64/timechart-server.exe; non-Windows environments should configure timechart.lsp.executablePath to a compatible server build.
- The extension activates at startup so command and tree surfaces are available immediately, and starts the language server when a valid time chart document structure is detected.
- Plain markdown files that do not match the expected time chart structure will not trigger language server start.
- If the server executable path is invalid, language features will be unavailable until the path is corrected.
Troubleshooting
Commands are missing or show "command not found"
- Open a markdown file with a valid time chart section structure.
- Wait for extension activation on startup/language events.
- Run
Time Chart: Validate Document from the Command Palette to confirm command registration and diagnostics plumbing.
Tree actions are not shown on a node
- Ensure you selected the expected section or item node in the Time Chart Document view.
- Verify node context: Devices, Operations, Time Chart, or Devices Configuration.
- Retry from the Command Palette to confirm command availability independent of tree context.
PlantUML stays out of sync
- Run
Time Chart: Regenerate PlantUML after editing Devices, Properties, Operations, or Devices Configuration.
- Re-run
Time Chart: Validate Document and fix any remaining sync-related diagnostics.
Release Notes
For version-by-version release details, see CHANGELOG.md included in this extension package.
| |