Skip to content

Commit b97707c

Browse files
committed
feat(workflow): enable standalone lockfile documents
Register standalone Actions lockfiles with the extension, opt into dependency support, and send lockfile documents to the language server. Theme: standalone-lockfile Status: wip
1 parent 4df8bd3 commit b97707c

4 files changed

Lines changed: 23 additions & 10 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
"onView:workflows",
2727
"onView:settings",
2828
"workspaceContains:**/.github/workflows/**",
29+
"workspaceContains:**/.github/actions.lock.yml",
30+
"workspaceContains:**/.github/actions.lock.yaml",
2931
"workspaceContains:**/action.yml",
3032
"workspaceContains:**/action.yaml"
3133
],
@@ -39,6 +41,8 @@
3941
"GitHub Actions Workflow"
4042
],
4143
"filenamePatterns": [
44+
"**/.github/actions.lock.yml",
45+
"**/.github/actions.lock.yaml",
4246
"**/.github/workflows/**/*.yml",
4347
"**/.github/workflows/**/*.yaml"
4448
],
@@ -563,8 +567,8 @@
563567
"webpack-cli": "^4.10.0"
564568
},
565569
"dependencies": {
566-
"@actions/languageserver": "^0.3.46",
567-
"@actions/workflow-parser": "^0.3.46",
570+
"@actions/languageserver": "^0.3.53",
571+
"@actions/workflow-parser": "^0.3.53",
568572
"@octokit/rest": "^21.1.1",
569573
"@vscode/vsce": "^2.19.0",
570574
"buffer": "^6.0.3",
@@ -589,4 +593,4 @@
589593
"elliptic": "6.6.1"
590594
}
591595
}
592-
}
596+
}

src/workflow/documentSelector.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ export const WorkflowSelector = {
22
pattern: "**/.github/workflows/*.{yaml,yml}"
33
};
44

5+
export const DependencyLockfileSelector = {
6+
pattern: "**/.github/actions.lock.{yaml,yml}"
7+
};
8+
59
export const ActionSelector = {
610
pattern: "**/action.{yml,yaml}"
711
};

src/workflow/languageServer.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {LanguageClient as NodeLanguageClient, ServerOptions, TransportKind} from
1010
import {userAgent} from "../api/api";
1111
import {getSession} from "../auth/auth";
1212
import {getGitHubContext} from "../git/repository";
13-
import {WorkflowSelector, ActionSelector} from "./documentSelector";
13+
import {ActionSelector, DependencyLockfileSelector, WorkflowSelector} from "./documentSelector";
1414
import {getGitHubApiUri, useEnterprise} from "../configuration/configuration";
1515

1616
let client: BaseLanguageClient;
@@ -24,6 +24,13 @@ export async function initLanguageServer(context: vscode.ExtensionContext) {
2424
const session = await getSession();
2525

2626
const ghContext = await getGitHubContext();
27+
const experimentalFeatures: NonNullable<InitializationOptions["experimentalFeatures"]> = {
28+
allowCaseFunction: true
29+
};
30+
Object.assign(experimentalFeatures, {
31+
allowDependencies: true
32+
});
33+
2734
const initializationOptions: InitializationOptions = {
2835
sessionToken: session?.accessToken,
2936
userAgent: userAgent,
@@ -36,13 +43,11 @@ export async function initLanguageServer(context: vscode.ExtensionContext) {
3643
organizationOwned: repo.organizationOwned
3744
})),
3845
logLevel: PRODUCTION ? LogLevel.Warn : LogLevel.Debug,
39-
experimentalFeatures: {
40-
allowCaseFunction: true
41-
}
46+
experimentalFeatures
4247
};
4348

4449
const clientOptions: LanguageClientOptions = {
45-
documentSelector: [WorkflowSelector, ActionSelector],
50+
documentSelector: [WorkflowSelector, DependencyLockfileSelector, ActionSelector],
4651
initializationOptions: initializationOptions,
4752
progressOnInitialization: true
4853
};

0 commit comments

Comments
 (0)