@microsoft/powerquery-language-services 0.6.11 → 0.9.2
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/lib/powerquery-language-services/analysis/analysis.d.ts +12 -11
- package/lib/powerquery-language-services/analysis/analysisBase.d.ts +31 -25
- package/lib/powerquery-language-services/analysis/analysisBase.js +210 -169
- package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
- package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +1 -1
- package/lib/powerquery-language-services/analysis/analysisUtils.js +3 -3
- package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
- package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +6 -6
- package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
- package/lib/powerquery-language-services/documentSymbols.js +7 -7
- package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
- package/lib/powerquery-language-services/externalType/externalType.js.map +1 -0
- package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +5 -0
- package/lib/powerquery-language-services/externalType/externalTypeUtils.js +33 -0
- package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -0
- package/lib/powerquery-language-services/externalType/index.js.map +1 -0
- package/lib/powerquery-language-services/index.d.ts +3 -1
- package/lib/powerquery-language-services/index.js +5 -3
- package/lib/powerquery-language-services/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +5 -6
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +3 -4
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +212 -179
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +6 -6
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +4 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +10 -20
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +2 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +22 -23
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +3 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +3 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +5 -7
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +2 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +14 -14
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +5 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +302 -52
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +0 -3
- package/lib/powerquery-language-services/inspection/autocomplete/task.js +3 -3
- package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +8 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +5 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js.map +1 -0
- package/lib/powerquery-language-services/inspection/autocomplete/{common.d.ts → trailingTokenUtils.d.ts} +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +19 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -0
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +7 -7
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/expectedType.js +2 -2
- package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/index.d.ts +0 -1
- package/lib/powerquery-language-services/inspection/index.js +0 -1
- package/lib/powerquery-language-services/inspection/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +8 -8
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +5 -5
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +4 -4
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/task.js +8 -8
- package/lib/powerquery-language-services/inspection/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js +9 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +18 -18
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +5 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +5 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +7 -7
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +4 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +7 -7
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +7 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +4 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +8 -8
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +46 -46
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/task.js +3 -3
- package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +3 -3
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspectionUtils.d.ts +3 -3
- package/lib/powerquery-language-services/inspectionUtils.js +29 -31
- package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/index.d.ts +2 -0
- package/lib/powerquery-language-services/library/index.js +3 -1
- package/lib/powerquery-language-services/library/index.js.map +1 -1
- package/lib/powerquery-language-services/library/library.d.ts +1 -1
- package/lib/powerquery-language-services/library/library.js +2 -2
- package/lib/powerquery-language-services/library/library.js.map +1 -1
- package/lib/powerquery-language-services/library/librarySymbol.d.ts +33 -0
- package/lib/powerquery-language-services/library/librarySymbol.js +5 -0
- package/lib/powerquery-language-services/library/librarySymbol.js.map +1 -0
- package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +15 -0
- package/lib/powerquery-language-services/library/librarySymbolUtils.js +237 -0
- package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -0
- package/lib/powerquery-language-services/library/libraryUtils.d.ts +7 -5
- package/lib/powerquery-language-services/library/libraryUtils.js +14 -10
- package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
- package/lib/powerquery-language-services/positionUtils.d.ts +8 -4
- package/lib/powerquery-language-services/positionUtils.js +40 -13
- package/lib/powerquery-language-services/positionUtils.js.map +1 -1
- package/lib/powerquery-language-services/providers/libraryProvider.d.ts +2 -2
- package/lib/powerquery-language-services/providers/libraryProvider.js +2 -2
- package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +3 -3
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +12 -12
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
- package/lib/powerquery-language-services/providers/nullSymbolProvider.d.ts +2 -2
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js +7 -7
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
- package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -0
- package/lib/powerquery-language-services/tokenPositionComparison.js +13 -0
- package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -0
- package/lib/powerquery-language-services/traceUtils.d.ts +2 -2
- package/lib/powerquery-language-services/traceUtils.js +5 -5
- package/lib/powerquery-language-services/traceUtils.js.map +1 -1
- package/lib/powerquery-language-services/validate/validate.js +4 -4
- package/lib/powerquery-language-services/validate/validate.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +3 -3
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js +2 -2
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js +2 -2
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +1 -1
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
- package/package.json +9 -7
- package/lib/powerquery-language-services/inspection/autocomplete/common.js +0 -11
- package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +0 -1
- package/lib/powerquery-language-services/inspection/externalType/externalType.js.map +0 -1
- package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.d.ts +0 -4
- package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js +0 -21
- package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js.map +0 -1
- package/lib/powerquery-language-services/inspection/externalType/index.js.map +0 -1
- /package/lib/powerquery-language-services/{inspection/externalType → externalType}/externalType.d.ts +0 -0
- /package/lib/powerquery-language-services/{inspection/externalType → externalType}/externalType.js +0 -0
- /package/lib/powerquery-language-services/{inspection/externalType → externalType}/index.d.ts +0 -0
- /package/lib/powerquery-language-services/{inspection/externalType → externalType}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/library.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAKlC,
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/library.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAKlC,kDAA+C;AAM/C,IAAkB,qBAIjB;AAJD,WAAkB,qBAAqB;IACnC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,sCAAa,CAAA;AACjB,CAAC,EAJiB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAItC;AAoCY,QAAA,WAAW,GAAa;IACjC,oBAAoB,EAAE,2BAAY,CAAC,wBAAwB;IAC3D,kBAAkB,EAAE,IAAI,GAAG,EAAE;CAChC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface LibrarySymbol {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly documentation: LibrarySymbolDocumentation | null | undefined;
|
|
4
|
+
readonly functionParameters: ReadonlyArray<LibrarySymbolFunctionParameter> | null | undefined;
|
|
5
|
+
readonly completionItemKind: number;
|
|
6
|
+
readonly isDataSource: boolean;
|
|
7
|
+
readonly type: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LibrarySymbolDocumentation {
|
|
10
|
+
readonly description: string | null | undefined;
|
|
11
|
+
readonly longDescription: string | null | undefined;
|
|
12
|
+
}
|
|
13
|
+
export interface LibrarySymbolFunctionParameter {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly type: string;
|
|
16
|
+
readonly isRequired: boolean;
|
|
17
|
+
readonly isNullable: boolean;
|
|
18
|
+
readonly caption: string | null | undefined;
|
|
19
|
+
readonly description: string | null | undefined;
|
|
20
|
+
readonly sampleValues: ReadonlyArray<string | number> | null | undefined;
|
|
21
|
+
readonly allowedValues: ReadonlyArray<string | number> | null | undefined;
|
|
22
|
+
readonly defaultValue: string | number | null | undefined;
|
|
23
|
+
readonly fields: ReadonlyArray<LibrarySymbolRecordField> | null | undefined;
|
|
24
|
+
readonly enumNames: ReadonlyArray<string> | null | undefined;
|
|
25
|
+
readonly enumCaptions: ReadonlyArray<string | null> | null | undefined;
|
|
26
|
+
}
|
|
27
|
+
export interface LibrarySymbolRecordField {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly type: string;
|
|
30
|
+
readonly isRequired: boolean;
|
|
31
|
+
readonly caption: string | null | undefined;
|
|
32
|
+
readonly description: string | null | undefined;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"librarySymbol.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/librarySymbol.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PartialResult } from "@microsoft/powerquery-parser";
|
|
2
|
+
import { ExternalType } from "../externalType";
|
|
3
|
+
import { Library } from "../library";
|
|
4
|
+
import { LibrarySymbol } from "./librarySymbol";
|
|
5
|
+
export declare type IncompleteLibrary = {
|
|
6
|
+
readonly library: Library.ILibrary;
|
|
7
|
+
readonly invalidSymbols: ReadonlyArray<LibrarySymbol>;
|
|
8
|
+
};
|
|
9
|
+
export declare type IncompleteLibraryDefinitions = {
|
|
10
|
+
readonly libraryDefinitions: Library.LibraryDefinitions;
|
|
11
|
+
readonly invalidSymbols: ReadonlyArray<LibrarySymbol>;
|
|
12
|
+
};
|
|
13
|
+
export declare function createLibrary(librarySymbols: ReadonlyArray<LibrarySymbol>, externalTypeResolverFn: ExternalType.TExternalTypeResolverFn | undefined): PartialResult<Library.ILibrary, IncompleteLibrary, ReadonlyArray<LibrarySymbol>>;
|
|
14
|
+
export declare function createLibraryDefinitions(librarySymbols: ReadonlyArray<LibrarySymbol>): PartialResult<Library.LibraryDefinitions, IncompleteLibraryDefinitions, ReadonlyArray<LibrarySymbol>>;
|
|
15
|
+
export declare function librarySymbolToLibraryDefinition(librarySymbol: LibrarySymbol): Library.TLibraryDefinition | undefined;
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.librarySymbolToLibraryDefinition = exports.createLibraryDefinitions = exports.createLibrary = void 0;
|
|
4
|
+
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
5
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
6
|
+
const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
|
|
7
|
+
const externalType_1 = require("../externalType");
|
|
8
|
+
const library_1 = require("../library");
|
|
9
|
+
const commonTypes_1 = require("../commonTypes");
|
|
10
|
+
function createLibrary(librarySymbols, externalTypeResolverFn) {
|
|
11
|
+
const libraryDefinitionsResult = createLibraryDefinitions(librarySymbols);
|
|
12
|
+
let libraryDefinitions;
|
|
13
|
+
let invalidSymbols;
|
|
14
|
+
if (powerquery_parser_1.PartialResultUtils.isOk(libraryDefinitionsResult)) {
|
|
15
|
+
libraryDefinitions = libraryDefinitionsResult.value;
|
|
16
|
+
invalidSymbols = [];
|
|
17
|
+
}
|
|
18
|
+
else if (powerquery_parser_1.PartialResultUtils.isIncomplete(libraryDefinitionsResult)) {
|
|
19
|
+
libraryDefinitions = libraryDefinitionsResult.partial.libraryDefinitions;
|
|
20
|
+
invalidSymbols = libraryDefinitionsResult.partial.invalidSymbols;
|
|
21
|
+
}
|
|
22
|
+
else if (powerquery_parser_1.PartialResultUtils.isError(libraryDefinitionsResult)) {
|
|
23
|
+
return powerquery_parser_1.PartialResultUtils.error(libraryDefinitionsResult.error);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
powerquery_parser_1.Assert.isNever(libraryDefinitionsResult);
|
|
27
|
+
}
|
|
28
|
+
const definitionResolverFn = library_1.LibraryUtils.externalTypeResolver(libraryDefinitions);
|
|
29
|
+
const library = {
|
|
30
|
+
libraryDefinitions,
|
|
31
|
+
externalTypeResolver: externalTypeResolverFn
|
|
32
|
+
? externalType_1.ExternalTypeUtils.composeExternalTypeResolvers(externalTypeResolverFn, definitionResolverFn)
|
|
33
|
+
: definitionResolverFn,
|
|
34
|
+
};
|
|
35
|
+
if (invalidSymbols.length > 0) {
|
|
36
|
+
return powerquery_parser_1.PartialResultUtils.incomplete({
|
|
37
|
+
library,
|
|
38
|
+
invalidSymbols,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return powerquery_parser_1.PartialResultUtils.ok(library);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.createLibrary = createLibrary;
|
|
46
|
+
function createLibraryDefinitions(librarySymbols) {
|
|
47
|
+
const libraryDefinitions = new Map();
|
|
48
|
+
const invalidSymbols = [];
|
|
49
|
+
for (const librarySymbol of librarySymbols) {
|
|
50
|
+
const libraryDefinition = librarySymbolToLibraryDefinition(librarySymbol);
|
|
51
|
+
if (libraryDefinition === undefined) {
|
|
52
|
+
invalidSymbols.push(librarySymbol);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
libraryDefinitions.set(librarySymbol.name, libraryDefinition);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (invalidSymbols.length === 0) {
|
|
59
|
+
return powerquery_parser_1.PartialResultUtils.ok(libraryDefinitions);
|
|
60
|
+
}
|
|
61
|
+
else if (libraryDefinitions.size > 0) {
|
|
62
|
+
return powerquery_parser_1.PartialResultUtils.incomplete({
|
|
63
|
+
libraryDefinitions,
|
|
64
|
+
invalidSymbols,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return powerquery_parser_1.PartialResultUtils.error(invalidSymbols);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.createLibraryDefinitions = createLibraryDefinitions;
|
|
72
|
+
function librarySymbolToLibraryDefinition(librarySymbol) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const primitiveType = stringToPrimitiveType(librarySymbol.type);
|
|
75
|
+
const completionItemKind = numberToCompletionItemKind(librarySymbol.completionItemKind);
|
|
76
|
+
if (primitiveType === undefined || completionItemKind === undefined) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const label = librarySymbol.name;
|
|
80
|
+
const description = (_b = (_a = librarySymbol.documentation) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : "No description available";
|
|
81
|
+
if (primitiveType.kind === "Type" /* Type */) {
|
|
82
|
+
return {
|
|
83
|
+
kind: "Type" /* Type */,
|
|
84
|
+
label,
|
|
85
|
+
description,
|
|
86
|
+
asPowerQueryType: primitiveType,
|
|
87
|
+
completionItemKind,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
else if (librarySymbol.functionParameters) {
|
|
91
|
+
const asPowerQueryType = librarySymbolFunctionSignatureToType(librarySymbol, primitiveType);
|
|
92
|
+
if (asPowerQueryType === undefined) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
const parameters = [];
|
|
96
|
+
for (const parameter of librarySymbol.functionParameters) {
|
|
97
|
+
const libraryParameter = librarySymbolFunctionParameterToLibraryParameter(parameter);
|
|
98
|
+
if (libraryParameter === undefined) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
parameters.push(libraryParameter);
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
kind: "Function" /* Function */,
|
|
105
|
+
label: language_1.TypeUtils.nameOf(asPowerQueryType, trace_1.NoOpTraceManagerInstance, undefined),
|
|
106
|
+
description,
|
|
107
|
+
asPowerQueryType,
|
|
108
|
+
completionItemKind,
|
|
109
|
+
parameters,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return {
|
|
114
|
+
kind: "Constant" /* Constant */,
|
|
115
|
+
label,
|
|
116
|
+
description,
|
|
117
|
+
asPowerQueryType: primitiveType,
|
|
118
|
+
completionItemKind,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.librarySymbolToLibraryDefinition = librarySymbolToLibraryDefinition;
|
|
123
|
+
function librarySymbolFunctionSignatureToType(librarySymbol, returnType) {
|
|
124
|
+
var _a;
|
|
125
|
+
const parameters = [];
|
|
126
|
+
for (const parameter of (_a = librarySymbol.functionParameters) !== null && _a !== void 0 ? _a : []) {
|
|
127
|
+
const primitiveType = stringToPrimitiveType(parameter.type);
|
|
128
|
+
if (primitiveType === undefined) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
parameters.push({
|
|
132
|
+
isNullable: primitiveType.isNullable,
|
|
133
|
+
isOptional: !parameter.isRequired,
|
|
134
|
+
type: primitiveType.kind,
|
|
135
|
+
nameLiteral: parameter.name,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return language_1.TypeUtils.definedFunction(false, parameters, returnType);
|
|
139
|
+
}
|
|
140
|
+
function librarySymbolFunctionParameterToLibraryParameter(parameter) {
|
|
141
|
+
var _a;
|
|
142
|
+
const primitiveType = stringToPrimitiveType(parameter.type);
|
|
143
|
+
if (primitiveType === undefined) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
isNullable: primitiveType.isNullable,
|
|
148
|
+
isOptional: false,
|
|
149
|
+
label: parameter.name,
|
|
150
|
+
documentation: (_a = parameter.description) !== null && _a !== void 0 ? _a : undefined,
|
|
151
|
+
typeKind: primitiveType.kind,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function numberToCompletionItemKind(variant) {
|
|
155
|
+
switch (variant) {
|
|
156
|
+
case commonTypes_1.CompletionItemKind.Constant:
|
|
157
|
+
case commonTypes_1.CompletionItemKind.Constructor:
|
|
158
|
+
case commonTypes_1.CompletionItemKind.Enum:
|
|
159
|
+
case commonTypes_1.CompletionItemKind.EnumMember:
|
|
160
|
+
case commonTypes_1.CompletionItemKind.Event:
|
|
161
|
+
case commonTypes_1.CompletionItemKind.Field:
|
|
162
|
+
case commonTypes_1.CompletionItemKind.File:
|
|
163
|
+
case commonTypes_1.CompletionItemKind.Folder:
|
|
164
|
+
case commonTypes_1.CompletionItemKind.Function:
|
|
165
|
+
case commonTypes_1.CompletionItemKind.Interface:
|
|
166
|
+
case commonTypes_1.CompletionItemKind.Keyword:
|
|
167
|
+
case commonTypes_1.CompletionItemKind.Method:
|
|
168
|
+
case commonTypes_1.CompletionItemKind.Module:
|
|
169
|
+
case commonTypes_1.CompletionItemKind.Operator:
|
|
170
|
+
case commonTypes_1.CompletionItemKind.Property:
|
|
171
|
+
case commonTypes_1.CompletionItemKind.Reference:
|
|
172
|
+
case commonTypes_1.CompletionItemKind.Snippet:
|
|
173
|
+
case commonTypes_1.CompletionItemKind.Struct:
|
|
174
|
+
case commonTypes_1.CompletionItemKind.Text:
|
|
175
|
+
case commonTypes_1.CompletionItemKind.TypeParameter:
|
|
176
|
+
case commonTypes_1.CompletionItemKind.Unit:
|
|
177
|
+
case commonTypes_1.CompletionItemKind.Value:
|
|
178
|
+
case commonTypes_1.CompletionItemKind.Variable:
|
|
179
|
+
return variant;
|
|
180
|
+
default:
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Depending on which path we took to generate the symbols parameters that are lists will have one of two forms:
|
|
185
|
+
// 1. `list`
|
|
186
|
+
// 2. `list {$typeKind}`
|
|
187
|
+
// To make my life easier I'm going to allow both forms at this layer,
|
|
188
|
+
// and then normalize both forms to `list`.
|
|
189
|
+
function stringToPrimitiveType(text) {
|
|
190
|
+
const split = text.split(" ");
|
|
191
|
+
let isNullable;
|
|
192
|
+
let typeKind;
|
|
193
|
+
switch (split.length) {
|
|
194
|
+
case 0:
|
|
195
|
+
return undefined;
|
|
196
|
+
case 1: {
|
|
197
|
+
isNullable = false;
|
|
198
|
+
typeKind = stringToTypeKind(text);
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
// Either `nullable $typeKind` or `list {$typeKind}`
|
|
202
|
+
case 2: {
|
|
203
|
+
const first = split[0];
|
|
204
|
+
if (first === "nullable" /* Nullable */) {
|
|
205
|
+
isNullable = true;
|
|
206
|
+
typeKind = stringToTypeKind(split[1]);
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
else if (first === "list" /* List */) {
|
|
210
|
+
isNullable = false;
|
|
211
|
+
typeKind = "List" /* List */;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// `nullable list {$typeKind}`
|
|
219
|
+
case 3: {
|
|
220
|
+
if (split[0] !== "nullable" /* Nullable */ || split[1] !== "list" /* List */) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
isNullable = true;
|
|
224
|
+
typeKind = "List" /* List */;
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
default:
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
return typeKind ? language_1.TypeUtils.primitiveType(isNullable, typeKind) : undefined;
|
|
231
|
+
}
|
|
232
|
+
function stringToTypeKind(text) {
|
|
233
|
+
return language_1.ConstantUtils.isPrimitiveTypeConstant(text)
|
|
234
|
+
? language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(text)
|
|
235
|
+
: undefined;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=librarySymbolUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"librarySymbolUtils.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/librarySymbolUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { CompletionItemKind, ParameterInformation, SignatureInformation } from "vscode-languageserver-types";
|
|
2
2
|
import { Type } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
|
|
3
|
-
import { LibraryConstant, LibraryDefinitionKind, LibraryFunction, LibraryParameter, LibraryType, TLibraryDefinition } from "./library";
|
|
3
|
+
import { LibraryConstant, LibraryDefinitionKind, LibraryDefinitions, LibraryFunction, LibraryParameter, LibraryType, TLibraryDefinition } from "./library";
|
|
4
|
+
import { ExternalType } from "../externalType";
|
|
4
5
|
export declare function assertAsConstant(definition: TLibraryDefinition | undefined): LibraryConstant;
|
|
5
6
|
export declare function assertAsFunction(definition: TLibraryDefinition | undefined): LibraryFunction;
|
|
6
7
|
export declare function assertAsType(definition: TLibraryDefinition | undefined): LibraryType;
|
|
7
8
|
export declare function assertIsConstant(definition: TLibraryDefinition | undefined): asserts definition is LibraryConstant;
|
|
8
9
|
export declare function assertIsFunction(definition: TLibraryDefinition | undefined): asserts definition is LibraryFunction;
|
|
9
10
|
export declare function assertIsType(definition: TLibraryDefinition | undefined): asserts definition is LibraryType;
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function constantDefinition(label: string, description: string, asType: Type.TPowerQueryType, completionItemKind: CompletionItemKind): LibraryConstant;
|
|
12
|
+
export declare function externalTypeResolver(libraryDefinitions: LibraryDefinitions): ExternalType.TExternalTypeResolverFn;
|
|
13
|
+
export declare function functionDefinition(label: string, description: string, asType: Type.TPowerQueryType, completionItemKind: CompletionItemKind, parameters: ReadonlyArray<LibraryParameter>): LibraryFunction;
|
|
12
14
|
export declare function isConstant(definition: TLibraryDefinition | undefined): definition is LibraryConstant;
|
|
13
15
|
export declare function isFunction(definition: TLibraryDefinition | undefined): definition is LibraryFunction;
|
|
14
16
|
export declare function isType(definition: TLibraryDefinition | undefined): definition is LibraryType;
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
17
|
+
export declare function signatureInformation(libraryFunctionSignature: LibraryFunction): SignatureInformation;
|
|
18
|
+
export declare function parameterInformation(libraryParameter: LibraryParameter): ParameterInformation;
|
|
17
19
|
export declare function nameOf(kind: LibraryDefinitionKind): string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.nameOf = exports.
|
|
5
|
+
exports.nameOf = exports.parameterInformation = exports.signatureInformation = exports.isType = exports.isFunction = exports.isConstant = exports.functionDefinition = exports.externalTypeResolver = exports.constantDefinition = exports.assertIsType = exports.assertIsFunction = exports.assertIsConstant = exports.assertAsType = exports.assertAsFunction = exports.assertAsConstant = void 0;
|
|
6
6
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
7
7
|
function assertAsConstant(definition) {
|
|
8
8
|
assertIsConstant(definition);
|
|
@@ -37,7 +37,7 @@ function assertIsType(definition) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.assertIsType = assertIsType;
|
|
40
|
-
function
|
|
40
|
+
function constantDefinition(label, description, asType, completionItemKind) {
|
|
41
41
|
return {
|
|
42
42
|
kind: "Constant" /* Constant */,
|
|
43
43
|
asPowerQueryType: asType,
|
|
@@ -46,8 +46,12 @@ function createConstantDefinition(label, description, asType, completionItemKind
|
|
|
46
46
|
label,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
exports.
|
|
50
|
-
function
|
|
49
|
+
exports.constantDefinition = constantDefinition;
|
|
50
|
+
function externalTypeResolver(libraryDefinitions) {
|
|
51
|
+
return (request) => { var _a; return (_a = libraryDefinitions.get(request.identifierLiteral)) === null || _a === void 0 ? void 0 : _a.asPowerQueryType; };
|
|
52
|
+
}
|
|
53
|
+
exports.externalTypeResolver = externalTypeResolver;
|
|
54
|
+
function functionDefinition(label, description, asType, completionItemKind, parameters) {
|
|
51
55
|
return {
|
|
52
56
|
kind: "Function" /* Function */,
|
|
53
57
|
asPowerQueryType: asType,
|
|
@@ -57,7 +61,7 @@ function createFunctionDefinition(label, description, asType, completionItemKind
|
|
|
57
61
|
parameters,
|
|
58
62
|
};
|
|
59
63
|
}
|
|
60
|
-
exports.
|
|
64
|
+
exports.functionDefinition = functionDefinition;
|
|
61
65
|
function isConstant(definition) {
|
|
62
66
|
return (definition === null || definition === void 0 ? void 0 : definition.kind) === "Constant" /* Constant */;
|
|
63
67
|
}
|
|
@@ -70,21 +74,21 @@ function isType(definition) {
|
|
|
70
74
|
return (definition === null || definition === void 0 ? void 0 : definition.kind) === "Type" /* Type */;
|
|
71
75
|
}
|
|
72
76
|
exports.isType = isType;
|
|
73
|
-
function
|
|
77
|
+
function signatureInformation(libraryFunctionSignature) {
|
|
74
78
|
return {
|
|
75
79
|
label: libraryFunctionSignature.label,
|
|
76
80
|
documentation: libraryFunctionSignature.description,
|
|
77
|
-
parameters: libraryFunctionSignature.parameters.map(
|
|
81
|
+
parameters: libraryFunctionSignature.parameters.map(parameterInformation),
|
|
78
82
|
};
|
|
79
83
|
}
|
|
80
|
-
exports.
|
|
81
|
-
function
|
|
84
|
+
exports.signatureInformation = signatureInformation;
|
|
85
|
+
function parameterInformation(libraryParameter) {
|
|
82
86
|
return {
|
|
83
87
|
label: libraryParameter.label,
|
|
84
88
|
documentation: undefined,
|
|
85
89
|
};
|
|
86
90
|
}
|
|
87
|
-
exports.
|
|
91
|
+
exports.parameterInformation = parameterInformation;
|
|
88
92
|
function nameOf(kind) {
|
|
89
93
|
switch (kind) {
|
|
90
94
|
case "Function" /* Function */:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libraryUtils.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/libraryUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,oEAAsD;
|
|
1
|
+
{"version":3,"file":"libraryUtils.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/library/libraryUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@ import * as PQP from "@microsoft/powerquery-parser";
|
|
|
2
2
|
import { NodeIdMap, TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
|
|
3
3
|
import type { Position, Range } from "vscode-languageserver-types";
|
|
4
4
|
import { Ast } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
5
|
+
import { TokenPositionComparison } from "./tokenPositionComparison";
|
|
6
|
+
export declare function compareTokenPosition(position: Position, tokenPosition: PQP.Language.Token.TokenPosition): TokenPositionComparison;
|
|
7
|
+
export declare function positionFromTokenPosition(tokenPosition: PQP.Language.Token.TokenPosition): Position;
|
|
8
|
+
export declare function rangeFromXorNode(nodeIdMapCollection: NodeIdMap.Collection, xorNode: TXorNode): Promise<Range | undefined>;
|
|
9
|
+
export declare function rangeFromTokenPositions(startTokenPosition: PQP.Language.Token.TokenPosition | undefined, endTokenPosition: PQP.Language.Token.TokenPosition | undefined): Range | undefined;
|
|
10
|
+
export declare function rangeFromTokenRange(tokenRange: PQP.Language.Token.TokenRange): Range;
|
|
9
11
|
export declare function isBeforeXor(position: Position, xorNode: TXorNode, isBoundIncluded: boolean): boolean;
|
|
10
12
|
export declare function isInXor(nodeIdMapCollection: NodeIdMap.Collection, position: Position, xorNode: TXorNode, isLowerBoundIncluded: boolean, isUpperBoundIncluded: boolean): boolean;
|
|
11
13
|
export declare function isOnXorStart(position: Position, xorNode: TXorNode): boolean;
|
|
@@ -21,6 +23,8 @@ export declare function isInAst(position: Position, astNode: Ast.TNode, isLowerB
|
|
|
21
23
|
export declare function isOnAstStart(position: Position, astNode: Ast.TNode): boolean;
|
|
22
24
|
export declare function isOnAstEnd(position: Position, astNode: Ast.TNode): boolean;
|
|
23
25
|
export declare function isAfterAst(position: Position, astNode: Ast.TNode, isBoundIncluded: boolean): boolean;
|
|
26
|
+
export declare function isOnTokenStart(position: Position, token: PQP.Language.Token.Token): boolean;
|
|
27
|
+
export declare function isOnTokenEnd(position: Position, token: PQP.Language.Token.Token): boolean;
|
|
24
28
|
export declare function isInToken(position: Position, token: PQP.Language.Token.Token, isLowerBoundIncluded: boolean, isHigherBoundIncluded: boolean): boolean;
|
|
25
29
|
export declare function isBeforeTokenPosition(position: Position, tokenPosition: PQP.Language.Token.TokenPosition, isBoundIncluded: boolean): boolean;
|
|
26
30
|
export declare function isOnTokenPosition(position: Position, tokenPosition: PQP.Language.Token.TokenPosition): boolean;
|
|
@@ -11,43 +11,62 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.isAfterTokenPosition = exports.isOnTokenPosition = exports.isBeforeTokenPosition = exports.isInToken = exports.isAfterAst = exports.isOnAstEnd = exports.isOnAstStart = exports.isInAst = exports.isBeforeAst = exports.isAfterContext = exports.isOnContextEnd = exports.isOnContextStart = exports.isInContext = exports.isBeforeContext = exports.isAfterXor = exports.isOnXorEnd = exports.isOnXorStart = exports.isInXor = exports.isBeforeXor = exports.
|
|
14
|
+
exports.isAfterTokenPosition = exports.isOnTokenPosition = exports.isBeforeTokenPosition = exports.isInToken = exports.isOnTokenEnd = exports.isOnTokenStart = exports.isAfterAst = exports.isOnAstEnd = exports.isOnAstStart = exports.isInAst = exports.isBeforeAst = exports.isAfterContext = exports.isOnContextEnd = exports.isOnContextStart = exports.isInContext = exports.isBeforeContext = exports.isAfterXor = exports.isOnXorEnd = exports.isOnXorStart = exports.isInXor = exports.isBeforeXor = exports.rangeFromTokenRange = exports.rangeFromTokenPositions = exports.rangeFromXorNode = exports.positionFromTokenPosition = exports.compareTokenPosition = void 0;
|
|
15
|
+
const PQP = require("@microsoft/powerquery-parser");
|
|
15
16
|
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
16
17
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
17
|
-
function
|
|
18
|
+
function compareTokenPosition(position, tokenPosition) {
|
|
19
|
+
if (isOnTokenPosition(position, tokenPosition)) {
|
|
20
|
+
return "OnToken" /* OnToken */;
|
|
21
|
+
}
|
|
22
|
+
else if (isAfterTokenPosition(position, tokenPosition, false)) {
|
|
23
|
+
return "RightOfToken" /* RightOfToken */;
|
|
24
|
+
}
|
|
25
|
+
else if (isBeforeTokenPosition(position, tokenPosition, false)) {
|
|
26
|
+
return "LeftOfToken" /* LeftOfToken */;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new PQP.CommonError.InvariantError("position is not on, after, or before tokenPosition", {
|
|
30
|
+
position,
|
|
31
|
+
tokenPosition,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.compareTokenPosition = compareTokenPosition;
|
|
36
|
+
function positionFromTokenPosition(tokenPosition) {
|
|
18
37
|
return {
|
|
19
38
|
line: tokenPosition.lineNumber,
|
|
20
39
|
character: tokenPosition.lineCodeUnit,
|
|
21
40
|
};
|
|
22
41
|
}
|
|
23
|
-
exports.
|
|
42
|
+
exports.positionFromTokenPosition = positionFromTokenPosition;
|
|
24
43
|
// Attempts to turn a TXorNode into a Range.
|
|
25
44
|
// Returns undefined if there are no leafs nodes.
|
|
26
|
-
function
|
|
45
|
+
function rangeFromXorNode(nodeIdMapCollection, xorNode) {
|
|
27
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
47
|
const nodeId = xorNode.node.id;
|
|
29
48
|
const leftMostLeaf = parser_1.NodeIdMapUtils.leftMostLeaf(nodeIdMapCollection, nodeId);
|
|
30
49
|
const rightMostLeaf = yield parser_1.NodeIdMapUtils.rightMostLeaf(nodeIdMapCollection, nodeId);
|
|
31
50
|
return Promise.resolve(leftMostLeaf === undefined || rightMostLeaf === undefined
|
|
32
51
|
? undefined
|
|
33
|
-
:
|
|
52
|
+
: rangeFromTokenPositions(leftMostLeaf.tokenRange.positionStart, rightMostLeaf.tokenRange.positionEnd));
|
|
34
53
|
});
|
|
35
54
|
}
|
|
36
|
-
exports.
|
|
37
|
-
function
|
|
55
|
+
exports.rangeFromXorNode = rangeFromXorNode;
|
|
56
|
+
function rangeFromTokenPositions(startTokenPosition, endTokenPosition) {
|
|
38
57
|
if (startTokenPosition && endTokenPosition) {
|
|
39
58
|
return {
|
|
40
|
-
start:
|
|
41
|
-
end:
|
|
59
|
+
start: positionFromTokenPosition(startTokenPosition),
|
|
60
|
+
end: positionFromTokenPosition(endTokenPosition),
|
|
42
61
|
};
|
|
43
62
|
}
|
|
44
63
|
return undefined;
|
|
45
64
|
}
|
|
46
|
-
exports.
|
|
47
|
-
function
|
|
48
|
-
return
|
|
65
|
+
exports.rangeFromTokenPositions = rangeFromTokenPositions;
|
|
66
|
+
function rangeFromTokenRange(tokenRange) {
|
|
67
|
+
return rangeFromTokenPositions(tokenRange.positionStart, tokenRange.positionEnd);
|
|
49
68
|
}
|
|
50
|
-
exports.
|
|
69
|
+
exports.rangeFromTokenRange = rangeFromTokenRange;
|
|
51
70
|
function isBeforeXor(position, xorNode, isBoundIncluded) {
|
|
52
71
|
switch (xorNode.kind) {
|
|
53
72
|
case "Ast" /* Ast */:
|
|
@@ -169,6 +188,14 @@ function isAfterAst(position, astNode, isBoundIncluded) {
|
|
|
169
188
|
return isAfterTokenPosition(position, astNode.tokenRange.positionEnd, isBoundIncluded);
|
|
170
189
|
}
|
|
171
190
|
exports.isAfterAst = isAfterAst;
|
|
191
|
+
function isOnTokenStart(position, token) {
|
|
192
|
+
return position.line === token.positionStart.lineNumber && position.character === token.positionStart.lineCodeUnit;
|
|
193
|
+
}
|
|
194
|
+
exports.isOnTokenStart = isOnTokenStart;
|
|
195
|
+
function isOnTokenEnd(position, token) {
|
|
196
|
+
return position.line === token.positionEnd.lineNumber && position.character === token.positionEnd.lineCodeUnit;
|
|
197
|
+
}
|
|
198
|
+
exports.isOnTokenEnd = isOnTokenEnd;
|
|
172
199
|
function isInToken(position, token, isLowerBoundIncluded, isHigherBoundIncluded) {
|
|
173
200
|
return (!isBeforeTokenPosition(position, token.positionStart, isLowerBoundIncluded) &&
|
|
174
201
|
!isAfterTokenPosition(position, token.positionEnd, isHigherBoundIncluded));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positionUtils.js","sourceRoot":"","sources":["../../src/powerquery-language-services/positionUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"positionUtils.js","sourceRoot":"","sources":["../../src/powerquery-language-services/positionUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CommonError, Result } from "@microsoft/powerquery-parser";
|
|
2
2
|
import { Hover, SignatureHelp, SignatureInformation } from "vscode-languageserver-types";
|
|
3
3
|
import { AutocompleteItemProviderContext, HoverProviderContext, ILibraryProvider, SignatureProviderContext } from "./commonTypes";
|
|
4
|
+
import { ExternalType, Inspection } from "..";
|
|
4
5
|
import { Library } from "../library";
|
|
5
|
-
import { Inspection } from "..";
|
|
6
6
|
export declare class LibraryProvider implements ILibraryProvider {
|
|
7
7
|
protected readonly locale: string;
|
|
8
|
-
readonly externalTypeResolver:
|
|
8
|
+
readonly externalTypeResolver: ExternalType.TExternalTypeResolverFn;
|
|
9
9
|
readonly libraryDefinitions: Library.LibraryDefinitions;
|
|
10
10
|
protected readonly signatureInformationByLabel: Map<string, SignatureInformation>;
|
|
11
11
|
constructor(library: Library.ILibrary, locale: string);
|
|
@@ -38,7 +38,7 @@ class LibraryProvider {
|
|
|
38
38
|
const autocompleteItems = [];
|
|
39
39
|
const contextText = context.text;
|
|
40
40
|
for (const [label, definition] of this.libraryDefinitions.entries()) {
|
|
41
|
-
autocompleteItems.push(inspection_1.AutocompleteItemUtils.
|
|
41
|
+
autocompleteItems.push(inspection_1.AutocompleteItemUtils.fromLibraryDefinition(label, definition, contextText));
|
|
42
42
|
}
|
|
43
43
|
trace.exit();
|
|
44
44
|
return autocompleteItems;
|
|
@@ -120,7 +120,7 @@ class LibraryProvider {
|
|
|
120
120
|
getOrCreateSignatureInformation(key) {
|
|
121
121
|
if (!this.signatureInformationByLabel.has(key)) {
|
|
122
122
|
const definition = library_1.LibraryUtils.assertAsFunction(this.libraryDefinitions.get(key));
|
|
123
|
-
this.signatureInformationByLabel.set(key, library_1.LibraryUtils.
|
|
123
|
+
this.signatureInformationByLabel.set(key, library_1.LibraryUtils.signatureInformation(definition));
|
|
124
124
|
}
|
|
125
125
|
return powerquery_parser_1.Assert.asDefined(this.signatureInformationByLabel.get(key));
|
|
126
126
|
}
|