api

package
v0.0.0-...-7d7180d Latest Latest
Warning

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

Go to latest
Published: May 24, 2025 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidRequest = errors.New("api: invalid request")
	ErrClientError    = errors.New("api: client error")
)

Functions

This section is empty.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

func NewAPI

func NewAPI(host APIHost, options APIOptions) *API

func (*API) Client

func (api *API) Client() project.Client

Client implements ProjectHost.

func (*API) Close

func (api *API) Close()

func (*API) DefaultLibraryPath

func (api *API) DefaultLibraryPath() string

DefaultLibraryPath implements ProjectHost.

func (*API) DocumentRegistry

func (api *API) DocumentRegistry() *project.DocumentRegistry

DocumentRegistry implements ProjectHost.

func (*API) FS

func (api *API) FS() vfs.FS

FS implements ProjectHost.

func (*API) GetCurrentDirectory

func (api *API) GetCurrentDirectory() string

GetCurrentDirectory implements ProjectHost.

func (*API) GetOrCreateScriptInfoForFile

func (api *API) GetOrCreateScriptInfoForFile(fileName string, path tspath.Path, scriptKind core.ScriptKind) *project.ScriptInfo

GetOrCreateScriptInfoForFile implements ProjectHost.

func (*API) GetScriptInfoByPath

func (api *API) GetScriptInfoByPath(path tspath.Path) *project.ScriptInfo

GetScriptInfoByPath implements ProjectHost.

func (*API) GetSourceFile

func (api *API) GetSourceFile(projectId Handle[project.Project], fileName string) (*ast.SourceFile, error)

func (*API) GetSymbolAtLocation

func (api *API) GetSymbolAtLocation(ctx context.Context, projectId Handle[project.Project], location Handle[ast.Node]) (*SymbolResponse, error)

func (*API) GetSymbolAtPosition

func (api *API) GetSymbolAtPosition(ctx context.Context, projectId Handle[project.Project], fileName string, position int) (*SymbolResponse, error)

func (*API) GetTypeOfSymbol

func (api *API) GetTypeOfSymbol(ctx context.Context, projectId Handle[project.Project], symbolHandle Handle[ast.Symbol]) (*TypeResponse, error)

func (*API) HandleRequest

func (api *API) HandleRequest(ctx context.Context, method string, payload []byte) ([]byte, error)

func (*API) IsWatchEnabled

func (api *API) IsWatchEnabled() bool

IsWatchEnabled implements ProjectHost.

func (*API) LoadProject

func (api *API) LoadProject(configFileName string) (*ProjectResponse, error)

func (*API) Log

func (api *API) Log(s string)

Log implements ProjectHost.

func (*API) NewLine

func (api *API) NewLine() string

NewLine implements ProjectHost.

func (api *API) OnDiscoveredSymlink(info *project.ScriptInfo)

OnDiscoveredSymlink implements ProjectHost.

func (*API) ParseConfigFile

func (api *API) ParseConfigFile(configFileName string) (*ConfigFileResponse, error)

func (*API) PositionEncoding

func (api *API) PositionEncoding() lsproto.PositionEncodingKind

PositionEncoding implements ProjectHost.

type APIHost

type APIHost interface {
	FS() vfs.FS
	DefaultLibraryPath() string
	GetCurrentDirectory() string
	NewLine() string
}

type APIOptions

type APIOptions struct {
	Logger *project.Logger
}

type Callback

type Callback int
const (
	CallbackDirectoryExists Callback = 1 << iota
	CallbackFileExists
	CallbackGetAccessibleEntries
	CallbackReadFile
	CallbackRealpath
)

type ConfigFileResponse

type ConfigFileResponse struct {
	FileNames []string              `json:"fileNames"`
	Options   *core.CompilerOptions `json:"options"`
}

type ConfigureParams

type ConfigureParams struct {
	Callbacks []string `json:"callbacks"`
	LogFile   string   `json:"logFile"`
}

type GetSourceFileParams

type GetSourceFileParams struct {
	Project  Handle[project.Project] `json:"project"`
	FileName string                  `json:"fileName"`
}

type GetSymbolAtLocationParams

type GetSymbolAtLocationParams struct {
	Project  Handle[project.Project] `json:"project"`
	Location Handle[ast.Node]        `json:"location"`
}

type GetSymbolAtPositionParams

type GetSymbolAtPositionParams struct {
	Project  Handle[project.Project] `json:"project"`
	FileName string                  `json:"fileName"`
	Position uint32                  `json:"position"`
}

type GetSymbolsAtLocationsParams

type GetSymbolsAtLocationsParams struct {
	Project   Handle[project.Project] `json:"project"`
	Locations []Handle[ast.Node]      `json:"locations"`
}

type GetSymbolsAtPositionsParams

type GetSymbolsAtPositionsParams struct {
	Project   Handle[project.Project] `json:"project"`
	FileName  string                  `json:"fileName"`
	Positions []uint32                `json:"positions"`
}

type GetTypeOfSymbolParams

type GetTypeOfSymbolParams struct {
	Project Handle[project.Project] `json:"project"`
	Symbol  Handle[ast.Symbol]      `json:"symbol"`
}

type GetTypesOfSymbolsParams

type GetTypesOfSymbolsParams struct {
	Project Handle[project.Project] `json:"project"`
	Symbols []Handle[ast.Symbol]    `json:"symbols"`
}

type Handle

type Handle[T any] string

func FileHandle

func FileHandle(file *ast.SourceFile) Handle[ast.SourceFile]

func NodeHandle

func NodeHandle(node *ast.Node) Handle[ast.Node]

func ProjectHandle

func ProjectHandle(p *project.Project) Handle[project.Project]

func SymbolHandle

func SymbolHandle(symbol *ast.Symbol) Handle[ast.Symbol]

func TypeHandle

func TypeHandle(t *checker.Type) Handle[checker.Type]

type LoadProjectParams

type LoadProjectParams struct {
	ConfigFileName string `json:"configFileName"`
}

type MessagePackType

type MessagePackType uint8
const (
	MessagePackTypeFixedArray3 MessagePackType = 0x93
	MessagePackTypeBin8        MessagePackType = 0xC4
	MessagePackTypeBin16       MessagePackType = 0xC5
	MessagePackTypeBin32       MessagePackType = 0xC6
	MessagePackTypeU8          MessagePackType = 0xCC
)

type MessageType

type MessageType uint8
const (
	MessageTypeUnknown MessageType = iota
	MessageTypeRequest
	MessageTypeCallResponse
	MessageTypeCallError
	MessageTypeResponse
	MessageTypeError
	MessageTypeCall
)

func (MessageType) IsValid

func (m MessageType) IsValid() bool

func (MessageType) String

func (i MessageType) String() string

type Method

type Method string
const (
	MethodConfigure Method = "configure"
	MethodRelease   Method = "release"

	MethodParseConfigFile       Method = "parseConfigFile"
	MethodLoadProject           Method = "loadProject"
	MethodGetSymbolAtPosition   Method = "getSymbolAtPosition"
	MethodGetSymbolsAtPositions Method = "getSymbolsAtPositions"
	MethodGetSymbolAtLocation   Method = "getSymbolAtLocation"
	MethodGetSymbolsAtLocations Method = "getSymbolsAtLocations"
	MethodGetTypeOfSymbol       Method = "getTypeOfSymbol"
	MethodGetTypesOfSymbols     Method = "getTypesOfSymbols"
	MethodGetSourceFile         Method = "getSourceFile"
)

type ParseConfigFileParams

type ParseConfigFileParams struct {
	FileName string `json:"fileName"`
}

type ProjectResponse

type ProjectResponse struct {
	Id              Handle[project.Project] `json:"id"`
	ConfigFileName  string                  `json:"configFileName"`
	RootFiles       []string                `json:"rootFiles"`
	CompilerOptions *core.CompilerOptions   `json:"compilerOptions"`
}

func NewProjectResponse

func NewProjectResponse(project *project.Project) *ProjectResponse

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(options *ServerOptions) *Server

func (*Server) DefaultLibraryPath

func (s *Server) DefaultLibraryPath() string

DefaultLibraryPath implements APIHost.

func (*Server) DirectoryExists

func (s *Server) DirectoryExists(path string) bool

DirectoryExists implements vfs.FS.

func (*Server) FS

func (s *Server) FS() vfs.FS

FS implements APIHost.

func (*Server) FileExists

func (s *Server) FileExists(path string) bool

FileExists implements vfs.FS.

func (*Server) GetAccessibleEntries

func (s *Server) GetAccessibleEntries(path string) vfs.Entries

GetAccessibleEntries implements vfs.FS.

func (*Server) GetCurrentDirectory

func (s *Server) GetCurrentDirectory() string

GetCurrentDirectory implements APIHost.

func (*Server) NewLine

func (s *Server) NewLine() string

NewLine implements APIHost.

func (*Server) ReadFile

func (s *Server) ReadFile(path string) (contents string, ok bool)

ReadFile implements vfs.FS.

func (*Server) Realpath

func (s *Server) Realpath(path string) string

Realpath implements vfs.FS.

func (*Server) Remove

func (s *Server) Remove(path string) error

Remove implements vfs.FS.

func (*Server) Run

func (s *Server) Run() error

func (*Server) Stat

func (s *Server) Stat(path string) vfs.FileInfo

Stat implements vfs.FS.

func (*Server) UseCaseSensitiveFileNames

func (s *Server) UseCaseSensitiveFileNames() bool

UseCaseSensitiveFileNames implements vfs.FS.

func (*Server) WalkDir

func (s *Server) WalkDir(root string, walkFn vfs.WalkDirFunc) error

WalkDir implements vfs.FS.

func (*Server) WriteFile

func (s *Server) WriteFile(path string, data string, writeByteOrderMark bool) error

WriteFile implements vfs.FS.

type ServerOptions

type ServerOptions struct {
	In                 io.Reader
	Out                io.Writer
	Err                io.Writer
	Cwd                string
	NewLine            string
	DefaultLibraryPath string
}

type SymbolResponse

type SymbolResponse struct {
	Id         Handle[ast.Symbol] `json:"id"`
	Name       string             `json:"name"`
	Flags      uint32             `json:"flags"`
	CheckFlags uint32             `json:"checkFlags"`
}

func NewSymbolResponse

func NewSymbolResponse(symbol *ast.Symbol) *SymbolResponse

type TypeResponse

type TypeResponse struct {
	Id    Handle[checker.Type] `json:"id"`
	Flags uint32               `json:"flags"`
}

func NewTypeData

func NewTypeData(t *checker.Type) *TypeResponse

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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