ProtoGraph
This extenstion provides support for programming in ProtoGraph within VSCode via the Language Server Protocol.
Features
- Syntax highlighting
- Document diagnostics
- Auto-complete
- On-hover tooltip
- Auto-indentation
- Code folding
Requirements
Follow the general setup instructions in the primary FluxSDK README to get .NET 9 installed and to be able to compile ProtoGraph into Resonite records using the command line.
Manual VSCode Extension 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
Configuration
This extension will attempt to use the flux-sdk
CLI on your path and auto-detect the Resonite DLLs. If anything is not accessible on the path or in a non-standard location, you can manually configure the settings to provide explicit paths to them.
protograph.dotnetExe
: Set an explicit path to the dotnet CLI if you are running flux-sdk by executing the flux-sdk.dll
directly. If this is not set, then the dotnet
CLI should be on the path.
protograph.fluxSdkDLL
: Set an explicit path to the flux-sdk.dll
executable if the flux-sdk
CLI is not on the path.
protograph.frooxDLL
: Set an explicit path to the Resonite DLL directory. This is the same value that is provided to the flux-sdk
with the --library-path
/-L
option.
Build Task
A build task can be configured with the flux-sdk to help building your final .brson files. 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",
"type": "shell",
"command": "flux-sdk",
"args": [
"build",
"-L",
"/path/to/your/steam/steamapps/common/Resonite/Resonite_Data/Managed/", // path to Resonite DLLs if you need to specify
"-d",
"${workspaceFolder}", // ProtoGraph project directory
"${file}" // The file to compile
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
}
}
]
}