diff --git a/actions-languageserver/src/on-completion.ts b/actions-languageserver/src/on-completion.ts index dcb98a4..892646a 100644 --- a/actions-languageserver/src/on-completion.ts +++ b/actions-languageserver/src/on-completion.ts @@ -7,10 +7,7 @@ import { Octokit } from "@octokit/rest"; import { CompletionItem, DocumentUri, Position } from "vscode-languageserver"; import { TextDocument } from "vscode-languageserver-textdocument"; import { RepositoryContext } from "./initializationOptions"; -import { getJobNames } from "./value-providers/needs"; import { getRunnerLabels } from "./value-providers/runs-on"; -import { WorkflowTemplate } from "@github/actions-workflow-parser"; - export async function onCompletion( position: Position, @@ -20,8 +17,8 @@ export async function onCompletion( repoWorkflowMap: Map ): Promise { const config: ValueProviderConfig = { - getCustomValues: async (key: string, context: WorkflowContext, template: WorkflowTemplate | undefined) => - getCustomValues(key, context, sessionToken, repoWorkflowMap, template), + getCustomValues: async (key: string, context: WorkflowContext) => + getCustomValues(key, context, sessionToken, repoWorkflowMap), }; return await complete(document, position, config); } @@ -30,8 +27,7 @@ async function getCustomValues( key: string, context: WorkflowContext, sessionToken: string | undefined, - repoWorkspaceMap: Map, - template: WorkflowTemplate | undefined + repoWorkspaceMap: Map ) { if (!sessionToken) { return; @@ -48,7 +44,4 @@ async function getCustomValues( }); return await getRunnerLabels(octokit, repo.owner, repo.name); } - if (key === "needs" && template) { - return await getJobNames(template); - } } diff --git a/actions-languageserver/src/value-providers/needs.ts b/actions-languageserver/src/value-providers/needs.ts deleted file mode 100644 index f1a91ea..0000000 --- a/actions-languageserver/src/value-providers/needs.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Value } from "@github/actions-languageservice/value-providers/config"; -import { WorkflowTemplate } from "@github/actions-workflow-parser/model/workflow-template"; - -export async function getJobNames( - template: WorkflowTemplate -): Promise { - const labels = new Set([ - // "dummy-job", - ]); - - const jobsValues = template.jobs.jobNames; - if (jobsValues) { - for (const job of jobsValues?.values() || []) { - labels.add(job); - } - } - - return Array.from(labels).map((label) => ({ label })); -} diff --git a/actions-languageservice/src/complete.ts b/actions-languageservice/src/complete.ts index 6c9a3d8..ff4333c 100644 --- a/actions-languageservice/src/complete.ts +++ b/actions-languageservice/src/complete.ts @@ -1,4 +1,4 @@ -import { convertWorkflowTemplate, parseWorkflow, WorkflowTemplate } from "@github/actions-workflow-parser"; +import { parseWorkflow } from "@github/actions-workflow-parser"; import { SEQUENCE_TYPE, STRING_TYPE, @@ -31,24 +31,16 @@ export async function complete( content: newDoc.getText(), }; const result = parseWorkflow(file.name, [file], nullTrace); - const [innerToken, parent] = findInnerTokenAndParent(newPos, result.value); - let template: WorkflowTemplate | undefined = undefined; - const valueToRemove = parent?.definition?.keyname; - if (result.value) { - template = convertWorkflowTemplate(result.context, result.value); - console.log("template", template); - } + const [innerToken, parent] = findInnerTokenAndParent(newPos, result.value); const values = await getValues( innerToken, parent, newPos, textDocument.uri, - valueProviderConfig, - template, + valueProviderConfig ); - const valuesFiltered = values.filter((x) => x.label !== valueToRemove); - return valuesFiltered.map((value) => CompletionItem.create(value.label)); + return values.map((value) => CompletionItem.create(value.label)); } async function getValues( @@ -56,8 +48,7 @@ async function getValues( parent: TemplateToken | null, position: Position, workflowUri: string, - valueProviderConfig: ValueProviderConfig | undefined, - template: WorkflowTemplate | undefined, + valueProviderConfig: ValueProviderConfig | undefined ): Promise { if (!parent) { return []; @@ -71,21 +62,16 @@ async function getValues( } const existingValues = getExistingValues(token, parent); - console.log("Parent", parent); - console.log("Token", token); let customValues: Value[] | undefined = undefined; if (token?.definition?.key) { customValues = await valueProviderConfig?.getCustomValues( token.definition.key, - { uri: workflowUri }, - template, + { uri: workflowUri } ); - // add to custom values? } if (customValues !== undefined) { - console.log("filterAndSortCompletionOptions with customValues") return filterAndSortCompletionOptions(customValues, existingValues); } @@ -101,7 +87,6 @@ async function getValues( } const values = valueProvider(); - console.log("filterAndSortCompletionOptions with values") return filterAndSortCompletionOptions(values, existingValues); } diff --git a/actions-languageservice/src/utils/find-token.ts b/actions-languageservice/src/utils/find-token.ts index 6b3ed9c..0faefea 100644 --- a/actions-languageservice/src/utils/find-token.ts +++ b/actions-languageservice/src/utils/find-token.ts @@ -47,10 +47,7 @@ export function findInnerTokenAndParent( if (nullNodeOnLine(pos, key, value)) { return [value, key]; } - //value.definition?.keyname = key.value; - if (value.definition){ - value.definition.keyname = key.toString(); - } + s.push(value); } continue; @@ -77,8 +74,8 @@ function posInToken(pos: Position, token: TemplateToken): boolean { const r = token.range; // TokenRange is one-based, Position is zero-based - const tokenLine = pos.line //+ 1; - const tokenChar = pos.character //+ 1; + const tokenLine = pos.line + 1; + const tokenChar = pos.character + 1; // Check lines if (r.start[0] > tokenLine || tokenLine > r.end[0]) { diff --git a/actions-languageservice/src/value-providers/config.ts b/actions-languageservice/src/value-providers/config.ts index baecf7a..7ef28b7 100644 --- a/actions-languageservice/src/value-providers/config.ts +++ b/actions-languageservice/src/value-providers/config.ts @@ -1,5 +1,3 @@ -import { WorkflowTemplate } from "@github/actions-workflow-parser/model/workflow-template"; - export interface Value { label: string; description?: string; @@ -13,8 +11,7 @@ export interface WorkflowContext { export interface ValueProviderConfig { getCustomValues: ( key: string, - context: WorkflowContext, - template: WorkflowTemplate | undefined + context: WorkflowContext ) => Promise; getActionInputs?: ( owner: string, diff --git a/actions-languageservice/src/value-providers/needs.ts b/actions-languageservice/src/value-providers/needs.ts deleted file mode 100644 index b26918d..0000000 --- a/actions-languageservice/src/value-providers/needs.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Value } from "./config"; -import { WorkflowTemplate } from "@github/actions-workflow-parser/model/workflow-template"; - -export async function getJobNames( - template: WorkflowTemplate -): Promise { - const labels = new Set([ - "dummy-job", - ]); - - const jobsValues = template.jobs.jobNames; - if (jobsValues) { - for (const job of jobsValues?.values() || []) { - labels.add(job); - } - } - - return Array.from(labels).map((label) => ({ label })); -}