Documentation
¶
Index ¶
- func FindScriptAtPosition(content string, pos protocol.Position) (scriptContent string, startLine int, endLine int, found bool)
- func IsInFrontmatter(pos protocol.Position, content string) bool
- func IsInScript(pos protocol.Position, content string) bool
- type ComponentInfo
- type DocumentState
- type FieldInfo
- type GoplsProxy
- func (gp *GoplsProxy) Close() error
- func (gp *GoplsProxy) Completion(ctx context.Context, goPath string, line, char int) (*protocol.CompletionList, error)
- func (gp *GoplsProxy) CreateVirtualGoFile(uri string, frontmatter string) (string, error)
- func (gp *GoplsProxy) CreateVirtualGoFileFromScript(uri string, scriptContent string) (string, error)
- func (gp *GoplsProxy) Hover(ctx context.Context, goPath string, line, char int) (*protocol.Hover, error)
- type PositionMapper
- func (pm *PositionMapper) GoToGxc(line, char int) (int, int)
- func (pm *PositionMapper) GxcToGo(line, char int) (int, int)
- func (pm *PositionMapper) TransformCompletionItem(item protocol.CompletionItem) protocol.CompletionItem
- func (pm *PositionMapper) TransformPosition(pos protocol.Position) protocol.Position
- func (pm *PositionMapper) TransformRange(r protocol.Range) protocol.Range
- func (pm *PositionMapper) TransformTextEdit(edit protocol.TextEdit) protocol.TextEdit
- type ProjectContext
- type PropInfo
- type ScriptPositionMapper
- func (spm *ScriptPositionMapper) GoToGxc(line, char int) (int, int)
- func (spm *ScriptPositionMapper) GxcToGo(line, char int) (int, int)
- func (spm *ScriptPositionMapper) TransformCompletionItem(item protocol.CompletionItem) protocol.CompletionItem
- func (spm *ScriptPositionMapper) TransformPosition(pos protocol.Position) protocol.Position
- func (spm *ScriptPositionMapper) TransformRange(r protocol.Range) protocol.Range
- func (spm *ScriptPositionMapper) TransformTextEdit(edit protocol.TextEdit) protocol.TextEdit
- type Server
- func (s *Server) Completion(ctx context.Context, params *protocol.CompletionParams) (*protocol.CompletionList, error)
- func (s *Server) Definition(ctx context.Context, params *protocol.DefinitionParams) ([]protocol.Location, error)
- func (s *Server) DidChange(ctx context.Context, params *protocol.DidChangeTextDocumentParams) error
- func (s *Server) DidClose(ctx context.Context, params *protocol.DidCloseTextDocumentParams) error
- func (s *Server) DidOpen(ctx context.Context, params *protocol.DidOpenTextDocumentParams) error
- func (s *Server) DidSave(ctx context.Context, params *protocol.DidSaveTextDocumentParams) error
- func (s *Server) Exit(ctx context.Context) error
- func (s *Server) Hover(ctx context.Context, params *protocol.HoverParams) (*protocol.Hover, error)
- func (s *Server) Initialize(ctx context.Context, params *protocol.InitializeParams) (*protocol.InitializeResult, error)
- func (s *Server) Initialized(ctx context.Context, params *protocol.InitializedParams) error
- func (s *Server) Shutdown(ctx context.Context) error
- type StructInfo
- type TypeInferencer
- type TypeInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindScriptAtPosition ¶
func FindScriptAtPosition(content string, pos protocol.Position) (scriptContent string, startLine int, endLine int, found bool)
FindScriptAtPosition finds the script content and boundaries for the cursor position
func IsInFrontmatter ¶
IsInFrontmatter checks if position is within frontmatter region
Types ¶
type ComponentInfo ¶
func ParseComponentProps ¶
func ParseComponentProps(filePath string, content string) (*ComponentInfo, error)
type DocumentState ¶
type DocumentState struct {
URI protocol.DocumentURI
Content string
Version int32
}
type GoplsProxy ¶
type GoplsProxy struct {
// contains filtered or unexported fields
}
GoplsProxy wraps gopls subprocess
func NewGoplsProxy ¶
func NewGoplsProxy(rootDir string) (*GoplsProxy, error)
NewGoplsProxy spawns gopls and initializes it
func (*GoplsProxy) Close ¶
func (gp *GoplsProxy) Close() error
func (*GoplsProxy) Completion ¶
func (gp *GoplsProxy) Completion(ctx context.Context, goPath string, line, char int) (*protocol.CompletionList, error)
Completion requests completion from gopls
func (*GoplsProxy) CreateVirtualGoFile ¶
func (gp *GoplsProxy) CreateVirtualGoFile(uri string, frontmatter string) (string, error)
CreateVirtualGoFile converts frontmatter to valid Go file
func (*GoplsProxy) CreateVirtualGoFileFromScript ¶
func (gp *GoplsProxy) CreateVirtualGoFileFromScript(uri string, scriptContent string) (string, error)
CreateVirtualGoFileFromScript converts script content to valid Go file
type PositionMapper ¶
type PositionMapper struct {
// contains filtered or unexported fields
}
PositionMapper maps between .gxc and virtual .go positions
func NewPositionMapper ¶
func NewPositionMapper(content string) *PositionMapper
NewPositionMapper analyzes gxc content
func (*PositionMapper) GoToGxc ¶
func (pm *PositionMapper) GoToGxc(line, char int) (int, int)
GoToGxc converts virtual .go position back to .gxc position
func (*PositionMapper) GxcToGo ¶
func (pm *PositionMapper) GxcToGo(line, char int) (int, int)
GxcToGo converts .gxc position to virtual .go position
func (*PositionMapper) TransformCompletionItem ¶
func (pm *PositionMapper) TransformCompletionItem(item protocol.CompletionItem) protocol.CompletionItem
TransformCompletionItem transforms all position-related fields in a CompletionItem
func (*PositionMapper) TransformPosition ¶
func (pm *PositionMapper) TransformPosition(pos protocol.Position) protocol.Position
TransformPosition transforms a protocol.Position from .go to .gxc
func (*PositionMapper) TransformRange ¶
func (pm *PositionMapper) TransformRange(r protocol.Range) protocol.Range
TransformRange transforms a protocol.Range from .go to .gxc
func (*PositionMapper) TransformTextEdit ¶
func (pm *PositionMapper) TransformTextEdit(edit protocol.TextEdit) protocol.TextEdit
TransformTextEdit transforms a protocol.TextEdit from .go to .gxc
type ProjectContext ¶
type ProjectContext struct {
ModulePath string
Structs map[string]*StructInfo // fully qualified name -> struct
ImportPaths []string
RootDir string
}
ProjectContext holds project-wide type information
func NewProjectContext ¶
func NewProjectContext(rootDir string) (*ProjectContext, error)
NewProjectContext scans project and extracts type info
func (*ProjectContext) GetImportPaths ¶
func (pc *ProjectContext) GetImportPaths() []string
func (*ProjectContext) GetStruct ¶
func (pc *ProjectContext) GetStruct(typeName string) (*StructInfo, bool)
type PropInfo ¶
type PropInfo struct {
Name string
Type string
DefaultValue string
Documentation string
Position protocol.Range
}
type ScriptPositionMapper ¶
type ScriptPositionMapper struct {
// contains filtered or unexported fields
}
ScriptPositionMapper maps between .gxc script positions and virtual .go positions
func NewScriptPositionMapper ¶
func NewScriptPositionMapper(scriptContent string, scriptStart int) *ScriptPositionMapper
NewScriptPositionMapper creates a mapper for script tags
func (*ScriptPositionMapper) GoToGxc ¶
func (spm *ScriptPositionMapper) GoToGxc(line, char int) (int, int)
GoToGxc converts virtual .go position back to .gxc script position
func (*ScriptPositionMapper) GxcToGo ¶
func (spm *ScriptPositionMapper) GxcToGo(line, char int) (int, int)
GxcToGo converts .gxc script position to virtual .go position
func (*ScriptPositionMapper) TransformCompletionItem ¶
func (spm *ScriptPositionMapper) TransformCompletionItem(item protocol.CompletionItem) protocol.CompletionItem
TransformCompletionItem transforms all position-related fields in a CompletionItem
func (*ScriptPositionMapper) TransformPosition ¶
func (spm *ScriptPositionMapper) TransformPosition(pos protocol.Position) protocol.Position
TransformPosition transforms a protocol.Position from .go to .gxc
func (*ScriptPositionMapper) TransformRange ¶
func (spm *ScriptPositionMapper) TransformRange(r protocol.Range) protocol.Range
TransformRange transforms a protocol.Range from .go to .gxc
func (*ScriptPositionMapper) TransformTextEdit ¶
func (spm *ScriptPositionMapper) TransformTextEdit(edit protocol.TextEdit) protocol.TextEdit
TransformTextEdit transforms a protocol.TextEdit from .go to .gxc
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) Completion ¶
func (s *Server) Completion(ctx context.Context, params *protocol.CompletionParams) (*protocol.CompletionList, error)
func (*Server) Definition ¶
func (*Server) Initialize ¶
func (s *Server) Initialize(ctx context.Context, params *protocol.InitializeParams) (*protocol.InitializeResult, error)
func (*Server) Initialized ¶
type StructInfo ¶
type TypeInferencer ¶
type TypeInferencer struct {
// contains filtered or unexported fields
}
TypeInferencer infers types from Go AST without execution
func NewTypeInferencer ¶
func NewTypeInferencer() *TypeInferencer
func NewTypeInferencerWithProject ¶
func NewTypeInferencerWithProject(project *ProjectContext) *TypeInferencer
func (*TypeInferencer) GetAllTypes ¶
func (ti *TypeInferencer) GetAllTypes() map[string]TypeInfo
func (*TypeInferencer) InferTypes ¶
func (ti *TypeInferencer) InferTypes(frontmatter string) error
InferTypes parses frontmatter and extracts type information