Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Struct Frame Language SupportNew to Visual Studio Code? Get it now.
Struct Frame Language Support

Struct Frame Language Support

mylonics

mylonics.com
|
1 install
| (0) | Free
Language support for struct-frame (.sf) files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

struct-frame-ls

VSCode Language Server for struct-frame (.sf files)

Features

  • Syntax Highlighting — Full highlighting for messages, enums, primitive types, keywords, comments, field options, and string literals
  • Go-to-Definition — Click on a message or enum type name to jump to its definition, including across imported files
  • Autocomplete — Context-aware suggestions:
    • Top-level keywords (message, enum, package, import, option, repeated, oneof)
    • Field types: all primitive types plus user-defined messages and enums from the current file and its imports
    • Inside [...]: field option names (size=, max_size=, element_size=, flatten=)
    • After option: option names (msgid, pkgid, variable)
  • Hover Documentation — Hover over a type name to see its definition summary or a description of the primitive type
  • Document Symbols / Outline — All messages and enums listed in the outline with their fields and enum values

struct-frame Syntax

struct-frame uses a protobuf-like syntax with .sf file extension:

package sensor_data;

option pkgid = 1;

import "other_file.sf";

enum SensorStatus {
  OFFLINE = 0;
  ONLINE  = 1;
  ERROR   = 2;
}

message SensorReading {
  option msgid = 1;
  option variable = true;

  SensorStatus status    = 1;
  float        value     = 2;
  string       name      = 3 [size=16];
  repeated uint8 data    = 4 [max_size=200];
  uint32       timestamp = 5;
}

message Container {
  option msgid = 2;
  SensorReading reading = 1 [flatten=true];
}

Primitive types: int8, int16, int32, int64, uint8, uint16, uint32, uint64, float, double, bool, string

Field options (in [...]): size, max_size, element_size, flatten

Message options: msgid, pkgid, variable

Development

npm install
cd client && npm install
cd ../server && npm install
cd ..
npm run compile

Open the project in VSCode and press F5 to launch the Extension Development Host.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft