Documentation
¶
Index ¶
- Constants
- Variables
- func DeprecateSortText(original sortText) sortText
- func DocumentURIToFileName(uri lsproto.DocumentUri) string
- func FileNameToDocumentURI(fileName string) lsproto.DocumentUri
- func IsInString(sourceFile *ast.SourceFile, position int, previousToken *ast.Node) bool
- func LanguageKindToScriptKind(languageID lsproto.LanguageKind) core.ScriptKind
- type CompletionKind
- type CompletionsTriggerCharacter
- type Converters
- func (c *Converters) FromLSPLocation(script Script, rng lsproto.Range) Location
- func (c *Converters) FromLSPRange(script Script, textRange lsproto.Range) core.TextRange
- func (c *Converters) FromLSPTextChange(script Script, change *lsproto.TextDocumentContentChangePartial) TextChange
- func (c *Converters) LineAndCharacterToPosition(script Script, lineAndCharacter lsproto.Position) core.TextPos
- func (c *Converters) PositionToLineAndCharacter(script Script, position core.TextPos) lsproto.Position
- func (c *Converters) ToLSPLocation(script Script, rng core.TextRange) lsproto.Location
- func (c *Converters) ToLSPRange(script Script, textRange core.TextRange) lsproto.Range
- type Host
- type JsxAttributeCompletionStyle
- type KeywordCompletionFilters
- type LanguageService
- func (l *LanguageService) GetDocumentDiagnostics(ctx context.Context, documentURI lsproto.DocumentUri) (*lsproto.DocumentDiagnosticReport, error)
- func (l *LanguageService) GetProgram() *compiler.Program
- func (l *LanguageService) GetSymbolAtLocation(ctx context.Context, node *ast.Node) *ast.Symbol
- func (l *LanguageService) GetSymbolAtPosition(ctx context.Context, fileName string, position int) (*ast.Symbol, error)
- func (l *LanguageService) GetTypeOfSymbol(ctx context.Context, symbol *ast.Symbol) *checker.Type
- func (l *LanguageService) ProvideCompletion(ctx context.Context, documentURI lsproto.DocumentUri, ...) (*lsproto.CompletionList, error)
- func (l *LanguageService) ProvideDefinition(ctx context.Context, documentURI lsproto.DocumentUri, ...) (*lsproto.Definition, error)
- func (l *LanguageService) ProvideHover(ctx context.Context, documentURI lsproto.DocumentUri, ...) (*lsproto.Hover, error)
- type LineMap
- type Location
- type PossibleTypeArgumentInfo
- type Script
- type ScriptElementKind
- type ScriptElementKindModifier
- type TextChange
- type UserPreferences
Constants ¶
View Source
const ( SortTextLocalDeclarationPriority sortText = "10" SortTextLocationPriority sortText = "11" SortTextOptionalMember sortText = "12" SortTextMemberDeclaredBySpreadAssignment sortText = "13" SortTextSuggestedClassMembers sortText = "14" SortTextGlobalsOrKeywords sortText = "15" SortTextAutoImportSuggestions sortText = "16" SortTextClassMemberSnippets sortText = "17" SortTextJavascriptIdentifiers sortText = "18" )
Variables ¶
View Source
var ( ErrNoSourceFile = errors.New("source file not found") ErrNoTokenAtPosition = errors.New("no token found at position") )
View Source
var TriggerCharacters = []string{".", `"`, "'", "`", "/", "@", "<", "#", " "}
Functions ¶
func DeprecateSortText ¶
func DeprecateSortText(original sortText) sortText
func DocumentURIToFileName ¶
func DocumentURIToFileName(uri lsproto.DocumentUri) string
func FileNameToDocumentURI ¶
func FileNameToDocumentURI(fileName string) lsproto.DocumentUri
func IsInString ¶
func LanguageKindToScriptKind ¶
func LanguageKindToScriptKind(languageID lsproto.LanguageKind) core.ScriptKind
Types ¶
type CompletionKind ¶
type CompletionKind int
const ( CompletionKindNone CompletionKind = iota CompletionKindObjectPropertyDeclaration CompletionKindGlobal CompletionKindPropertyAccess CompletionKindMemberLike CompletionKindString )
type CompletionsTriggerCharacter ¶
type CompletionsTriggerCharacter = string
"." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "
type Converters ¶
type Converters struct {
// contains filtered or unexported fields
}
func NewConverters ¶
func NewConverters(positionEncoding lsproto.PositionEncodingKind, getLineMap func(fileName string) *LineMap) *Converters
func (*Converters) FromLSPLocation ¶
func (c *Converters) FromLSPLocation(script Script, rng lsproto.Range) Location
func (*Converters) FromLSPRange ¶
func (*Converters) FromLSPTextChange ¶
func (c *Converters) FromLSPTextChange(script Script, change *lsproto.TextDocumentContentChangePartial) TextChange
func (*Converters) LineAndCharacterToPosition ¶
func (*Converters) PositionToLineAndCharacter ¶
func (*Converters) ToLSPLocation ¶
func (*Converters) ToLSPRange ¶
type JsxAttributeCompletionStyle ¶
type JsxAttributeCompletionStyle string
const ( JsxAttributeCompletionStyleAuto JsxAttributeCompletionStyle = "auto" JsxAttributeCompletionStyleBraces JsxAttributeCompletionStyle = "braces" JsxAttributeCompletionStyleNone JsxAttributeCompletionStyle = "none" )
type KeywordCompletionFilters ¶
type KeywordCompletionFilters int
const ( KeywordCompletionFiltersNone KeywordCompletionFilters = iota // No keywords KeywordCompletionFiltersAll // Every possible kewyord KeywordCompletionFiltersClassElementKeywords // Keywords inside class body KeywordCompletionFiltersInterfaceElementKeywords // Keywords inside interface body KeywordCompletionFiltersConstructorParameterKeywords // Keywords at constructor parameter KeywordCompletionFiltersFunctionLikeBodyKeywords // Keywords at function like body KeywordCompletionFiltersTypeAssertionKeywords KeywordCompletionFiltersTypeKeywords KeywordCompletionFiltersTypeKeyword // Literally just `type` KeywordCompletionFiltersLast = KeywordCompletionFiltersTypeKeyword )
type LanguageService ¶
type LanguageService struct {
// contains filtered or unexported fields
}
func NewLanguageService ¶
func NewLanguageService(ctx context.Context, host Host) *LanguageService
func (*LanguageService) GetDocumentDiagnostics ¶
func (l *LanguageService) GetDocumentDiagnostics(ctx context.Context, documentURI lsproto.DocumentUri) (*lsproto.DocumentDiagnosticReport, error)
func (*LanguageService) GetProgram ¶
func (l *LanguageService) GetProgram() *compiler.Program
GetProgram updates the program if the project version has changed.
func (*LanguageService) GetSymbolAtLocation ¶
func (*LanguageService) GetSymbolAtPosition ¶
func (*LanguageService) GetTypeOfSymbol ¶
func (*LanguageService) ProvideCompletion ¶
func (l *LanguageService) ProvideCompletion( ctx context.Context, documentURI lsproto.DocumentUri, position lsproto.Position, context *lsproto.CompletionContext, clientOptions *lsproto.CompletionClientCapabilities, preferences *UserPreferences, ) (*lsproto.CompletionList, error)
func (*LanguageService) ProvideDefinition ¶
func (l *LanguageService) ProvideDefinition(ctx context.Context, documentURI lsproto.DocumentUri, position lsproto.Position) (*lsproto.Definition, error)
func (*LanguageService) ProvideHover ¶
func (l *LanguageService) ProvideHover(ctx context.Context, documentURI lsproto.DocumentUri, position lsproto.Position) (*lsproto.Hover, error)
type LineMap ¶
type LineMap struct { LineStarts []core.TextPos AsciiOnly bool // TODO(jakebailey): collect ascii-only info per line }
func ComputeLineStarts ¶
type PossibleTypeArgumentInfo ¶
type PossibleTypeArgumentInfo struct {
// contains filtered or unexported fields
}
!!! signature help
type ScriptElementKind ¶
type ScriptElementKind string
const ( ScriptElementKindUnknown ScriptElementKind = "" ScriptElementKindWarning ScriptElementKind = "warning" // predefined type (void) or keyword (class) ScriptElementKindKeyword ScriptElementKind = "keyword" // top level script node ScriptElementKindScriptElement ScriptElementKind = "script" // module foo {} ScriptElementKindModuleElement ScriptElementKind = "module" // class X {} ScriptElementKindClassElement ScriptElementKind = "class" // var x = class X {} ScriptElementKindLocalClassElement ScriptElementKind = "local class" // interface Y {} ScriptElementKindInterfaceElement ScriptElementKind = "interface" // type T = ... ScriptElementKindTypeElement ScriptElementKind = "type" // enum E {} ScriptElementKindEnumElement ScriptElementKind = "enum" ScriptElementKindEnumMemberElement ScriptElementKind = "enum member" // Inside module and script only. // const v = ... ScriptElementKindVariableElement ScriptElementKind = "var" // Inside function. ScriptElementKindLocalVariableElement ScriptElementKind = "local var" // using foo = ... ScriptElementKindVariableUsingElement ScriptElementKind = "using" // await using foo = ... ScriptElementKindVariableAwaitUsingElement ScriptElementKind = "await using" // Inside module and script only. // function f() {} ScriptElementKindFunctionElement ScriptElementKind = "function" // Inside function. ScriptElementKindLocalFunctionElement ScriptElementKind = "local function" // class X { [public|private]* foo() {} } ScriptElementKindMemberFunctionElement ScriptElementKind = "method" // class X { [public|private]* [get|set] foo:number; } ScriptElementKindMemberGetAccessorElement ScriptElementKind = "getter" ScriptElementKindMemberSetAccessorElement ScriptElementKind = "setter" // class X { [public|private]* foo:number; } // interface Y { foo:number; } ScriptElementKindMemberVariableElement ScriptElementKind = "property" // class X { [public|private]* accessor foo: number; } ScriptElementKindMemberAccessorVariableElement ScriptElementKind = "accessor" // class X { constructor() { } } // class X { static { } } ScriptElementKindConstructorImplementationElement ScriptElementKind = "constructor" // interface Y { ():number; } ScriptElementKindCallSignatureElement ScriptElementKind = "call" // interface Y { []:number; } ScriptElementKindIndexSignatureElement ScriptElementKind = "index" // interface Y { new():Y; } ScriptElementKindConstructSignatureElement ScriptElementKind = "construct" // function foo(*Y*: string) ScriptElementKindParameterElement ScriptElementKind = "parameter" ScriptElementKindTypeParameterElement ScriptElementKind = "type parameter" ScriptElementKindPrimitiveType ScriptElementKind = "primitive type" ScriptElementKindLabel ScriptElementKind = "label" ScriptElementKindAlias ScriptElementKind = "alias" ScriptElementKindConstElement ScriptElementKind = "const" ScriptElementKindLetElement ScriptElementKind = "let" ScriptElementKindDirectory ScriptElementKind = "directory" ScriptElementKindExternalModuleName ScriptElementKind = "external module name" // String literal ScriptElementKindString ScriptElementKind = "string" // Jsdoc @link: in `{@link C link text}`, the before and after text "{@link " and "}" ScriptElementKindLink ScriptElementKind = "link" // Jsdoc @link: in `{@link C link text}`, the entity name "C" ScriptElementKindLinkName ScriptElementKind = "link name" // Jsdoc @link: in `{@link C link text}`, the link text "link text" ScriptElementKindLinkText ScriptElementKind = "link text" )
type ScriptElementKindModifier ¶
type ScriptElementKindModifier string
const ( ScriptElementKindModifierNone ScriptElementKindModifier = "" ScriptElementKindModifierPublic ScriptElementKindModifier = "public" ScriptElementKindModifierPrivate ScriptElementKindModifier = "private" ScriptElementKindModifierProtected ScriptElementKindModifier = "protected" ScriptElementKindModifierExported ScriptElementKindModifier = "export" ScriptElementKindModifierAmbient ScriptElementKindModifier = "declare" ScriptElementKindModifierStatic ScriptElementKindModifier = "static" ScriptElementKindModifierAbstract ScriptElementKindModifier = "abstract" ScriptElementKindModifierOptional ScriptElementKindModifier = "optional" ScriptElementKindModifierDeprecated ScriptElementKindModifier = "deprecated" ScriptElementKindModifierDts ScriptElementKindModifier = ".d.ts" ScriptElementKindModifierTs ScriptElementKindModifier = ".ts" ScriptElementKindModifierTsx ScriptElementKindModifier = ".tsx" ScriptElementKindModifierJs ScriptElementKindModifier = ".js" ScriptElementKindModifierJsx ScriptElementKindModifier = ".jsx" ScriptElementKindModifierJson ScriptElementKindModifier = ".json" ScriptElementKindModifierDmts ScriptElementKindModifier = ".d.mts" ScriptElementKindModifierMts ScriptElementKindModifier = ".mts" ScriptElementKindModifierMjs ScriptElementKindModifier = ".mjs" ScriptElementKindModifierDcts ScriptElementKindModifier = ".d.cts" ScriptElementKindModifierCts ScriptElementKindModifier = ".cts" ScriptElementKindModifierCjs ScriptElementKindModifier = ".cjs" )
type TextChange ¶
func (TextChange) ApplyTo ¶
func (t TextChange) ApplyTo(text string) string
type UserPreferences ¶
type UserPreferences struct { // Enables auto-import-style completions on partially-typed import statements. E.g., allows // `import write|` to be completed to `import { writeFile } from "fs"`. IncludeCompletionsForImportStatements *bool // Unless this option is `false`, member completion lists triggered with `.` will include entries // on potentially-null and potentially-undefined values, with insertion text to replace // preceding `.` tokens with `?.`. IncludeAutomaticOptionalChainCompletions *bool // If enabled, completions for class members (e.g. methods and properties) will include // a whole declaration for the member. // E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of // `class A { foo }`. IncludeCompletionsWithClassMemberSnippets *bool // If enabled, object literal methods will have a method declaration completion entry in addition // to the regular completion entry containing just the method name. // E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`, // in addition to `const objectLiteral: T = { foo }`. IncludeCompletionsWithObjectLiteralMethodSnippets *bool JsxAttributeCompletionStyle *JsxAttributeCompletionStyle }
Click to show internal directories.
Click to hide internal directories.