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 10 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
}
}
]
}