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 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"`
PrivateNew bool `json:"privateNew,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 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.
Click to show internal directories.
Click to hide internal directories.