ProtoGraph
This extenstion provides basic support for programming in ProtoGraph within VSCode.
Features
- Syntax highlighting
- Auto-complete and on-hover tooltip for ProtoFlux nodes
- Auto-indentation
- Code folding
Requirements/Install
- Download the protograph
.vsix
package from the releases page
- In VSCode, go to the extensions page and in the options select the 'Install from VSIX...' option in the menu and select the downloaded vsix protograph package
- Follow the general setup instructions in the primary README to get .NET 9 installed to be able to compile ProtoGraph into Resonite records using the command line
Build Task
A build task can be configured with the flux-sdk to enable compiler messages to show up in the problems pane and display squiggles/popups in the code viewer. Use the following task as a template that you can customize to your own needs:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Compile ProtoGraph - Watch",
"type": "shell",
"isBackground": true, // set to false if not using --watch
"command": "flux-sdk",
"args": [
"build",
"-L",
"/path/to/your/steam/steamapps/common/Resonite/Resonite_Data/Managed/", // path to Resonite DLLs
"-d",
"${workspaceFolder}", // ProtoGraph project directory
"--watch", // will recompile on file change. Remove to manually start task (maybe as a build task)
"--stop-after-resolve", // stop after resolution. Do all the parsing and type checking, but don't format and create output. Remove to generate the .brson file
"--compact-error-messages", // IMPORTANT: makes error messages readable by the problemMatcher below
"${workspaceFolder}/CSV/ParseTable.pg" // The file to compile
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
},
"problemMatcher": {
"owner": "protograph",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(error|warning|info) at (.*)\\((\\d+):(\\d+) to (\\d+):(\\d+)\\): (.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"endLine": 5,
"endColumn": 6,
"message": 7
},
"background": { // remove if not using --watch
"activeOnStart": true,
"beginsPattern": "Change detected. Recompiling...",
"endsPattern": "Waiting for file change..."
}
}
}
]
}
Known Issues
There is currently no pre-configured build/run tasks, so the compiler has to be installed and run separatly.