Skip to content

mylonics/struct-frame-ls

Repository files navigation

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.

About

VSCode Language Server for struct-frame

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors