import { CancellationToken, CompletionItem, CompletionItemKind, CompletionList, MarkupKind, TextEdit } from 'vscode-languageserver'; import { Declaration, FunctionDeclaration } from '../analyzer/declaration'; import { ImportResolver } from '../analyzer/importResolver'; import { SourceMapper } from '../analyzer/sourceMapper'; import { Symbol } from '../analyzer/symbol'; import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes'; import { ClassType } from '../analyzer/types'; import { ExecutionEnvironment } from '../common/configOptions'; import { ProgramView } from '../common/extensibility'; import '../common/serviceProviderExtensions'; import { Position } from '../common/textRange'; import { Uri } from '../common/uri/uri'; import { DecoratorNode, ExpressionNode, NameNode, ParseNode } from '../parser/parseNodes'; import { ParseFileResults } from '../parser/parser'; import { AutoImporter, AutoImportResult } from './autoImporter'; import { CompletionDetail, SymbolDetail } from './completionProviderUtils'; export interface CompletionItemData { uri: string; position: Position; autoImportText?: string; symbolLabel?: string; funcParensDisabled?: boolean; moduleUri?: string; } export interface CompletionOptions { readonly format: MarkupKind; readonly snippet: boolean; readonly lazyEdit: boolean; readonly triggerCharacter?: string; } export declare const autoImportDetail: string; export declare const indexValueDetail: string; export declare class CompletionProvider { protected readonly program: ProgramView; protected readonly fileUri: Uri; protected readonly position: Position; protected readonly options: CompletionOptions; protected readonly cancellationToken: CancellationToken; private static _mostRecentCompletions; private _stringLiteralContainer; protected readonly execEnv: ExecutionEnvironment; protected readonly parseResults: ParseFileResults; protected readonly sourceMapper: SourceMapper; protected itemToResolve: CompletionItem | undefined; constructor(program: ProgramView, fileUri: Uri, position: Position, options: CompletionOptions, cancellationToken: CancellationToken); getCompletions(): CompletionList | null; resolveCompletionItem(completionItem: CompletionItem): void; protected get evaluator(): TypeEvaluator; protected get importResolver(): ImportResolver; protected get configOptions(): import("../common/configOptions").ConfigOptions; protected getCompletionItemData(item: CompletionItem): CompletionItemData; protected getMethodOverrideCompletions(priorWord: string, partialName: NameNode, decorators?: DecoratorNode[]): CompletionMap | undefined; protected printOverriddenMethodBody(classType: ClassType, isStaticMethod: boolean, isProperty: boolean, decl: FunctionDeclaration, insertAwait?: boolean): string; protected createReplaceEdits(priorWord: string, node: ParseNode | undefined, text: string): TextEdit; protected shouldProcessDeclaration(declaration: Declaration | undefined): boolean; protected addSymbol(name: string, symbol: Symbol, priorWord: string, completionMap: CompletionMap, detail: SymbolDetail): void; protected getMemberAccessCompletions(leftExprNode: ExpressionNode, priorWord: string): CompletionMap | undefined; protected createAutoImporter(completionMap: CompletionMap, lazyEdit: boolean): AutoImporter; protected addAutoImportCompletions(priorWord: string, similarityLimit: number, lazyEdit: boolean, completionMap: CompletionMap, parensDisabled?: boolean): void; protected addImportResults(results: AutoImportResult[], priorWord: string, completionMap: CompletionMap, parensDisabled?: boolean): void; protected addExtraCommitChar(item: CompletionItem): void; protected addNameToCompletions(name: string, itemKind: CompletionItemKind, filter: string, completionMap: CompletionMap, detail?: CompletionDetail): void; protected getAutoImportText(importName: string, importFrom?: string, importAlias?: string): { source: string; importText: string; }; private get _fileContents(); private _getCompletions; private _tryGetNameCompletions; private _isWithinComment; private _getExpressionErrorCompletions; private _getMissingMemberAccessNameCompletions; private _isOverload; private _createSingleKeywordCompletion; private _addClassVariableTypeAnnotationCompletions; private _getClassVariableCompletions; private _getMethodOverloadsCompletions; private _printMethodSignature; private _getStatementCompletions; private _getExpressionCompletions; private _isIndexArgument; private _addCallArgumentCompletions; private _addLiteralValuesForArgument; private _addLiteralValuesForTargetType; private _getDictExpressionStringKeys; private _getSubTypesWithLiteralValues; private _getIndexKeyType; private _getIndexKeys; private _getLiteralCompletions; private _tryAddLiterals; private _tryAddTypedDictKeys; private _tryAddTypedDictKeysFromDictionary; private _tryNarrowTypedDicts; private _getQuoteInfo; private _tryAddTypedDictKeysFromIndexer; private _addStringLiteralToCompletions; private _getImportFromCompletions; private _addImplicitImportsToCompletion; private _findMatchingKeywords; private _addNamedParameters; private _addNamedParametersToMap; private _addSymbols; private _addSymbolsForSymbolTable; private _shouldShowAutoParensForClass; private _getRecentListIndex; private _makeSortText; private _formatInteger; private _convertDeclarationTypeToItemKind; private _convertTypeToItemKind; private _getImportModuleCompletions; private _isPossiblePropertyDeclaration; private _isEnumMember; } export declare class CompletionMap { private _completions; get size(): number; set(value: CompletionItem): void; get(key: string): CompletionItem | CompletionItem[] | undefined; has(label: string, predicate?: (other: CompletionItem | CompletionItem[], kind?: CompletionItemKind, autoImportText?: string) => boolean, kind?: CompletionItemKind, autImportText?: string): boolean; clear(): void; delete(key: string): boolean; toArray(): CompletionItem[]; static matchKindAndImportText(completionItemOrItems: CompletionItem | CompletionItem[], getCompletionData: (d: CompletionItem) => CompletionItemData | undefined, kind?: CompletionItemKind, autoImportText?: string): boolean; static labelOnlyIgnoringAutoImports(completionItemOrItems: CompletionItem | CompletionItem[], getCompletionData: (d: CompletionItem) => CompletionItemData | undefined): boolean; }