toolingprotocol

package
v0.3.34 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package toolingprotocol defines the versioned, read-only JSON snapshot exposed by explicit compiler tooling commands. It deliberately keeps compiler AST, typed IR, backend hooks, and mutation outside the protocol.

Index

Constants

View Source
const ProtocolVersion = 3

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildOptions

type BuildOptions struct {
	CompilerVersion string
	Mode            string
}

type Declaration

type Declaration struct {
	ID             string                  `json:"id"`
	ModulePath     string                  `json:"modulePath"`
	OwnerID        string                  `json:"ownerId,omitempty"`
	Kind           DeclarationKind         `json:"kind"`
	Name           string                  `json:"name"`
	QualifiedName  string                  `json:"qualifiedName"`
	Visibility     string                  `json:"visibility"`
	Location       diagnostic.JSONLocation `json:"location"`
	TypeParameters []string                `json:"typeParameters,omitempty"`
	Parameters     []Parameter             `json:"parameters,omitempty"`
	Alternatives   []Signature             `json:"alternatives,omitempty"`
	Type           *Type                   `json:"type,omitempty"`
	ReturnType     *Type                   `json:"returnType,omitempty"`
	Superclass     *Type                   `json:"superclass,omitempty"`
	Implements     []Type                  `json:"implements,omitempty"`
	RawType        *Type                   `json:"rawType,omitempty"`
	ClassMember    bool                    `json:"classMember,omitempty"`
	Readonly       bool                    `json:"readonly,omitempty"`
	External       bool                    `json:"external,omitempty"`
}

type DeclarationKind

type DeclarationKind string
const (
	DeclarationFunction    DeclarationKind = "function"
	DeclarationClass       DeclarationKind = "class"
	DeclarationRecord      DeclarationKind = "record"
	DeclarationEnum        DeclarationKind = "enum"
	DeclarationEnumMember  DeclarationKind = "enum_member"
	DeclarationInterface   DeclarationKind = "interface"
	DeclarationTypeAlias   DeclarationKind = "type_alias"
	DeclarationNewtype     DeclarationKind = "newtype"
	DeclarationModule      DeclarationKind = "module"
	DeclarationConstant    DeclarationKind = "constant"
	DeclarationField       DeclarationKind = "field"
	DeclarationRecordField DeclarationKind = "record_field"
	DeclarationMethod      DeclarationKind = "method"
)

type Import

type Import struct {
	Path       string                  `json:"path"`
	ModulePath string                  `json:"modulePath"`
	Symbols    []string                `json:"symbols,omitempty"`
	Alias      string                  `json:"alias,omitempty"`
	Namespace  bool                    `json:"namespace,omitempty"`
	Location   diagnostic.JSONLocation `json:"location"`
}

type Module

type Module struct {
	ModulePath      string   `json:"modulePath"`
	SourcePath      string   `json:"sourcePath"`
	CompilerOwned   bool     `json:"compilerOwned,omitempty"`
	Official        bool     `json:"official,omitempty"`
	ExternalPackage bool     `json:"externalPackage,omitempty"`
	Imports         []Import `json:"imports"`
}

type Parameter

type Parameter struct {
	Name        string `json:"name"`
	Type        Type   `json:"type"`
	NamedOnly   bool   `json:"namedOnly,omitempty"`
	Keyword     bool   `json:"keyword,omitempty"`
	Optional    bool   `json:"optional,omitempty"`
	Rest        bool   `json:"rest,omitempty"`
	KeywordRest bool   `json:"keywordRest,omitempty"`
}

type Report

type Report struct {
	ProtocolVersion int                         `json:"protocolVersion"`
	CompilerVersion string                      `json:"compilerVersion"`
	Mode            string                      `json:"mode,omitempty"`
	Sources         []Source                    `json:"sources"`
	Modules         []Module                    `json:"modules"`
	Declarations    []Declaration               `json:"declarations"`
	Diagnostics     []diagnostic.JSONDiagnostic `json:"diagnostics"`
	Summary         diagnostic.JSONSummary      `json:"summary"`
}

func Build

func Build(options BuildOptions, units []compiler.SourceUnit, snapshot compilerservice.Snapshot) Report

Build creates a deterministic snapshot from the exact compiler-service inputs and its immutable analysis result. Authored source remains available when diagnostics prevent a checked declaration snapshot from being built.

type Signature

type Signature struct {
	Parameters []Parameter `json:"parameters"`
	ReturnType Type        `json:"returnType"`
	Variadic   bool        `json:"variadic,omitempty"`
}

type Source

type Source struct {
	Path     string `json:"path"`
	Encoding string `json:"encoding"`
	Content  string `json:"content"`
}

type Type

type Type struct {
	Kind      string `json:"kind"`
	Name      string `json:"name,omitempty"`
	Nullable  bool   `json:"nullable,omitempty"`
	Readonly  bool   `json:"readonly,omitempty"`
	Arguments []Type `json:"arguments,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL