@zzzen/pyright-internal 1.2.0-dev.20230212 → 1.2.0-dev.20230226

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.
Files changed (170) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
  2. package/dist/analyzer/backgroundAnalysisProgram.js +5 -0
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +9 -1
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.js +12 -6
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.js +1 -1
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/commentUtils.d.ts +6 -1
  11. package/dist/analyzer/commentUtils.js +100 -25
  12. package/dist/analyzer/commentUtils.js.map +1 -1
  13. package/dist/analyzer/constraintSolver.js +0 -10
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/declaration.d.ts +2 -0
  16. package/dist/analyzer/declaration.js.map +1 -1
  17. package/dist/analyzer/importResolver.d.ts +3 -2
  18. package/dist/analyzer/importResolver.js +28 -19
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/importStatementUtils.d.ts +1 -0
  21. package/dist/analyzer/importStatementUtils.js +14 -1
  22. package/dist/analyzer/importStatementUtils.js.map +1 -1
  23. package/dist/analyzer/parseTreeUtils.d.ts +5 -2
  24. package/dist/analyzer/parseTreeUtils.js +21 -3
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/patternMatching.d.ts +1 -0
  27. package/dist/analyzer/patternMatching.js +54 -6
  28. package/dist/analyzer/patternMatching.js.map +1 -1
  29. package/dist/analyzer/program.d.ts +11 -4
  30. package/dist/analyzer/program.js +122 -25
  31. package/dist/analyzer/program.js.map +1 -1
  32. package/dist/analyzer/properties.js +5 -1
  33. package/dist/analyzer/properties.js.map +1 -1
  34. package/dist/analyzer/protocols.js +4 -3
  35. package/dist/analyzer/protocols.js.map +1 -1
  36. package/dist/analyzer/service.d.ts +7 -6
  37. package/dist/analyzer/service.js +31 -39
  38. package/dist/analyzer/service.js.map +1 -1
  39. package/dist/analyzer/sourceFile.d.ts +4 -0
  40. package/dist/analyzer/sourceFile.js +85 -16
  41. package/dist/analyzer/sourceFile.js.map +1 -1
  42. package/dist/analyzer/typeEvaluator.js +127 -76
  43. package/dist/analyzer/typeEvaluator.js.map +1 -1
  44. package/dist/backgroundAnalysisBase.d.ts +2 -2
  45. package/dist/backgroundAnalysisBase.js +21 -8
  46. package/dist/backgroundAnalysisBase.js.map +1 -1
  47. package/dist/backgroundThreadBase.js +1 -0
  48. package/dist/backgroundThreadBase.js.map +1 -1
  49. package/dist/commands/commandController.js +1 -0
  50. package/dist/commands/commandController.js.map +1 -1
  51. package/dist/commands/quickActionCommand.js +2 -2
  52. package/dist/commands/quickActionCommand.js.map +1 -1
  53. package/dist/common/cancellationUtils.d.ts +18 -2
  54. package/dist/common/cancellationUtils.js +80 -3
  55. package/dist/common/cancellationUtils.js.map +1 -1
  56. package/dist/common/commandLineOptions.d.ts +2 -0
  57. package/dist/common/commandLineOptions.js.map +1 -1
  58. package/dist/common/configOptions.d.ts +3 -0
  59. package/dist/common/configOptions.js +10 -1
  60. package/dist/common/configOptions.js.map +1 -1
  61. package/dist/common/core.d.ts +2 -0
  62. package/dist/common/core.js +9 -1
  63. package/dist/common/core.js.map +1 -1
  64. package/dist/common/diagnostic.d.ts +15 -3
  65. package/dist/common/diagnostic.js +13 -4
  66. package/dist/common/diagnostic.js.map +1 -1
  67. package/dist/common/editAction.d.ts +1 -0
  68. package/dist/common/editAction.js +8 -0
  69. package/dist/common/editAction.js.map +1 -1
  70. package/dist/common/extensibility.d.ts +36 -12
  71. package/dist/common/extensibility.js +63 -18
  72. package/dist/common/extensibility.js.map +1 -1
  73. package/dist/common/fileBasedCancellationUtils.d.ts +0 -1
  74. package/dist/common/fileBasedCancellationUtils.js +7 -81
  75. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  76. package/dist/common/pathUtils.d.ts +3 -0
  77. package/dist/common/pathUtils.js +18 -0
  78. package/dist/common/pathUtils.js.map +1 -1
  79. package/dist/common/textEditTracker.d.ts +37 -0
  80. package/dist/common/textEditTracker.js +301 -0
  81. package/dist/common/textEditTracker.js.map +1 -0
  82. package/dist/common/workspaceEditUtils.d.ts +14 -8
  83. package/dist/common/workspaceEditUtils.js +115 -59
  84. package/dist/common/workspaceEditUtils.js.map +1 -1
  85. package/dist/languageServerBase.d.ts +3 -0
  86. package/dist/languageServerBase.js +93 -4
  87. package/dist/languageServerBase.js.map +1 -1
  88. package/dist/languageService/analyzerServiceExecutor.js +1 -0
  89. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  90. package/dist/languageService/codeActionProvider.js +1 -1
  91. package/dist/languageService/codeActionProvider.js.map +1 -1
  92. package/dist/languageService/completionProvider.js +3 -3
  93. package/dist/languageService/completionProvider.js.map +1 -1
  94. package/dist/languageService/definitionProvider.js +1 -1
  95. package/dist/languageService/definitionProvider.js.map +1 -1
  96. package/dist/languageService/documentSymbolCollector.js +1 -1
  97. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  98. package/dist/languageService/hoverProvider.js +13 -6
  99. package/dist/languageService/hoverProvider.js.map +1 -1
  100. package/dist/languageService/importAdder.d.ts +5 -1
  101. package/dist/languageService/importAdder.js +50 -14
  102. package/dist/languageService/importAdder.js.map +1 -1
  103. package/dist/languageService/indentationUtils.d.ts +5 -1
  104. package/dist/languageService/indentationUtils.js +12 -2
  105. package/dist/languageService/indentationUtils.js.map +1 -1
  106. package/dist/languageService/insertionPointUtils.js +28 -7
  107. package/dist/languageService/insertionPointUtils.js.map +1 -1
  108. package/dist/languageService/renameModuleProvider.d.ts +20 -10
  109. package/dist/languageService/renameModuleProvider.js +300 -229
  110. package/dist/languageService/renameModuleProvider.js.map +1 -1
  111. package/dist/localization/localize.d.ts +12 -0
  112. package/dist/localization/localize.js +6 -0
  113. package/dist/localization/localize.js.map +1 -1
  114. package/dist/localization/package.nls.en-us.json +8 -1
  115. package/dist/tests/checker.test.js +5 -0
  116. package/dist/tests/checker.test.js.map +1 -1
  117. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js +57 -0
  119. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js.map +1 -0
  120. package/dist/tests/fourslash/hover.inferred.fourslash.d.ts +1 -0
  121. package/dist/tests/fourslash/hover.inferred.fourslash.js +24 -0
  122. package/dist/tests/fourslash/hover.inferred.fourslash.js.map +1 -0
  123. package/dist/tests/harness/fourslash/testState.js +9 -2
  124. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  125. package/dist/tests/importAdder.test.js +40 -3
  126. package/dist/tests/importAdder.test.js.map +1 -1
  127. package/dist/tests/indentationUtils.reindent.test.js +1 -1
  128. package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
  129. package/dist/tests/insertionPointUtils.test.js +70 -3
  130. package/dist/tests/insertionPointUtils.test.js.map +1 -1
  131. package/dist/tests/moveSymbol.importAdder.test.js +192 -0
  132. package/dist/tests/moveSymbol.importAdder.test.js.map +1 -0
  133. package/dist/tests/moveSymbol.insertion.test.d.ts +1 -0
  134. package/dist/tests/moveSymbol.insertion.test.js +397 -0
  135. package/dist/tests/moveSymbol.insertion.test.js.map +1 -0
  136. package/dist/tests/moveSymbol.misc.test.d.ts +1 -0
  137. package/dist/tests/moveSymbol.misc.test.js +142 -0
  138. package/dist/tests/moveSymbol.misc.test.js.map +1 -0
  139. package/dist/tests/moveSymbol.updateReference.test.d.ts +1 -0
  140. package/dist/tests/{updateSymbolReference.test.js → moveSymbol.updateReference.test.js} +235 -158
  141. package/dist/tests/moveSymbol.updateReference.test.js.map +1 -0
  142. package/dist/tests/parseTreeUtils.test.js +36 -13
  143. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  144. package/dist/tests/renameModuleTestUtils.js +9 -3
  145. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  146. package/dist/tests/testStateUtils.d.ts +2 -0
  147. package/dist/tests/testStateUtils.js +25 -22
  148. package/dist/tests/testStateUtils.js.map +1 -1
  149. package/dist/tests/textEditUtil.test.d.ts +1 -0
  150. package/dist/tests/textEditUtil.test.js +107 -0
  151. package/dist/tests/textEditUtil.test.js.map +1 -0
  152. package/dist/tests/typeEvaluator1.test.js +4 -0
  153. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  154. package/dist/tests/typeEvaluator2.test.js +12 -0
  155. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  156. package/dist/tests/typeEvaluator3.test.js +9 -0
  157. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  158. package/dist/tests/typeEvaluator4.test.js +5 -1
  159. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  160. package/dist/tests/workspaceEditUtils.test.js +7 -7
  161. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  162. package/dist/workspaceMap.d.ts +0 -1
  163. package/dist/workspaceMap.js +0 -11
  164. package/dist/workspaceMap.js.map +1 -1
  165. package/package.json +3 -3
  166. package/dist/common/textEditUtils.d.ts +0 -24
  167. package/dist/common/textEditUtils.js +0 -167
  168. package/dist/common/textEditUtils.js.map +0 -1
  169. package/dist/tests/updateSymbolReference.test.js.map +0 -1
  170. /package/dist/tests/{updateSymbolReference.test.d.ts → moveSymbol.importAdder.test.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import { TextRange } from './textRange';
1
2
  export declare const enum Comparison {
2
3
  LessThan = -1,
3
4
  EqualTo = 0,
@@ -66,4 +67,5 @@ interface Thenable<T> {
66
67
  export declare function isThenable<T>(v: any): v is Thenable<T>;
67
68
  export declare function isDefined<T>(element: T | undefined): element is T;
68
69
  export declare function getEnumNames<T>(enumType: T): string[];
70
+ export declare function containsOnlyWhitespace(text: string, span?: TextRange): boolean;
69
71
  export {};
@@ -7,7 +7,8 @@
7
7
  * Various helpers that don't have a dependency on other code files.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getEnumNames = exports.isDefined = exports.isThenable = exports.isDebugMode = exports.test_setDebugMode = exports.toBoolean = exports.hasProperty = exports.isBoolean = exports.isNumber = exports.isString = exports.isArray = exports.compareValues = exports.compareComparableValues = exports.equateValues = exports.toLowerCase = exports.identity = exports.returnUndefined = exports.returnTrue = exports.returnFalse = exports.Comparison = void 0;
10
+ exports.containsOnlyWhitespace = exports.getEnumNames = exports.isDefined = exports.isThenable = exports.isDebugMode = exports.test_setDebugMode = exports.toBoolean = exports.hasProperty = exports.isBoolean = exports.isNumber = exports.isString = exports.isArray = exports.compareValues = exports.compareComparableValues = exports.equateValues = exports.toLowerCase = exports.identity = exports.returnUndefined = exports.returnTrue = exports.returnFalse = exports.Comparison = void 0;
11
+ const textRange_1 = require("./textRange");
11
12
  var Comparison;
12
13
  (function (Comparison) {
13
14
  Comparison[Comparison["LessThan"] = -1] = "LessThan";
@@ -142,4 +143,11 @@ function getEnumNames(enumType) {
142
143
  return result;
143
144
  }
144
145
  exports.getEnumNames = getEnumNames;
146
+ function containsOnlyWhitespace(text, span) {
147
+ if (span) {
148
+ text = text.substring(span.start, textRange_1.TextRange.getEnd(span));
149
+ }
150
+ return /^\s*$/.test(text);
151
+ }
152
+ exports.containsOnlyWhitespace = containsOnlyWhitespace;
145
153
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/common/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/common/core.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,15 @@
1
1
  import { Commands } from '../commands/commands';
2
2
  import { DiagnosticLevel } from './configOptions';
3
3
  import { Range, TextRange } from './textRange';
4
+ export declare enum TaskListPriority {
5
+ High = "High",
6
+ Normal = "Normal",
7
+ Low = "Low"
8
+ }
9
+ export interface TaskListToken {
10
+ text: string;
11
+ priority: TaskListPriority;
12
+ }
4
13
  export declare const enum ActionKind {
5
14
  RenameShadowedFileAction = "renameShadowedFile"
6
15
  }
@@ -10,7 +19,8 @@ export declare const enum DiagnosticCategory {
10
19
  Information = 2,
11
20
  UnusedCode = 3,
12
21
  UnreachableCode = 4,
13
- Deprecated = 5
22
+ Deprecated = 5,
23
+ TaskItem = 6
14
24
  }
15
25
  export declare function convertLevelToCategory(level: DiagnosticLevel): DiagnosticCategory.Error | DiagnosticCategory.Warning | DiagnosticCategory.Information;
16
26
  export interface DiagnosticAction {
@@ -37,20 +47,22 @@ export interface DiagnosticRelatedInfo {
37
47
  message: string;
38
48
  filePath: string;
39
49
  range: Range;
50
+ priority: TaskListPriority;
40
51
  }
41
52
  export declare class Diagnostic {
42
53
  readonly category: DiagnosticCategory;
43
54
  readonly message: string;
44
55
  readonly range: Range;
56
+ readonly priority: TaskListPriority;
45
57
  private _actions;
46
58
  private _rule;
47
59
  private _relatedInfo;
48
- constructor(category: DiagnosticCategory, message: string, range: Range);
60
+ constructor(category: DiagnosticCategory, message: string, range: Range, priority?: TaskListPriority);
49
61
  addAction(action: DiagnosticAction): void;
50
62
  getActions(): DiagnosticAction[] | undefined;
51
63
  setRule(rule: string): void;
52
64
  getRule(): string | undefined;
53
- addRelatedInfo(message: string, filePath: string, range: Range): void;
65
+ addRelatedInfo(message: string, filePath: string, range: Range, priority?: TaskListPriority): void;
54
66
  getRelatedInfo(): DiagnosticRelatedInfo[];
55
67
  }
56
68
  export declare class DiagnosticAddendum {
@@ -8,11 +8,18 @@
8
8
  * Class that represents errors and warnings.
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.DiagnosticAddendum = exports.Diagnostic = exports.convertLevelToCategory = exports.DiagnosticCategory = exports.ActionKind = void 0;
11
+ exports.DiagnosticAddendum = exports.Diagnostic = exports.convertLevelToCategory = exports.DiagnosticCategory = exports.ActionKind = exports.TaskListPriority = void 0;
12
12
  const collectionUtils_1 = require("./collectionUtils");
13
13
  const defaultMaxDepth = 5;
14
14
  const defaultMaxLineCount = 8;
15
15
  const maxRecursionCount = 64;
16
+ // Corresponds to the CommentTaskPriority enum at https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_git/VS?path=src/env/shell/PackageFramework/Framework/CommentTaskPriority.cs
17
+ var TaskListPriority;
18
+ (function (TaskListPriority) {
19
+ TaskListPriority["High"] = "High";
20
+ TaskListPriority["Normal"] = "Normal";
21
+ TaskListPriority["Low"] = "Low";
22
+ })(TaskListPriority = exports.TaskListPriority || (exports.TaskListPriority = {}));
16
23
  var ActionKind;
17
24
  (function (ActionKind) {
18
25
  ActionKind["RenameShadowedFileAction"] = "renameShadowedFile";
@@ -25,6 +32,7 @@ var DiagnosticCategory;
25
32
  DiagnosticCategory[DiagnosticCategory["UnusedCode"] = 3] = "UnusedCode";
26
33
  DiagnosticCategory[DiagnosticCategory["UnreachableCode"] = 4] = "UnreachableCode";
27
34
  DiagnosticCategory[DiagnosticCategory["Deprecated"] = 5] = "Deprecated";
35
+ DiagnosticCategory[DiagnosticCategory["TaskItem"] = 6] = "TaskItem";
28
36
  })(DiagnosticCategory = exports.DiagnosticCategory || (exports.DiagnosticCategory = {}));
29
37
  function convertLevelToCategory(level) {
30
38
  switch (level) {
@@ -41,10 +49,11 @@ function convertLevelToCategory(level) {
41
49
  exports.convertLevelToCategory = convertLevelToCategory;
42
50
  // Represents a single error or warning.
43
51
  class Diagnostic {
44
- constructor(category, message, range) {
52
+ constructor(category, message, range, priority = TaskListPriority.Normal) {
45
53
  this.category = category;
46
54
  this.message = message;
47
55
  this.range = range;
56
+ this.priority = priority;
48
57
  this._relatedInfo = [];
49
58
  }
50
59
  addAction(action) {
@@ -64,8 +73,8 @@ class Diagnostic {
64
73
  getRule() {
65
74
  return this._rule;
66
75
  }
67
- addRelatedInfo(message, filePath, range) {
68
- this._relatedInfo.push({ filePath, message, range });
76
+ addRelatedInfo(message, filePath, range, priority = TaskListPriority.Normal) {
77
+ this._relatedInfo.push({ filePath, message, range, priority });
69
78
  }
70
79
  getRelatedInfo() {
71
80
  return this._relatedInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/common/diagnostic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/common/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -32,4 +32,5 @@ export declare namespace TextEditAction {
32
32
  }
33
33
  export declare namespace FileEditAction {
34
34
  function is(value: any): value is FileEditAction;
35
+ function areEqual(e1: FileEditAction, e2: FileEditAction): boolean;
35
36
  }
@@ -9,6 +9,7 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.FileEditAction = exports.TextEditAction = void 0;
12
+ const textRange_1 = require("./textRange");
12
13
  var TextEditAction;
13
14
  (function (TextEditAction) {
14
15
  function is(value) {
@@ -22,5 +23,12 @@ var FileEditAction;
22
23
  return value.filePath !== undefined && TextEditAction.is(value);
23
24
  }
24
25
  FileEditAction.is = is;
26
+ function areEqual(e1, e2) {
27
+ return (e1 === e2 ||
28
+ (e1.filePath === e2.filePath &&
29
+ (0, textRange_1.rangesAreEqual)(e1.range, e2.range) &&
30
+ e1.replacementText === e2.replacementText));
31
+ }
32
+ FileEditAction.areEqual = areEqual;
25
33
  })(FileEditAction = exports.FileEditAction || (exports.FileEditAction = {}));
26
34
  //# sourceMappingURL=editAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editAction.js","sourceRoot":"","sources":["../../../src/common/editAction.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAwCH,IAAiB,cAAc,CAI9B;AAJD,WAAiB,cAAc;IAC3B,SAAgB,EAAE,CAAC,KAAU;QACzB,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;IAChE,CAAC;IAFe,iBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAI9B;AAED,IAAiB,cAAc,CAI9B;AAJD,WAAiB,cAAc;IAC3B,SAAgB,EAAE,CAAC,KAAU;QACzB,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAFe,iBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAI9B"}
1
+ {"version":3,"file":"editAction.js","sourceRoot":"","sources":["../../../src/common/editAction.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,2CAAoD;AAsCpD,IAAiB,cAAc,CAI9B;AAJD,WAAiB,cAAc;IAC3B,SAAgB,EAAE,CAAC,KAAU;QACzB,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;IAChE,CAAC;IAFe,iBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAI9B;AAED,IAAiB,cAAc,CAa9B;AAbD,WAAiB,cAAc;IAC3B,SAAgB,EAAE,CAAC,KAAU;QACzB,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAFe,iBAAE,KAEjB,CAAA;IAED,SAAgB,QAAQ,CAAC,EAAkB,EAAE,EAAkB;QAC3D,OAAO,CACH,EAAE,KAAK,EAAE;YACT,CAAC,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ;gBACxB,IAAA,0BAAc,EAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;gBAClC,EAAE,CAAC,eAAe,KAAK,EAAE,CAAC,eAAe,CAAC,CACjD,CAAC;IACN,CAAC;IAPe,uBAAQ,WAOvB,CAAA;AACL,CAAC,EAbgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAa9B"}
@@ -1,24 +1,43 @@
1
1
  import { CancellationToken, CodeAction, ExecuteCommandParams } from 'vscode-languageserver';
2
2
  import { Declaration } from '../analyzer/declaration';
3
- import { ParseTreeVisitor } from '../analyzer/parseTreeWalker';
3
+ import { ImportResolver } from '../analyzer/importResolver';
4
4
  import { SourceFileInfo } from '../analyzer/program';
5
5
  import { SourceMapper } from '../analyzer/sourceMapper';
6
6
  import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes';
7
7
  import { Type } from '../analyzer/types';
8
- import { WorkspaceServiceInstance } from '../languageServerBase';
8
+ import { LanguageServerBase } from '../languageServerBase';
9
9
  import { CompletionOptions, CompletionResultsList } from '../languageService/completionProvider';
10
10
  import { FunctionNode, ParameterNode, ParseNode } from '../parser/parseNodes';
11
11
  import { ParseResults } from '../parser/parser';
12
- import { SignatureDisplayType } from './configOptions';
12
+ import { ConfigOptions, SignatureDisplayType } from './configOptions';
13
+ import { ConsoleInterface } from './console';
13
14
  import { Range } from './textRange';
14
15
  export interface LanguageServiceExtension {
15
- readonly completionListExtension?: CompletionListExtension;
16
16
  readonly commandExtension?: CommandExtension;
17
+ }
18
+ export interface ProgramExtension {
19
+ readonly completionListExtension?: CompletionListExtension;
17
20
  readonly declarationProviderExtension?: DeclarationProviderExtension;
18
- readonly nodeCheckerExtension?: NodeCheckerExtension;
19
21
  readonly typeProviderExtension?: TypeProviderExtension;
20
22
  readonly codeActionExtension?: CodeActionExtension;
21
- sourceFileChanged?: (sourceFileInfo: SourceFileInfo) => void;
23
+ fileDirty?: (filePath: string) => void;
24
+ clearCache?: () => void;
25
+ }
26
+ export interface ProgramView {
27
+ readonly id: number;
28
+ rootPath: string;
29
+ getImportResolver(): ImportResolver;
30
+ console: ConsoleInterface;
31
+ getConfigOptions(): ConfigOptions;
32
+ owns(file: string): boolean;
33
+ getBoundSourceFileInfo(file: string, content?: string, force?: boolean): SourceFileInfo | undefined;
34
+ }
35
+ export interface ProgramMutator {
36
+ addInterimFile(file: string): void;
37
+ }
38
+ export interface ExtensionFactory {
39
+ createProgramExtension: (view: ProgramView, mutator: ProgramMutator) => ProgramExtension;
40
+ createLanguageServiceExtension: (languageserver: LanguageServerBase) => LanguageServiceExtension;
22
41
  }
23
42
  export interface CommandExtension {
24
43
  readonly commandPrefix: string;
@@ -35,15 +54,20 @@ export declare enum DeclarationUseCase {
35
54
  export interface DeclarationProviderExtension {
36
55
  tryGetDeclarations(node: ParseNode, useCase: DeclarationUseCase, token: CancellationToken): Declaration[];
37
56
  }
38
- export declare class NodeCheckerExtension extends ParseTreeVisitor<void> {
39
- }
40
57
  export interface TypeProviderExtension {
41
58
  tryGetParameterNodeType(node: ParameterNode, evaluator: TypeEvaluator, token: CancellationToken, context?: {}): Type | undefined;
42
59
  tryGetFunctionNodeType(node: FunctionNode, evaluator: TypeEvaluator, token: CancellationToken): Type | undefined;
43
60
  }
44
61
  export interface CodeActionExtension {
45
- addCodeActions(workspace: WorkspaceServiceInstance, filePath: string, range: Range, parseResults: ParseResults, codeActions: CodeAction[], token: CancellationToken): void;
62
+ addCodeActions(filePath: string, range: Range, parseResults: ParseResults, codeActions: CodeAction[], token: CancellationToken): void;
63
+ }
64
+ export declare namespace Extensions {
65
+ function register(entries: ExtensionFactory[]): void;
66
+ function createProgramExtensions(view: ProgramView, mutator: ProgramMutator): void;
67
+ function destroyProgramExtensions(viewId: number): void;
68
+ function createLanguageServiceExtensions(languageServer: LanguageServerBase): void;
69
+ function destroyLanguageServiceExtensions(languageServer: LanguageServerBase): void;
70
+ function getProgramExtensions(nodeOrFilePath: ParseNode | string): ProgramExtension[];
71
+ function getLanguageServiceExtensions(): LanguageServiceExtension[];
72
+ function unregister(): void;
46
73
  }
47
- export declare function registerExtensions(extensions: LanguageServiceExtension[]): void;
48
- export declare function unregisterExtensions(): void;
49
- export declare function getExtensions(): LanguageServiceExtension[];
@@ -7,28 +7,73 @@
7
7
  * Language service extensibility.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getExtensions = exports.unregisterExtensions = exports.registerExtensions = exports.NodeCheckerExtension = exports.DeclarationUseCase = void 0;
11
- const parseTreeWalker_1 = require("../analyzer/parseTreeWalker");
10
+ exports.Extensions = exports.DeclarationUseCase = void 0;
11
+ const analyzerNodeInfo_1 = require("../analyzer/analyzerNodeInfo");
12
12
  var DeclarationUseCase;
13
13
  (function (DeclarationUseCase) {
14
14
  DeclarationUseCase[DeclarationUseCase["Definition"] = 0] = "Definition";
15
15
  DeclarationUseCase[DeclarationUseCase["Rename"] = 1] = "Rename";
16
16
  DeclarationUseCase[DeclarationUseCase["References"] = 2] = "References";
17
17
  })(DeclarationUseCase = exports.DeclarationUseCase || (exports.DeclarationUseCase = {}));
18
- class NodeCheckerExtension extends parseTreeWalker_1.ParseTreeVisitor {
19
- }
20
- exports.NodeCheckerExtension = NodeCheckerExtension;
21
- const extensionList = [];
22
- function registerExtensions(extensions) {
23
- extensionList.push(...extensions);
24
- }
25
- exports.registerExtensions = registerExtensions;
26
- function unregisterExtensions() {
27
- extensionList.splice(0, extensionList.length);
28
- }
29
- exports.unregisterExtensions = unregisterExtensions;
30
- function getExtensions() {
31
- return extensionList;
32
- }
33
- exports.getExtensions = getExtensions;
18
+ var Extensions;
19
+ (function (Extensions) {
20
+ const factories = [];
21
+ let programExtensions = [];
22
+ let languageServiceExtensions = [];
23
+ function register(entries) {
24
+ factories.push(...entries);
25
+ }
26
+ Extensions.register = register;
27
+ function createProgramExtensions(view, mutator) {
28
+ programExtensions.push(...factories
29
+ .map((s) => {
30
+ let result = s.createProgramExtension ? s.createProgramExtension(view, mutator) : undefined;
31
+ if (result) {
32
+ // Add the extra parameter that we use for finding later.
33
+ result = Object.defineProperty(result, 'view', { value: view });
34
+ }
35
+ return result;
36
+ })
37
+ .filter((s) => !!s));
38
+ }
39
+ Extensions.createProgramExtensions = createProgramExtensions;
40
+ function destroyProgramExtensions(viewId) {
41
+ programExtensions = programExtensions.filter((s) => s.view.id !== viewId);
42
+ }
43
+ Extensions.destroyProgramExtensions = destroyProgramExtensions;
44
+ function createLanguageServiceExtensions(languageServer) {
45
+ languageServiceExtensions.push(...factories
46
+ .map((s) => {
47
+ let result = s.createLanguageServiceExtension
48
+ ? s.createLanguageServiceExtension(languageServer)
49
+ : undefined;
50
+ if (result) {
51
+ // Add the extra parameter that we use for finding later.
52
+ result = Object.defineProperty(result, 'owner', { value: languageServer });
53
+ }
54
+ return result;
55
+ })
56
+ .filter((s) => !!s));
57
+ }
58
+ Extensions.createLanguageServiceExtensions = createLanguageServiceExtensions;
59
+ function destroyLanguageServiceExtensions(languageServer) {
60
+ languageServiceExtensions = languageServiceExtensions.filter((s) => s.owner !== languageServer);
61
+ }
62
+ Extensions.destroyLanguageServiceExtensions = destroyLanguageServiceExtensions;
63
+ function getProgramExtensions(nodeOrFilePath) {
64
+ const filePath = typeof nodeOrFilePath === 'string' ? nodeOrFilePath.toString() : (0, analyzerNodeInfo_1.getFileInfo)(nodeOrFilePath).filePath;
65
+ return programExtensions.filter((s) => { var _a; return (_a = s.view) === null || _a === void 0 ? void 0 : _a.owns(filePath); });
66
+ }
67
+ Extensions.getProgramExtensions = getProgramExtensions;
68
+ function getLanguageServiceExtensions() {
69
+ return languageServiceExtensions;
70
+ }
71
+ Extensions.getLanguageServiceExtensions = getLanguageServiceExtensions;
72
+ function unregister() {
73
+ programExtensions.splice(0, programExtensions.length);
74
+ languageServiceExtensions.splice(0, languageServiceExtensions.length);
75
+ factories.splice(0, factories.length);
76
+ }
77
+ Extensions.unregister = unregister;
78
+ })(Extensions = exports.Extensions || (exports.Extensions = {}));
34
79
  //# sourceMappingURL=extensibility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensibility.js","sourceRoot":"","sources":["../../../src/common/extensibility.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;AAKF,iEAA+D;AA6C/D,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,uEAAU,CAAA;IACV,+DAAM,CAAA;IACN,uEAAU,CAAA;AACd,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAMD,MAAa,oBAAqB,SAAQ,kCAAsB;CAAG;AAAnE,oDAAmE;AAuBnE,MAAM,aAAa,GAA+B,EAAE,CAAC;AAErD,SAAgB,kBAAkB,CAAC,UAAsC;IACrE,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;AACtC,CAAC;AAFD,gDAEC;AAED,SAAgB,oBAAoB;IAChC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAFD,oDAEC;AAED,SAAgB,aAAa;IACzB,OAAO,aAAa,CAAC;AACzB,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"extensibility.js","sourceRoot":"","sources":["../../../src/common/extensibility.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import { CancellationProvider } from './cancellationUtils';
3
3
  export declare function getCancellationStrategyFromArgv(argv: string[]): CancellationStrategy;
4
4
  export declare function disposeCancellationToken(token: CancellationToken): void;
5
5
  export declare function getCancellationTokenFromId(cancellationId: string): CancellationToken;
6
- export declare function getCancellationTokenId(token: CancellationToken): string | undefined;
7
6
  export declare class FileBasedCancellationProvider implements CancellationProvider {
8
7
  private _prefix;
9
8
  constructor(_prefix: string);
@@ -26,86 +26,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.FileBasedCancellationProvider = exports.getCancellationTokenId = exports.getCancellationTokenFromId = exports.disposeCancellationToken = exports.getCancellationStrategyFromArgv = void 0;
29
+ exports.FileBasedCancellationProvider = exports.getCancellationTokenFromId = exports.disposeCancellationToken = exports.getCancellationStrategyFromArgv = void 0;
30
30
  const fs = __importStar(require("fs"));
31
31
  const os = __importStar(require("os"));
32
32
  const path = __importStar(require("path"));
33
33
  const vscode_jsonrpc_1 = require("vscode-jsonrpc");
34
34
  const vscode_languageserver_1 = require("vscode-languageserver");
35
35
  const cancellationUtils_1 = require("./cancellationUtils");
36
- class CancellationThrottle {
37
- static shouldCheck() {
38
- // Throttle cancellation checks to one every 5ms. This value
39
- // was selected through empirical testing. If we call the
40
- // file system more often than this, type analysis performance
41
- // is affected. If we call it less often, performance doesn't
42
- // improve much, but responsiveness suffers.
43
- const minTimeBetweenChecksInMs = 5;
44
- const curTimestamp = Date.now().valueOf();
45
- const timeSinceLastCheck = curTimestamp - this._lastCheckTimestamp;
46
- if (timeSinceLastCheck >= minTimeBetweenChecksInMs) {
47
- this._lastCheckTimestamp = curTimestamp;
48
- return true;
49
- }
50
- return false;
51
- }
52
- }
53
- CancellationThrottle._lastCheckTimestamp = 0;
54
- class FileBasedToken {
55
- constructor(cancellationFilePath) {
56
- this.cancellationFilePath = cancellationFilePath;
57
- this.isCancelled = false;
58
- }
59
- cancel() {
60
- if (!this.isCancelled) {
61
- this.isCancelled = true;
62
- if (this._emitter) {
63
- this._emitter.fire(undefined);
64
- this._disposeEmitter();
65
- }
66
- }
67
- }
68
- get isCancellationRequested() {
69
- if (this.isCancelled) {
70
- return true;
71
- }
72
- if (CancellationThrottle.shouldCheck() && this._pipeExists()) {
73
- // The first time it encounters the cancellation file, it will
74
- // cancel itself and raise a cancellation event.
75
- // In this mode, cancel() might not be called explicitly by
76
- // jsonrpc layer.
77
- this.cancel();
78
- }
79
- return this.isCancelled;
80
- }
81
- get onCancellationRequested() {
82
- if (!this._emitter) {
83
- this._emitter = new vscode_languageserver_1.Emitter();
84
- }
85
- return this._emitter.event;
86
- }
87
- dispose() {
88
- this._disposeEmitter();
89
- }
90
- _disposeEmitter() {
91
- if (this._emitter) {
92
- this._emitter.dispose();
93
- this._emitter = undefined;
94
- }
95
- }
96
- _pipeExists() {
97
- try {
98
- fs.statSync(this.cancellationFilePath);
99
- return true;
100
- }
101
- catch (e) {
102
- return false;
103
- }
104
- }
105
- }
106
- class OwningFileToken extends FileBasedToken {
36
+ class OwningFileToken extends cancellationUtils_1.FileBasedToken {
107
37
  constructor(cancellationFilePath) {
108
- super(cancellationFilePath);
38
+ super(cancellationFilePath, fs);
109
39
  this._disposed = false;
110
40
  }
111
41
  cancel() {
@@ -151,7 +81,7 @@ class FileBasedCancellationTokenSource {
151
81
  // Be lazy and create the token only when actually needed.
152
82
  this._token = this._ownFile
153
83
  ? new OwningFileToken(this._cancellationFilePath)
154
- : new FileBasedToken(this._cancellationFilePath);
84
+ : new cancellationUtils_1.FileBasedToken(this._cancellationFilePath, fs);
155
85
  }
156
86
  return this._token;
157
87
  }
@@ -171,7 +101,7 @@ class FileBasedCancellationTokenSource {
171
101
  // Make sure to initialize with an empty token if we had none.
172
102
  this._token = vscode_languageserver_1.CancellationToken.None;
173
103
  }
174
- else if (this._token instanceof FileBasedToken) {
104
+ else if (this._token instanceof cancellationUtils_1.FileBasedToken) {
175
105
  // Actually dispose.
176
106
  this._token.dispose();
177
107
  }
@@ -222,7 +152,7 @@ function getCancellationStrategyFromArgv(argv) {
222
152
  }
223
153
  exports.getCancellationStrategyFromArgv = getCancellationStrategyFromArgv;
224
154
  function disposeCancellationToken(token) {
225
- if (token instanceof FileBasedToken) {
155
+ if (token instanceof cancellationUtils_1.FileBasedToken) {
226
156
  token.dispose();
227
157
  }
228
158
  }
@@ -231,13 +161,9 @@ function getCancellationTokenFromId(cancellationId) {
231
161
  if (!cancellationId) {
232
162
  return vscode_languageserver_1.CancellationToken.None;
233
163
  }
234
- return new FileBasedToken(cancellationId);
164
+ return new cancellationUtils_1.FileBasedToken(cancellationId, fs);
235
165
  }
236
166
  exports.getCancellationTokenFromId = getCancellationTokenFromId;
237
- function getCancellationTokenId(token) {
238
- return token instanceof FileBasedToken ? token.cancellationFilePath : undefined;
239
- }
240
- exports.getCancellationTokenId = getCancellationTokenId;
241
167
  let cancellationSourceId = 0;
242
168
  class FileBasedCancellationProvider {
243
169
  constructor(_prefix) {
@@ -1 +1 @@
1
- {"version":3,"file":"fileBasedCancellationUtils.js","sourceRoot":"","sources":["../../../src/common/fileBasedCancellationUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileBasedCancellationUtils.js","sourceRoot":"","sources":["../../../src/common/fileBasedCancellationUtils.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ export interface FileSpec {
9
9
  }
10
10
  export declare namespace FileSpec {
11
11
  function is(value: any): value is FileSpec;
12
+ function isInPath(path: string, paths: FileSpec[]): boolean;
13
+ function matchesIncludeFileRegex(filePath: string, isFile?: boolean): boolean;
14
+ function matchIncludeFileSpec(includeRegExp: RegExp, exclude: FileSpec[], filePath: string, isFile?: boolean): boolean;
12
15
  }
13
16
  export interface FileSystemEntries {
14
17
  files: string[];
@@ -37,6 +37,7 @@ const crypto_1 = require("./crypto");
37
37
  const debug = __importStar(require("./debug"));
38
38
  const stringUtils_1 = require("./stringUtils");
39
39
  let _fsCaseSensitivity = undefined;
40
+ const _includeFileRegex = /\.pyi?$/;
40
41
  var FileSpec;
41
42
  (function (FileSpec) {
42
43
  function is(value) {
@@ -44,6 +45,23 @@ var FileSpec;
44
45
  return candidate && !!candidate.wildcardRoot && !!candidate.regExp;
45
46
  }
46
47
  FileSpec.is = is;
48
+ function isInPath(path, paths) {
49
+ return !!paths.find((p) => p.regExp.test(path));
50
+ }
51
+ FileSpec.isInPath = isInPath;
52
+ function matchesIncludeFileRegex(filePath, isFile = true) {
53
+ return isFile ? _includeFileRegex.test(filePath) : true;
54
+ }
55
+ FileSpec.matchesIncludeFileRegex = matchesIncludeFileRegex;
56
+ function matchIncludeFileSpec(includeRegExp, exclude, filePath, isFile = true) {
57
+ if (includeRegExp.test(filePath)) {
58
+ if (!FileSpec.isInPath(filePath, exclude) && FileSpec.matchesIncludeFileRegex(filePath, isFile)) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ FileSpec.matchIncludeFileSpec = matchIncludeFileSpec;
47
65
  })(FileSpec = exports.FileSpec || (exports.FileSpec = {}));
48
66
  function forEachAncestorDirectory(directory, callback) {
49
67
  while (true) {