@zzzen/pyright-internal 1.2.0-dev.20230409 → 1.2.0-dev.20230423
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/binder.js +1 -3
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +22 -0
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.d.ts +1 -1
- package/dist/analyzer/commentUtils.js +18 -3
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +112 -49
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +2 -1
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +2 -3
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.d.ts +1 -1
- package/dist/analyzer/enums.js +114 -55
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +9 -4
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +6 -2
- package/dist/analyzer/patternMatching.js +109 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +9 -7
- package/dist/analyzer/program.js +106 -46
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -2
- package/dist/analyzer/service.js +6 -6
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -3
- package/dist/analyzer/sourceFile.js +1 -9
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +1 -1
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +147 -38
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -3
- package/dist/analyzer/typeEvaluatorTypes.js +0 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +2 -0
- package/dist/analyzer/typeGuards.js +172 -175
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +21 -18
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +13 -13
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -1
- package/dist/analyzer/types.js +20 -4
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -1
- package/dist/common/configOptions.js +3 -3
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +7 -4
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +2 -1
- package/dist/common/fullAccessHost.js +11 -1
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +3 -2
- package/dist/common/host.js +1 -1
- package/dist/common/host.js.map +1 -1
- package/dist/languageServerBase.js +3 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -1
- package/dist/languageService/autoImporter.js +2 -2
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +17 -4
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +259 -93
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.js +11 -3
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +1 -1
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +28 -28
- package/dist/languageService/hoverProvider.js +151 -118
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importAdder.d.ts +13 -2
- package/dist/languageService/importAdder.js +73 -26
- package/dist/languageService/importAdder.js.map +1 -1
- package/dist/languageService/indentationUtils.js +9 -4
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/insertionPointUtils.js +2 -2
- package/dist/languageService/insertionPointUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +2 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -0
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/completions.test.js +412 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +11 -1
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.function.docFromStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.inherited.function.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js +16 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.variableDocStrings.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.variableDocStrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +11 -1
- package/dist/tests/fourslash/hover.docstring.overloads.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.docstring.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +5 -6
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js +1 -4
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +10 -9
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js +54 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js +46 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js +39 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/fourSlashParser.js +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +6 -1
- package/dist/tests/harness/fourslash/testState.js +38 -6
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/testHost.js +1 -1
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/vfs/factory.js +2 -2
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.js +26 -25
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +6 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/importAdder.test.js +69 -1
- package/dist/tests/importAdder.test.js.map +1 -1
- package/dist/tests/indentationUtils.ptvs.test.js +2 -2
- package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
- package/dist/tests/indentationUtils.test.js +18 -0
- package/dist/tests/indentationUtils.test.js.map +1 -1
- package/dist/tests/moveSymbol.insertion.test.js +25 -4
- package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +8 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +5 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +5 -0
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/workspaceFactory.js +1 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
@@ -29,12 +29,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
29
29
|
return result;
|
30
30
|
};
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
32
|
-
exports.
|
32
|
+
exports.HoverProvider = void 0;
|
33
33
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
34
34
|
const docStringConversion_1 = require("../analyzer/docStringConversion");
|
35
35
|
const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
|
36
|
-
const types_1 = require("../analyzer/types");
|
37
36
|
const typeUtils_1 = require("../analyzer/typeUtils");
|
37
|
+
const types_1 = require("../analyzer/types");
|
38
38
|
const cancellationUtils_1 = require("../common/cancellationUtils");
|
39
39
|
const debug_1 = require("../common/debug");
|
40
40
|
const extensibility_1 = require("../common/extensibility");
|
@@ -44,22 +44,44 @@ const textRange_1 = require("../common/textRange");
|
|
44
44
|
const parseNodes_1 = require("../parser/parseNodes");
|
45
45
|
const tooltipUtils_1 = require("./tooltipUtils");
|
46
46
|
class HoverProvider {
|
47
|
-
|
47
|
+
constructor(_program, _filePath, _position, _format, _supportTelemetry, _token) {
|
48
|
+
this._program = _program;
|
49
|
+
this._filePath = _filePath;
|
50
|
+
this._position = _position;
|
51
|
+
this._format = _format;
|
52
|
+
this._supportTelemetry = _supportTelemetry;
|
53
|
+
this._token = _token;
|
54
|
+
this._parseResults = this._program.getParseResults(this._filePath);
|
55
|
+
this._sourceMapper = this._program.getSourceMapper(this._filePath, this._token, /* mapCompiled */ true);
|
56
|
+
}
|
57
|
+
getHover() {
|
58
|
+
return this._convertHoverResults(this._getHoverResult());
|
59
|
+
}
|
60
|
+
get _evaluator() {
|
61
|
+
return this._program.evaluator;
|
62
|
+
}
|
63
|
+
get _functionSignatureDisplay() {
|
64
|
+
return this._program.configOptions.functionSignatureDisplay;
|
65
|
+
}
|
66
|
+
_getHoverResult() {
|
48
67
|
var _a;
|
49
|
-
(0, cancellationUtils_1.throwIfCancellationRequested)(
|
50
|
-
|
68
|
+
(0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
|
69
|
+
if (!this._parseResults) {
|
70
|
+
return undefined;
|
71
|
+
}
|
72
|
+
const offset = (0, positionUtils_1.convertPositionToOffset)(this._position, this._parseResults.tokenizerOutput.lines);
|
51
73
|
if (offset === undefined) {
|
52
74
|
return undefined;
|
53
75
|
}
|
54
|
-
const node = ParseTreeUtils.findNodeByOffset(
|
76
|
+
const node = ParseTreeUtils.findNodeByOffset(this._parseResults.parseTree, offset);
|
55
77
|
if (node === undefined) {
|
56
78
|
return undefined;
|
57
79
|
}
|
58
80
|
const results = {
|
59
81
|
parts: [],
|
60
82
|
range: {
|
61
|
-
start: (0, positionUtils_1.convertOffsetToPosition)(node.start,
|
62
|
-
end: (0, positionUtils_1.convertOffsetToPosition)(textRange_1.TextRange.getEnd(node),
|
83
|
+
start: (0, positionUtils_1.convertOffsetToPosition)(node.start, this._parseResults.tokenizerOutput.lines),
|
84
|
+
end: (0, positionUtils_1.convertOffsetToPosition)(textRange_1.TextRange.getEnd(node), this._parseResults.tokenizerOutput.lines),
|
63
85
|
},
|
64
86
|
};
|
65
87
|
if (node.nodeType === 38 /* Name */) {
|
@@ -67,11 +89,11 @@ class HoverProvider {
|
|
67
89
|
let declarations = extensibility_1.Extensions.getProgramExtensions(node)
|
68
90
|
.map((e) => {
|
69
91
|
var _a;
|
70
|
-
return ((_a = e.declarationProviderExtension) === null || _a === void 0 ? void 0 : _a.tryGetDeclarations(
|
92
|
+
return ((_a = e.declarationProviderExtension) === null || _a === void 0 ? void 0 : _a.tryGetDeclarations(this._evaluator, node, extensibility_1.DeclarationUseCase.Definition, this._token)) || [];
|
71
93
|
})
|
72
94
|
.flat();
|
73
95
|
if (declarations.length === 0) {
|
74
|
-
declarations =
|
96
|
+
declarations = this._evaluator.getDeclarationsForNameNode(node);
|
75
97
|
}
|
76
98
|
if (declarations && declarations.length > 0) {
|
77
99
|
// In most cases, it's best to treat the first declaration as the
|
@@ -92,7 +114,7 @@ class HoverProvider {
|
|
92
114
|
// Slots cannot have docstrings, so pick the secondary.
|
93
115
|
primaryDeclaration = declarations[1];
|
94
116
|
}
|
95
|
-
this._addResultsForDeclaration(
|
117
|
+
this._addResultsForDeclaration(results.parts, primaryDeclaration, node);
|
96
118
|
// Add the lastKnownModule for this declaration. We'll use this
|
97
119
|
// in telemetry for hover.
|
98
120
|
results.lastKnownModule = primaryDeclaration.moduleName;
|
@@ -103,7 +125,7 @@ class HoverProvider {
|
|
103
125
|
// is a directory (a namespace package), and we don't want to provide any hover
|
104
126
|
// information in that case.
|
105
127
|
if (results.parts.length === 0) {
|
106
|
-
const type = this._getType(
|
128
|
+
const type = this._getType(node);
|
107
129
|
let typeText;
|
108
130
|
if ((0, types_1.isModule)(type)) {
|
109
131
|
// Handle modules specially because submodules aren't associated with
|
@@ -118,38 +140,36 @@ class HoverProvider {
|
|
118
140
|
isProperty = true;
|
119
141
|
label = 'property';
|
120
142
|
}
|
121
|
-
typeText = (0, tooltipUtils_1.getToolTipForType)(type, label, node.value,
|
143
|
+
typeText = (0, tooltipUtils_1.getToolTipForType)(type, label, node.value, this._evaluator, isProperty, this._functionSignatureDisplay);
|
122
144
|
}
|
123
145
|
this._addResultsPart(results.parts, typeText, /* python */ true);
|
124
|
-
this._addDocumentationPart(
|
125
|
-
/* resolvedDecl */ undefined);
|
146
|
+
this._addDocumentationPart(results.parts, node, /* resolvedDecl */ undefined);
|
126
147
|
}
|
127
148
|
}
|
128
149
|
}
|
129
150
|
else if (node.nodeType === 49 /* String */) {
|
130
|
-
const type = (_a =
|
151
|
+
const type = (_a = this._evaluator.getExpectedType(node)) === null || _a === void 0 ? void 0 : _a.type;
|
131
152
|
if (type !== undefined) {
|
132
|
-
this._tryAddPartsForTypedDictKey(
|
153
|
+
this._tryAddPartsForTypedDictKey(node, type, results.parts);
|
133
154
|
}
|
134
155
|
}
|
135
156
|
return results.parts.length > 0 ? results : undefined;
|
136
157
|
}
|
137
|
-
|
158
|
+
_addResultsForDeclaration(parts, declaration, node) {
|
138
159
|
var _a, _b;
|
139
|
-
const resolvedDecl =
|
160
|
+
const resolvedDecl = this._evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ true);
|
140
161
|
if (!resolvedDecl) {
|
141
|
-
this._addResultsPart(parts, `(import) ` + node.value + this._getTypeText(node,
|
142
|
-
/* python */ true);
|
162
|
+
this._addResultsPart(parts, `(import) ` + node.value + this._getTypeText(node), /* python */ true);
|
143
163
|
return;
|
144
164
|
}
|
145
165
|
switch (resolvedDecl.type) {
|
146
166
|
case 0 /* Intrinsic */: {
|
147
|
-
this._addResultsPart(parts, node.value + this._getTypeText(node
|
148
|
-
this._addDocumentationPart(
|
167
|
+
this._addResultsPart(parts, node.value + this._getTypeText(node), /* python */ true);
|
168
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
149
169
|
break;
|
150
170
|
}
|
151
171
|
case 1 /* Variable */: {
|
152
|
-
let label = resolvedDecl.isConstant ||
|
172
|
+
let label = resolvedDecl.isConstant || this._evaluator.isFinalVariableDeclaration(resolvedDecl)
|
153
173
|
? 'constant'
|
154
174
|
: 'variable';
|
155
175
|
// If the named node is an aliased import symbol, we can't call
|
@@ -174,12 +194,12 @@ class HoverProvider {
|
|
174
194
|
}
|
175
195
|
// Determine if this identifier is a type alias. If so, expand
|
176
196
|
// the type alias when printing the type information.
|
177
|
-
let type = this._getType(
|
197
|
+
let type = this._getType(typeNode);
|
178
198
|
// We may have more type information in the alternativeTypeNode. Use that if it's better.
|
179
199
|
if ((0, types_1.isUnknown)(type) &&
|
180
200
|
resolvedDecl.alternativeTypeNode &&
|
181
201
|
(0, parseNodes_1.isExpressionNode)(resolvedDecl.alternativeTypeNode)) {
|
182
|
-
const inferredType = this._getType(
|
202
|
+
const inferredType = this._getType(resolvedDecl.alternativeTypeNode);
|
183
203
|
if (!(0, types_1.isUnknown)(inferredType)) {
|
184
204
|
type = inferredType;
|
185
205
|
typeNode = resolvedDecl.alternativeTypeNode;
|
@@ -200,79 +220,91 @@ class HoverProvider {
|
|
200
220
|
}
|
201
221
|
}
|
202
222
|
}
|
203
|
-
|
204
|
-
this.
|
205
|
-
|
223
|
+
let typeText;
|
224
|
+
const varType = this._getType(typeNode);
|
225
|
+
// Handle the case where type is a function and was assigned to a variable.
|
226
|
+
if (varType.category === 5 /* Function */ ||
|
227
|
+
varType.category === 6 /* OverloadedFunction */) {
|
228
|
+
typeText = (0, tooltipUtils_1.getToolTipForType)(type, label, node.value, this._evaluator,
|
229
|
+
/* isProperty */ false, this._functionSignatureDisplay);
|
230
|
+
}
|
231
|
+
else {
|
232
|
+
typeText = typeVarName || node.value + this._getTypeText(typeNode, expandTypeAlias);
|
233
|
+
typeText = `(${label}) ` + typeText;
|
234
|
+
}
|
235
|
+
this._addResultsPart(parts, typeText, /* python */ true);
|
236
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
206
237
|
break;
|
207
238
|
}
|
208
239
|
case 2 /* Parameter */: {
|
209
240
|
if (resolvedDecl.inferredName && resolvedDecl.inferredTypeNodes) {
|
210
|
-
this._addResultsPart(parts, '(parameter) ' +
|
211
|
-
resolvedDecl.inferredName +
|
212
|
-
this._getTypesText(resolvedDecl.inferredTypeNodes, evaluator),
|
241
|
+
this._addResultsPart(parts, '(parameter) ' + resolvedDecl.inferredName + this._getTypesText(resolvedDecl.inferredTypeNodes),
|
213
242
|
/* python */ true);
|
214
243
|
}
|
215
244
|
else {
|
216
|
-
this._addResultsPart(parts, '(parameter) ' + node.value + this._getTypeText(node
|
245
|
+
this._addResultsPart(parts, '(parameter) ' + node.value + this._getTypeText(node),
|
217
246
|
/* python */ true);
|
218
247
|
}
|
219
248
|
if (resolvedDecl.docString) {
|
220
249
|
this._addResultsPart(parts, resolvedDecl.docString);
|
221
250
|
}
|
222
|
-
this._addDocumentationPart(
|
251
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
223
252
|
break;
|
224
253
|
}
|
225
254
|
case 3 /* TypeParameter */: {
|
226
|
-
this._addResultsPart(parts, '(type parameter) ' + node.value + this._getTypeText(node
|
255
|
+
this._addResultsPart(parts, '(type parameter) ' + node.value + this._getTypeText(node),
|
227
256
|
/* python */ true);
|
228
|
-
this._addDocumentationPart(
|
257
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
229
258
|
break;
|
230
259
|
}
|
231
260
|
case 6 /* Class */:
|
232
261
|
case 7 /* SpecialBuiltInClass */: {
|
233
262
|
const nameNode = resolvedDecl.type === 6 /* Class */ ? resolvedDecl.node.name : node;
|
234
|
-
if (this._addInitOrNewMethodInsteadIfCallNode(
|
263
|
+
if (this._addInitOrNewMethodInsteadIfCallNode(node, parts, resolvedDecl)) {
|
235
264
|
return;
|
236
265
|
}
|
237
266
|
this._addResultsPart(parts, '(class) ' + nameNode.value, /* python */ true);
|
238
|
-
this._addDocumentationPart(
|
267
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
239
268
|
break;
|
240
269
|
}
|
241
270
|
case 5 /* Function */: {
|
242
271
|
let label = 'function';
|
243
272
|
let isProperty = false;
|
244
273
|
if (resolvedDecl.isMethod) {
|
245
|
-
const declaredType = (_b =
|
274
|
+
const declaredType = (_b = this._evaluator.getTypeForDeclaration(resolvedDecl)) === null || _b === void 0 ? void 0 : _b.type;
|
246
275
|
isProperty = !!declaredType && (0, typeUtils_1.isMaybeDescriptorInstance)(declaredType, /* requireSetter */ false);
|
247
276
|
label = isProperty ? 'property' : 'method';
|
248
277
|
}
|
249
|
-
let type = this._getType(
|
278
|
+
let type = this._getType(node);
|
250
279
|
const resolvedType = extensibility_1.Extensions.getProgramExtensions(resolvedDecl.node)
|
251
|
-
.map((e) => {
|
252
|
-
|
280
|
+
.map((e) => {
|
281
|
+
var _a;
|
282
|
+
return (_a = e.typeProviderExtension) === null || _a === void 0 ? void 0 : _a.tryGetFunctionNodeType(resolvedDecl.node, this._evaluator, this._token);
|
283
|
+
})
|
284
|
+
.find((t) => !!t) || this._getType(resolvedDecl.node.name);
|
253
285
|
type = (0, types_1.isAnyOrUnknown)(type) ? resolvedType : type;
|
254
|
-
const signatureString = (0, tooltipUtils_1.getToolTipForType)(type, label, node.value,
|
286
|
+
const signatureString = (0, tooltipUtils_1.getToolTipForType)(type, label, node.value, this._evaluator, isProperty, this._functionSignatureDisplay);
|
255
287
|
this._addResultsPart(parts, signatureString, /* python */ true);
|
256
|
-
this._addDocumentationPart(
|
288
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
257
289
|
break;
|
258
290
|
}
|
259
291
|
case 8 /* Alias */: {
|
260
292
|
// First the 'module' header.
|
261
293
|
this._addResultsPart(parts, '(module) ' + node.value, /* python */ true);
|
262
|
-
this._addDocumentationPart(
|
294
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
263
295
|
break;
|
264
296
|
}
|
265
297
|
case 4 /* TypeAlias */: {
|
266
|
-
const typeText = node.value + this._getTypeText(node,
|
298
|
+
const typeText = node.value + this._getTypeText(node, /* expandTypeAlias */ true);
|
267
299
|
this._addResultsPart(parts, `(type alias) ${typeText}`, /* python */ true);
|
268
|
-
this._addDocumentationPart(
|
300
|
+
this._addDocumentationPart(parts, node, resolvedDecl);
|
269
301
|
break;
|
270
302
|
}
|
271
303
|
default:
|
272
304
|
(0, debug_1.assertNever)(resolvedDecl);
|
273
305
|
}
|
274
306
|
}
|
275
|
-
|
307
|
+
_tryAddPartsForTypedDictKey(node, type, parts) {
|
276
308
|
// If the expected type is a TypedDict and the current node is a key entry then we can provide a tooltip
|
277
309
|
// with the type of the TypedDict key and its docstring, if available.
|
278
310
|
(0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
|
@@ -286,7 +318,7 @@ class HoverProvider {
|
|
286
318
|
parts.push({ text: '\n\n---\n' });
|
287
319
|
}
|
288
320
|
// e.g. (key) name: str
|
289
|
-
const text = '(key) ' + node.value + ': ' +
|
321
|
+
const text = '(key) ' + node.value + ': ' + this._evaluator.printType(entry.valueType);
|
290
322
|
this._addResultsPart(parts, text, /* python */ true);
|
291
323
|
const declarations = (_b = subtype.details.fields.get(node.value)) === null || _b === void 0 ? void 0 : _b.getDeclarations();
|
292
324
|
if (declarations !== undefined && (declarations === null || declarations === void 0 ? void 0 : declarations.length) !== 0) {
|
@@ -295,14 +327,14 @@ class HoverProvider {
|
|
295
327
|
// than one declaration for a TypedDict key variable.
|
296
328
|
const declaration = declarations[0];
|
297
329
|
if (declaration.type === 1 /* Variable */ && declaration.docString !== undefined) {
|
298
|
-
this._addDocumentationPartForType(
|
330
|
+
this._addDocumentationPartForType(parts, subtype, declaration);
|
299
331
|
}
|
300
332
|
}
|
301
333
|
}
|
302
334
|
}
|
303
335
|
});
|
304
336
|
}
|
305
|
-
|
337
|
+
_addInitOrNewMethodInsteadIfCallNode(node, parts, declaration) {
|
306
338
|
var _a, _b;
|
307
339
|
// If the class is used as part of a call (i.e. it is being
|
308
340
|
// instantiated), include the constructor arguments within the
|
@@ -324,11 +356,11 @@ class HoverProvider {
|
|
324
356
|
return false;
|
325
357
|
}
|
326
358
|
// Get the init method for this class.
|
327
|
-
const classType = this._getType(
|
359
|
+
const classType = this._getType(node);
|
328
360
|
if (!(0, types_1.isInstantiableClass)(classType)) {
|
329
361
|
return false;
|
330
362
|
}
|
331
|
-
const instanceType = this._getType(
|
363
|
+
const instanceType = this._getType(callLeftNode.parent);
|
332
364
|
if (!(0, types_1.isClassInstance)(instanceType)) {
|
333
365
|
return false;
|
334
366
|
}
|
@@ -337,9 +369,9 @@ class HoverProvider {
|
|
337
369
|
// Don't exclude `object.__init__` since in the plain case we want to show Foo().
|
338
370
|
const initMember = (0, typeUtils_1.lookUpClassMember)(classType, '__init__', 8 /* SkipInstanceVariables */);
|
339
371
|
if (initMember) {
|
340
|
-
const functionType =
|
372
|
+
const functionType = this._evaluator.getTypeOfMember(initMember);
|
341
373
|
if ((0, types_1.isFunction)(functionType) || (0, types_1.isOverloadedFunction)(functionType)) {
|
342
|
-
methodType = this._bindFunctionToClassOrObject(
|
374
|
+
methodType = this._bindFunctionToClassOrObject(node, instanceType, functionType);
|
343
375
|
}
|
344
376
|
}
|
345
377
|
// If there was no `__init__`, excluding `object` class `__init__`, or if `__init__` only had default params (*args: Any, **kwargs: Any) or no params (),
|
@@ -350,52 +382,52 @@ class HoverProvider {
|
|
350
382
|
(types_1.FunctionType.hasDefaultParameters(methodType) || methodType.details.parameters.length === 0))) {
|
351
383
|
const newMember = (0, typeUtils_1.lookUpClassMember)(classType, '__new__', 4 /* SkipObjectBaseClass */ | 8 /* SkipInstanceVariables */);
|
352
384
|
if (newMember) {
|
353
|
-
const newMemberType =
|
385
|
+
const newMemberType = this._evaluator.getTypeOfMember(newMember);
|
354
386
|
// Prefer `__new__` if it doesn't have default params (*args: Any, **kwargs: Any) or no params ().
|
355
387
|
if ((0, types_1.isFunction)(newMemberType) || (0, types_1.isOverloadedFunction)(newMemberType)) {
|
356
388
|
// Set `treatConstructorAsClassMember` to true to exclude `cls` as a parameter.
|
357
|
-
methodType = this._bindFunctionToClassOrObject(
|
389
|
+
methodType = this._bindFunctionToClassOrObject(node, instanceType, newMemberType,
|
358
390
|
/* treatConstructorAsClassMember */ true);
|
359
391
|
}
|
360
392
|
}
|
361
393
|
}
|
362
394
|
if (methodType && ((0, types_1.isFunction)(methodType) || (0, types_1.isOverloadedFunction)(methodType))) {
|
363
|
-
this._addResultsPart(parts, (0, tooltipUtils_1.getConstructorTooltip)(node.value, methodType,
|
395
|
+
this._addResultsPart(parts, (0, tooltipUtils_1.getConstructorTooltip)(node.value, methodType, this._evaluator, this._functionSignatureDisplay),
|
364
396
|
/* python */ true);
|
365
|
-
const addedDoc = this._addDocumentationPartForType(
|
397
|
+
const addedDoc = this._addDocumentationPartForType(parts, methodType, declaration);
|
366
398
|
if (!addedDoc) {
|
367
|
-
this._addDocumentationPartForType(
|
399
|
+
this._addDocumentationPartForType(parts, classType, declaration);
|
368
400
|
}
|
369
401
|
return true;
|
370
402
|
}
|
371
403
|
return false;
|
372
404
|
}
|
373
|
-
|
374
|
-
const type = this._getType(
|
375
|
-
return ': ' +
|
405
|
+
_getTypeText(node, expandTypeAlias = false) {
|
406
|
+
const type = this._getType(node);
|
407
|
+
return ': ' + this._evaluator.printType(type, { expandTypeAlias });
|
376
408
|
}
|
377
|
-
|
378
|
-
const type = (0, tooltipUtils_1.combineExpressionTypes)(nodes,
|
379
|
-
return ': ' +
|
409
|
+
_getTypesText(nodes, expandTypeAlias = false) {
|
410
|
+
const type = (0, tooltipUtils_1.combineExpressionTypes)(nodes, this._evaluator);
|
411
|
+
return ': ' + this._evaluator.printType(type, { expandTypeAlias });
|
380
412
|
}
|
381
|
-
|
382
|
-
const methodType =
|
413
|
+
_bindFunctionToClassOrObject(node, baseType, memberType, treatConstructorAsClassMember) {
|
414
|
+
const methodType = this._evaluator.bindFunctionToClassOrObject(baseType, memberType,
|
383
415
|
/* memberClass */ undefined,
|
384
416
|
/* errorNode */ undefined,
|
385
417
|
/* recursiveCount */ undefined, treatConstructorAsClassMember);
|
386
418
|
if (!methodType) {
|
387
419
|
return undefined;
|
388
420
|
}
|
389
|
-
return this._limitOverloadBasedOnCall(
|
421
|
+
return this._limitOverloadBasedOnCall(methodType, node);
|
390
422
|
}
|
391
|
-
|
423
|
+
_getType(node) {
|
392
424
|
var _a;
|
393
425
|
// It does common work necessary for hover for a type we got
|
394
426
|
// from raw type evaluator.
|
395
|
-
const type = (_a =
|
396
|
-
return this._limitOverloadBasedOnCall(
|
427
|
+
const type = (_a = this._evaluator.getType(node)) !== null && _a !== void 0 ? _a : types_1.UnknownType.create();
|
428
|
+
return this._limitOverloadBasedOnCall(type, node);
|
397
429
|
}
|
398
|
-
|
430
|
+
_limitOverloadBasedOnCall(type, node) {
|
399
431
|
// If it's an overloaded function, see if it's part of a call expression.
|
400
432
|
// If so, we may be able to eliminate some of the overloads based on
|
401
433
|
// the overload resolution.
|
@@ -406,7 +438,7 @@ class HoverProvider {
|
|
406
438
|
if (!callNode) {
|
407
439
|
return type;
|
408
440
|
}
|
409
|
-
const callTypeResult =
|
441
|
+
const callTypeResult = this._evaluator.getTypeResult(callNode);
|
410
442
|
if (!callTypeResult ||
|
411
443
|
!callTypeResult.overloadsUsedForCall ||
|
412
444
|
callTypeResult.overloadsUsedForCall.length === 0) {
|
@@ -417,76 +449,77 @@ class HoverProvider {
|
|
417
449
|
}
|
418
450
|
return types_1.OverloadedFunctionType.create(callTypeResult.overloadsUsedForCall);
|
419
451
|
}
|
420
|
-
|
421
|
-
const type = this._getType(
|
422
|
-
this._addDocumentationPartForType(
|
452
|
+
_addDocumentationPart(parts, node, resolvedDecl) {
|
453
|
+
const type = this._getType(node);
|
454
|
+
this._addDocumentationPartForType(parts, type, resolvedDecl, node.value);
|
423
455
|
}
|
424
|
-
|
425
|
-
const docString = (0, tooltipUtils_1.getDocumentationPartsForTypeAndDecl)(
|
456
|
+
_addDocumentationPartForType(parts, type, resolvedDecl, name) {
|
457
|
+
const docString = (0, tooltipUtils_1.getDocumentationPartsForTypeAndDecl)(this._sourceMapper, type, resolvedDecl, this._evaluator, {
|
458
|
+
name,
|
459
|
+
});
|
426
460
|
if (docString) {
|
427
|
-
this._addDocumentationResultsPart(
|
461
|
+
this._addDocumentationResultsPart(parts, docString);
|
428
462
|
return true;
|
429
463
|
}
|
430
464
|
return false;
|
431
465
|
}
|
432
|
-
|
466
|
+
_addDocumentationResultsPart(parts, docString) {
|
433
467
|
if (docString) {
|
434
|
-
if (
|
468
|
+
if (this._format === vscode_languageserver_1.MarkupKind.Markdown) {
|
435
469
|
const markDown = (0, docStringConversion_1.convertDocStringToMarkdown)(docString);
|
436
470
|
if (parts.length > 0 && markDown.length > 0) {
|
437
471
|
parts.push({ text: '---\n' });
|
438
472
|
}
|
439
473
|
this._addResultsPart(parts, markDown);
|
440
474
|
}
|
441
|
-
else if (
|
475
|
+
else if (this._format === vscode_languageserver_1.MarkupKind.PlainText) {
|
442
476
|
this._addResultsPart(parts, (0, docStringConversion_1.convertDocStringToPlainText)(docString));
|
443
477
|
}
|
444
478
|
else {
|
445
|
-
(0, debug_1.fail)(`Unsupported markup type: ${
|
479
|
+
(0, debug_1.fail)(`Unsupported markup type: ${this._format}`);
|
446
480
|
}
|
447
481
|
}
|
448
482
|
}
|
449
|
-
|
483
|
+
_addResultsPart(parts, text, python = false) {
|
450
484
|
parts.push({
|
451
485
|
python,
|
452
486
|
text,
|
453
487
|
});
|
454
488
|
}
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
(0, debug_1.fail)(`Unsupported markup type: ${format}`);
|
489
|
+
_convertHoverResults(hoverResults) {
|
490
|
+
if (!hoverResults) {
|
491
|
+
return undefined;
|
492
|
+
}
|
493
|
+
let markupString = hoverResults.parts
|
494
|
+
.map((part) => {
|
495
|
+
if (part.python) {
|
496
|
+
if (this._format === vscode_languageserver_1.MarkupKind.Markdown) {
|
497
|
+
return '```python\n' + part.text + '\n```\n';
|
498
|
+
}
|
499
|
+
else if (this._format === vscode_languageserver_1.MarkupKind.PlainText) {
|
500
|
+
return part.text + '\n\n';
|
501
|
+
}
|
502
|
+
else {
|
503
|
+
(0, debug_1.fail)(`Unsupported markup type: ${this._format}`);
|
504
|
+
}
|
472
505
|
}
|
506
|
+
return part.text;
|
507
|
+
})
|
508
|
+
.join('')
|
509
|
+
.trimEnd();
|
510
|
+
// If we have a lastKnownModule in the hover results, stick in a comment with
|
511
|
+
// the hashed module name. This is used by the other side to send telemetry.
|
512
|
+
if (hoverResults.lastKnownModule && this._format === vscode_languageserver_1.MarkupKind.Markdown && this._supportTelemetry) {
|
513
|
+
markupString += `\n<!--moduleHash:${(0, stringUtils_1.hashString)(hoverResults.lastKnownModule)}-->`;
|
473
514
|
}
|
474
|
-
return
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
markupString += `\n<!--moduleHash:${(0, stringUtils_1.hashString)(hoverResults.lastKnownModule)}-->`;
|
515
|
+
return {
|
516
|
+
contents: {
|
517
|
+
kind: this._format,
|
518
|
+
value: markupString,
|
519
|
+
},
|
520
|
+
range: hoverResults.range,
|
521
|
+
};
|
482
522
|
}
|
483
|
-
return {
|
484
|
-
contents: {
|
485
|
-
kind: format,
|
486
|
-
value: markupString,
|
487
|
-
},
|
488
|
-
range: hoverResults.range,
|
489
|
-
};
|
490
523
|
}
|
491
|
-
exports.
|
524
|
+
exports.HoverProvider = HoverProvider;
|
492
525
|
//# sourceMappingURL=hoverProvider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hoverProvider.js","sourceRoot":"","sources":["../../../src/languageService/hoverProvider.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"hoverProvider.js","sourceRoot":"","sources":["../../../src/languageService/hoverProvider.ts"],"names":[],"mappings":"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"}
|