diff --git a/languageservice/src/hover.test.ts b/languageservice/src/hover.test.ts index eeeccce..eaed540 100644 --- a/languageservice/src/hover.test.ts +++ b/languageservice/src/hover.test.ts @@ -154,7 +154,8 @@ jobs: // The `ref` is a `string` definition and inherits the context from `step-with` const expected = - "Available expression contexts: `github`, `inputs`, `vars`, `needs`, `strategy`, `matrix`, `secrets`, `steps`, `job`, `runner`, `env`, `hashFiles(1,255)`"; + "Available expression contexts: `github`, `inputs`, `vars`, `needs`, `strategy`, `matrix`, `secrets`, `steps`, `job`, `runner`, `env`\n\n" + + "Available expression functions: `hashFiles`"; expect(result?.contents).toEqual(expected); }); }); @@ -180,7 +181,8 @@ jobs: const expected = "The branch, tag or SHA to checkout.\n\n" + - "Available expression contexts: `github`, `inputs`, `vars`, `needs`, `strategy`, `matrix`, `secrets`, `steps`, `job`, `runner`, `env`, `hashFiles(1,255)`"; + "Available expression contexts: `github`, `inputs`, `vars`, `needs`, `strategy`, `matrix`, `secrets`, `steps`, `job`, `runner`, `env`\n\n" + + "Available expression functions: `hashFiles`"; expect(result?.contents).toEqual(expected); }); diff --git a/languageservice/src/hover.ts b/languageservice/src/hover.ts index 35e8600..874e268 100644 --- a/languageservice/src/hover.ts +++ b/languageservice/src/hover.ts @@ -112,13 +112,23 @@ function appendContext(description: string, allowedContext?: string[]) { if (!allowedContext || allowedContext.length == 0) { return description; } + let {namedContexts, functions} = splitAllowedContext(allowedContext); + let namedContextsString = ""; + let functionsString = ""; - const contextDescription = `Available expression contexts: ${allowedContext.map(c => `\`${c}\``).join(", ")}`; - if (description.length == 0) { - return contextDescription; + if (namedContexts.length > 0) { + namedContextsString = `${description.length > 0 ? `\n\n` : ""}Available expression contexts: ${namedContexts + .map(x => `\`${x}\``) + .join(", ")}`; + } + if (functions.length > 0) { + functionsString = `${namedContexts.length > 0 ? `\n\n` : ""}Available expression functions: ${functions + .map(x => x.name) + .map(x => `\`${x}\``) + .join(", ")}`; } - return `${description}\n\n${contextDescription}`; + return `${description}${namedContextsString}${functionsString}`; } async function getDescription(