Skip to content

Commit 0410ab8

Browse files
committed
Add featureFlags param with lint ignore
1 parent 7ac83f4 commit 0410ab8

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

expressions/src/completion.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {DescriptionPair} from "./completion/descriptionDictionary.js";
22
import {Dictionary, isDictionary} from "./data/dictionary.js";
33
import {ExpressionData} from "./data/expressiondata.js";
44
import {Evaluator} from "./evaluator.js";
5+
import {FeatureFlags} from "./features.js";
56
import {wellKnownFunctions} from "./funcs.js";
67
import {FunctionDefinition, FunctionInfo} from "./funcs/info.js";
78
import {Lexer, Token, TokenType} from "./lexer.js";
@@ -26,13 +27,16 @@ export type CompletionItem = {
2627
* @param context Context available for the expression
2728
* @param extensionFunctions List of functions available
2829
* @param functions Optional map of functions to use during evaluation
30+
* @param featureFlags Optional feature flags to control which features are enabled
2931
* @returns Array of completion items
3032
*/
3133
export function complete(
3234
input: string,
3335
context: Dictionary,
3436
extensionFunctions: FunctionInfo[],
35-
functions?: Map<string, FunctionDefinition>
37+
functions?: Map<string, FunctionDefinition>,
38+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
39+
featureFlags?: FeatureFlags
3640
): CompletionItem[] {
3741
// Lex
3842
const lexer = new Lexer(input);

languageservice/src/complete.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export async function complete(
141141
func.description = getFunctionDescription(func.name);
142142
}
143143

144-
return getExpressionCompletionItems(token, context, extensionFunctions, newPos);
144+
return getExpressionCompletionItems(token, context, extensionFunctions, newPos, config?.featureFlags);
145145
}
146146

147147
const indentation = guessIndentation(newDoc, 2, true); // Use 2 spaces as default and most common for YAML
@@ -531,7 +531,8 @@ function getExpressionCompletionItems(
531531
token: TemplateToken,
532532
context: DescriptionDictionary,
533533
extensionFunctions: FunctionInfo[],
534-
pos: Position
534+
pos: Position,
535+
featureFlags?: FeatureFlags
535536
): CompletionItem[] {
536537
if (!token.range) {
537538
return [];
@@ -550,8 +551,8 @@ function getExpressionCompletionItems(
550551
const expressionInput = (getExpressionInput(currentInput, cursorOffset) || "").trim();
551552

552553
try {
553-
return completeExpression(expressionInput, context, extensionFunctions, validatorFunctions).map(item =>
554-
mapExpressionCompletionItem(item, currentInput[cursorOffset])
554+
return completeExpression(expressionInput, context, extensionFunctions, validatorFunctions, featureFlags).map(
555+
item => mapExpressionCompletionItem(item, currentInput[cursorOffset])
555556
);
556557
} catch (e) {
557558
error(`Error while completing expression: '${(e as Error)?.message || "<no details>"}'`);

0 commit comments

Comments
 (0)