@actions/languageserver 0.3.28 → 0.3.30
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/dist/cli.bundle.cjs +175 -50
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +8 -2
- package/dist/connection.js.map +1 -1
- package/package.json +4 -4
package/dist/cli.bundle.cjs
CHANGED
|
@@ -4326,15 +4326,15 @@ var require_main2 = __commonJS({
|
|
|
4326
4326
|
}
|
|
4327
4327
|
InlineValueContext2.is = is;
|
|
4328
4328
|
})(InlineValueContext = exports3.InlineValueContext || (exports3.InlineValueContext = {}));
|
|
4329
|
-
var
|
|
4330
|
-
(function(
|
|
4331
|
-
|
|
4332
|
-
|
|
4329
|
+
var InlayHintKind2;
|
|
4330
|
+
(function(InlayHintKind3) {
|
|
4331
|
+
InlayHintKind3.Type = 1;
|
|
4332
|
+
InlayHintKind3.Parameter = 2;
|
|
4333
4333
|
function is(value) {
|
|
4334
4334
|
return value === 1 || value === 2;
|
|
4335
4335
|
}
|
|
4336
|
-
|
|
4337
|
-
})(
|
|
4336
|
+
InlayHintKind3.is = is;
|
|
4337
|
+
})(InlayHintKind2 = exports3.InlayHintKind || (exports3.InlayHintKind = {}));
|
|
4338
4338
|
var InlayHintLabelPart;
|
|
4339
4339
|
(function(InlayHintLabelPart2) {
|
|
4340
4340
|
function create(value) {
|
|
@@ -4347,8 +4347,8 @@ var require_main2 = __commonJS({
|
|
|
4347
4347
|
}
|
|
4348
4348
|
InlayHintLabelPart2.is = is;
|
|
4349
4349
|
})(InlayHintLabelPart = exports3.InlayHintLabelPart || (exports3.InlayHintLabelPart = {}));
|
|
4350
|
-
var
|
|
4351
|
-
(function(
|
|
4350
|
+
var InlayHint2;
|
|
4351
|
+
(function(InlayHint3) {
|
|
4352
4352
|
function create(position, label, kind) {
|
|
4353
4353
|
var result = { position, label };
|
|
4354
4354
|
if (kind !== void 0) {
|
|
@@ -4356,13 +4356,13 @@ var require_main2 = __commonJS({
|
|
|
4356
4356
|
}
|
|
4357
4357
|
return result;
|
|
4358
4358
|
}
|
|
4359
|
-
|
|
4359
|
+
InlayHint3.create = create;
|
|
4360
4360
|
function is(value) {
|
|
4361
4361
|
var candidate = value;
|
|
4362
|
-
return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 ||
|
|
4362
|
+
return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind2.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit2.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));
|
|
4363
4363
|
}
|
|
4364
|
-
|
|
4365
|
-
})(
|
|
4364
|
+
InlayHint3.is = is;
|
|
4365
|
+
})(InlayHint2 = exports3.InlayHint || (exports3.InlayHint = {}));
|
|
4366
4366
|
var WorkspaceFolder;
|
|
4367
4367
|
(function(WorkspaceFolder2) {
|
|
4368
4368
|
function is(value) {
|
|
@@ -24430,6 +24430,10 @@ var DEFAULT_RUNNER_LABELS = [
|
|
|
24430
24430
|
"macos-14",
|
|
24431
24431
|
"self-hosted"
|
|
24432
24432
|
];
|
|
24433
|
+
var runsOnValueProvider = {
|
|
24434
|
+
kind: ValueProviderKind.SuggestedValues,
|
|
24435
|
+
get: () => Promise.resolve(stringsToValues(DEFAULT_RUNNER_LABELS))
|
|
24436
|
+
};
|
|
24433
24437
|
var defaultValueProviders = {
|
|
24434
24438
|
needs: {
|
|
24435
24439
|
kind: ValueProviderKind.AllowedValues,
|
|
@@ -24443,10 +24447,8 @@ var defaultValueProviders = {
|
|
|
24443
24447
|
kind: ValueProviderKind.SuggestedValues,
|
|
24444
24448
|
get: (context, existingValues) => Promise.resolve(reusableJobSecrets(context, existingValues))
|
|
24445
24449
|
},
|
|
24446
|
-
"runs-on":
|
|
24447
|
-
|
|
24448
|
-
get: () => Promise.resolve(stringsToValues(DEFAULT_RUNNER_LABELS))
|
|
24449
|
-
}
|
|
24450
|
+
"runs-on": runsOnValueProvider,
|
|
24451
|
+
"runs-on-labels": runsOnValueProvider
|
|
24450
24452
|
};
|
|
24451
24453
|
|
|
24452
24454
|
// ../languageservice/dist/value-providers/definition.js
|
|
@@ -24553,6 +24555,12 @@ function oneOfValues(oneOfDefinition, definitions, indentation, mode, tokenStruc
|
|
|
24553
24555
|
continue;
|
|
24554
24556
|
}
|
|
24555
24557
|
}
|
|
24558
|
+
if (!tokenStructure && mode === DefinitionValueMode.Key) {
|
|
24559
|
+
const variantBucket = getStructuralBucket(variantDef.definitionType);
|
|
24560
|
+
if (variantBucket !== "scalar") {
|
|
24561
|
+
continue;
|
|
24562
|
+
}
|
|
24563
|
+
}
|
|
24556
24564
|
values.push(...definitionValues(variantDef, indentation, mode, tokenStructure));
|
|
24557
24565
|
}
|
|
24558
24566
|
return distinctValues(values);
|
|
@@ -24560,7 +24568,8 @@ function oneOfValues(oneOfDefinition, definitions, indentation, mode, tokenStruc
|
|
|
24560
24568
|
function distinctValues(values) {
|
|
24561
24569
|
const map = /* @__PURE__ */ new Map();
|
|
24562
24570
|
for (const value of values) {
|
|
24563
|
-
|
|
24571
|
+
const key = value.detail ? `${value.label}\0${value.detail}` : value.label;
|
|
24572
|
+
map.set(key, value);
|
|
24564
24573
|
}
|
|
24565
24574
|
return Array.from(map.values());
|
|
24566
24575
|
}
|
|
@@ -24610,10 +24619,10 @@ ${indentation}${key}:
|
|
|
24610
24619
|
${indentation}${indentation}- ` : `${key}:
|
|
24611
24620
|
${indentation}- `;
|
|
24612
24621
|
results.push({
|
|
24613
|
-
label:
|
|
24622
|
+
label: key,
|
|
24614
24623
|
description,
|
|
24624
|
+
detail: needsQualifier ? "list" : void 0,
|
|
24615
24625
|
insertText,
|
|
24616
|
-
filterText: needsQualifier ? key : void 0,
|
|
24617
24626
|
sortText: needsQualifier ? `${key} 1` : void 0
|
|
24618
24627
|
});
|
|
24619
24628
|
}
|
|
@@ -24623,10 +24632,10 @@ ${indentation}${key}:
|
|
|
24623
24632
|
${indentation}${indentation}` : `${key}:
|
|
24624
24633
|
${indentation}`;
|
|
24625
24634
|
results.push({
|
|
24626
|
-
label:
|
|
24635
|
+
label: key,
|
|
24627
24636
|
description,
|
|
24637
|
+
detail: needsQualifier ? "full syntax" : void 0,
|
|
24628
24638
|
insertText,
|
|
24629
|
-
filterText: needsQualifier ? key : void 0,
|
|
24630
24639
|
sortText: needsQualifier ? `${key} 2` : void 0
|
|
24631
24640
|
});
|
|
24632
24641
|
}
|
|
@@ -24676,6 +24685,8 @@ async function complete2(textDocument, position, config) {
|
|
|
24676
24685
|
const indentation = guessIndentation(newDoc, 2, true);
|
|
24677
24686
|
const indentString = " ".repeat(indentation.tabSize);
|
|
24678
24687
|
const values = await getValues(token, keyToken, parent, config?.valueProviderConfig, workflowContext, indentString);
|
|
24688
|
+
const escapeHatches = getEscapeHatchCompletions(token, keyToken, indentString, newPos);
|
|
24689
|
+
values.push(...escapeHatches);
|
|
24679
24690
|
let replaceRange;
|
|
24680
24691
|
if (token?.range) {
|
|
24681
24692
|
replaceRange = mapRange(token.range);
|
|
@@ -24694,8 +24705,17 @@ async function complete2(textDocument, position, config) {
|
|
|
24694
24705
|
}
|
|
24695
24706
|
return values.map((value) => {
|
|
24696
24707
|
const newText = value.insertText || value.label;
|
|
24708
|
+
let textEdit;
|
|
24709
|
+
if (value.textEdit) {
|
|
24710
|
+
textEdit = import_vscode_languageserver_types.TextEdit.replace(value.textEdit.range, value.textEdit.newText);
|
|
24711
|
+
} else if (replaceRange) {
|
|
24712
|
+
textEdit = import_vscode_languageserver_types.TextEdit.replace(replaceRange, newText);
|
|
24713
|
+
} else {
|
|
24714
|
+
textEdit = import_vscode_languageserver_types.TextEdit.insert(position, newText);
|
|
24715
|
+
}
|
|
24697
24716
|
const item = {
|
|
24698
24717
|
label: value.label,
|
|
24718
|
+
detail: value.detail,
|
|
24699
24719
|
filterText: value.filterText,
|
|
24700
24720
|
sortText: value.sortText,
|
|
24701
24721
|
documentation: value.description && {
|
|
@@ -24703,7 +24723,7 @@ async function complete2(textDocument, position, config) {
|
|
|
24703
24723
|
value: value.description
|
|
24704
24724
|
},
|
|
24705
24725
|
tags: value.deprecated ? [import_vscode_languageserver_types.CompletionItemTag.Deprecated] : void 0,
|
|
24706
|
-
textEdit
|
|
24726
|
+
textEdit
|
|
24707
24727
|
};
|
|
24708
24728
|
return item;
|
|
24709
24729
|
});
|
|
@@ -24759,6 +24779,80 @@ function getTokenStructure(token) {
|
|
|
24759
24779
|
return void 0;
|
|
24760
24780
|
}
|
|
24761
24781
|
}
|
|
24782
|
+
function getEscapeHatchCompletions(token, keyToken, indentation, position) {
|
|
24783
|
+
const tokenStructure = getTokenStructure(token);
|
|
24784
|
+
if (tokenStructure !== void 0) {
|
|
24785
|
+
return [];
|
|
24786
|
+
}
|
|
24787
|
+
if (!keyToken?.definition) {
|
|
24788
|
+
return [];
|
|
24789
|
+
}
|
|
24790
|
+
const def = keyToken.definition;
|
|
24791
|
+
const schema2 = getWorkflowSchema();
|
|
24792
|
+
const buckets = {
|
|
24793
|
+
sequence: false,
|
|
24794
|
+
mapping: false
|
|
24795
|
+
};
|
|
24796
|
+
if (def instanceof OneOfDefinition) {
|
|
24797
|
+
for (const variantKey of def.oneOf) {
|
|
24798
|
+
const variantDef = schema2.definitions[variantKey];
|
|
24799
|
+
if (variantDef) {
|
|
24800
|
+
switch (variantDef.definitionType) {
|
|
24801
|
+
case DefinitionType.Sequence:
|
|
24802
|
+
buckets.sequence = true;
|
|
24803
|
+
break;
|
|
24804
|
+
case DefinitionType.Mapping:
|
|
24805
|
+
buckets.mapping = true;
|
|
24806
|
+
break;
|
|
24807
|
+
}
|
|
24808
|
+
}
|
|
24809
|
+
}
|
|
24810
|
+
} else {
|
|
24811
|
+
switch (def.definitionType) {
|
|
24812
|
+
case DefinitionType.Sequence:
|
|
24813
|
+
buckets.sequence = true;
|
|
24814
|
+
break;
|
|
24815
|
+
case DefinitionType.Mapping:
|
|
24816
|
+
buckets.mapping = true;
|
|
24817
|
+
break;
|
|
24818
|
+
}
|
|
24819
|
+
}
|
|
24820
|
+
const results = [];
|
|
24821
|
+
const keyName = isString(keyToken) ? keyToken.value : "";
|
|
24822
|
+
const keyRange = keyToken.range;
|
|
24823
|
+
if (!keyRange || !keyName) {
|
|
24824
|
+
return [];
|
|
24825
|
+
}
|
|
24826
|
+
const editRange = {
|
|
24827
|
+
start: { line: keyRange.start.line - 1, character: keyRange.start.column - 1 },
|
|
24828
|
+
end: { line: position.line, character: position.character }
|
|
24829
|
+
};
|
|
24830
|
+
if (buckets.sequence) {
|
|
24831
|
+
results.push({
|
|
24832
|
+
label: "(switch to list)",
|
|
24833
|
+
sortText: "zzz_switch_1",
|
|
24834
|
+
filterText: keyName,
|
|
24835
|
+
textEdit: {
|
|
24836
|
+
range: editRange,
|
|
24837
|
+
newText: `${keyName}:
|
|
24838
|
+
${indentation}- `
|
|
24839
|
+
}
|
|
24840
|
+
});
|
|
24841
|
+
}
|
|
24842
|
+
if (buckets.mapping) {
|
|
24843
|
+
results.push({
|
|
24844
|
+
label: "(switch to mapping)",
|
|
24845
|
+
sortText: "zzz_switch_2",
|
|
24846
|
+
filterText: keyName,
|
|
24847
|
+
textEdit: {
|
|
24848
|
+
range: editRange,
|
|
24849
|
+
newText: `${keyName}:
|
|
24850
|
+
${indentation}`
|
|
24851
|
+
}
|
|
24852
|
+
});
|
|
24853
|
+
}
|
|
24854
|
+
return results;
|
|
24855
|
+
}
|
|
24762
24856
|
function getExistingValues(token, parent) {
|
|
24763
24857
|
if (token) {
|
|
24764
24858
|
if (!isString(token)) {
|
|
@@ -25575,8 +25669,43 @@ function expressionHover(exprPos, context, namedContexts, functions) {
|
|
|
25575
25669
|
}
|
|
25576
25670
|
}
|
|
25577
25671
|
|
|
25672
|
+
// ../languageservice/dist/inlay-hints.js
|
|
25673
|
+
var import_vscode_languageserver_types2 = __toESM(require_main2(), 1);
|
|
25674
|
+
function getInlayHints(document) {
|
|
25675
|
+
const file = {
|
|
25676
|
+
name: document.uri,
|
|
25677
|
+
content: document.getText()
|
|
25678
|
+
};
|
|
25679
|
+
const result = fetchOrParseWorkflow(file, document.uri);
|
|
25680
|
+
if (!result?.value) {
|
|
25681
|
+
return [];
|
|
25682
|
+
}
|
|
25683
|
+
const hints = [];
|
|
25684
|
+
for (const [parent, token, key] of TemplateToken.traverse(result.value)) {
|
|
25685
|
+
const validationToken = key || parent || token;
|
|
25686
|
+
const validationDefinition = validationToken.definition;
|
|
25687
|
+
if (isString(token) && token.range && validationDefinition?.key === "cron-pattern") {
|
|
25688
|
+
const cronValue = token.value;
|
|
25689
|
+
const description = getCronDescription(cronValue);
|
|
25690
|
+
if (description) {
|
|
25691
|
+
hints.push({
|
|
25692
|
+
position: {
|
|
25693
|
+
line: token.range.end.line - 1,
|
|
25694
|
+
character: token.range.end.column - 1
|
|
25695
|
+
// Convert from 1-based to 0-based
|
|
25696
|
+
},
|
|
25697
|
+
label: `\u2192 ${description}`,
|
|
25698
|
+
kind: import_vscode_languageserver_types2.InlayHintKind.Parameter,
|
|
25699
|
+
paddingLeft: true
|
|
25700
|
+
});
|
|
25701
|
+
}
|
|
25702
|
+
}
|
|
25703
|
+
}
|
|
25704
|
+
return hints;
|
|
25705
|
+
}
|
|
25706
|
+
|
|
25578
25707
|
// ../languageservice/dist/validate.js
|
|
25579
|
-
var
|
|
25708
|
+
var import_vscode_languageserver_types4 = __toESM(require_main2(), 1);
|
|
25580
25709
|
|
|
25581
25710
|
// ../languageservice/dist/expression-validation/error-dictionary.js
|
|
25582
25711
|
var AccessError = class extends Error {
|
|
@@ -25655,7 +25784,7 @@ var ValidationEvaluator = class extends Evaluator {
|
|
|
25655
25784
|
};
|
|
25656
25785
|
|
|
25657
25786
|
// ../languageservice/dist/validate-action.js
|
|
25658
|
-
var
|
|
25787
|
+
var import_vscode_languageserver_types3 = __toESM(require_main2(), 1);
|
|
25659
25788
|
async function validateAction(diagnostics, stepToken, step, config) {
|
|
25660
25789
|
if (!isMapping(stepToken) || !step || !isActionStep(step) || !config?.actionsMetadataProvider) {
|
|
25661
25790
|
return;
|
|
@@ -25667,7 +25796,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25667
25796
|
const actionMetadata = await config.actionsMetadataProvider.fetchActionMetadata(action);
|
|
25668
25797
|
if (actionMetadata === void 0) {
|
|
25669
25798
|
diagnostics.push({
|
|
25670
|
-
severity:
|
|
25799
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25671
25800
|
range: mapRange(step.uses.range),
|
|
25672
25801
|
message: `Unable to resolve action \`${step.uses.value}\`, repository or version not found`
|
|
25673
25802
|
});
|
|
@@ -25695,7 +25824,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25695
25824
|
for (const [input, inputToken] of stepInputs) {
|
|
25696
25825
|
if (!actionInputs[input]) {
|
|
25697
25826
|
diagnostics.push({
|
|
25698
|
-
severity:
|
|
25827
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25699
25828
|
range: mapRange(inputToken.range),
|
|
25700
25829
|
message: `Invalid action input '${input}'`
|
|
25701
25830
|
});
|
|
@@ -25703,7 +25832,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25703
25832
|
const deprecationMessage = actionInputs[input]?.deprecationMessage;
|
|
25704
25833
|
if (deprecationMessage) {
|
|
25705
25834
|
diagnostics.push({
|
|
25706
|
-
severity:
|
|
25835
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Warning,
|
|
25707
25836
|
range: mapRange(inputToken.range),
|
|
25708
25837
|
message: deprecationMessage
|
|
25709
25838
|
});
|
|
@@ -25713,7 +25842,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25713
25842
|
if (missingRequiredInputs.length > 0) {
|
|
25714
25843
|
const message = missingRequiredInputs.length === 1 ? `Missing required input \`${missingRequiredInputs[0][0]}\`` : `Missing required inputs: ${missingRequiredInputs.map((input) => `\`${input[0]}\``).join(", ")}`;
|
|
25715
25844
|
diagnostics.push({
|
|
25716
|
-
severity:
|
|
25845
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25717
25846
|
range: mapRange((withKey || stepToken).range),
|
|
25718
25847
|
message
|
|
25719
25848
|
});
|
|
@@ -25812,7 +25941,7 @@ function invalidValue(diagnostics, token, kind) {
|
|
|
25812
25941
|
case ValueProviderKind.AllowedValues:
|
|
25813
25942
|
diagnostics.push({
|
|
25814
25943
|
message: `Value '${token.value}' is not valid`,
|
|
25815
|
-
severity:
|
|
25944
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25816
25945
|
range: mapRange(token.range)
|
|
25817
25946
|
});
|
|
25818
25947
|
break;
|
|
@@ -25831,17 +25960,7 @@ function validateCronExpression(diagnostics, token) {
|
|
|
25831
25960
|
diagnostics.push({
|
|
25832
25961
|
message: `Actions schedules run at most every 5 minutes. "${cronValue}" (${description.toLowerCase()}) will not run as frequently as specified.`,
|
|
25833
25962
|
range: mapRange(token.range),
|
|
25834
|
-
severity:
|
|
25835
|
-
code: "on-schedule",
|
|
25836
|
-
codeDescription: {
|
|
25837
|
-
href: CRON_SCHEDULE_DOCS_URL
|
|
25838
|
-
}
|
|
25839
|
-
});
|
|
25840
|
-
} else {
|
|
25841
|
-
diagnostics.push({
|
|
25842
|
-
message: description,
|
|
25843
|
-
range: mapRange(token.range),
|
|
25844
|
-
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Information,
|
|
25963
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Warning,
|
|
25845
25964
|
code: "on-schedule",
|
|
25846
25965
|
codeDescription: {
|
|
25847
25966
|
href: CRON_SCHEDULE_DOCS_URL
|
|
@@ -25855,7 +25974,7 @@ function warnIfShortSha(diagnostics, token, ref) {
|
|
|
25855
25974
|
if (SHORT_SHA_PATTERN.test(ref)) {
|
|
25856
25975
|
diagnostics.push({
|
|
25857
25976
|
message: `The provided ref '${ref}' may be a shortened commit SHA. If so, please use the full 40-character commit SHA instead, as short SHAs are not supported.`,
|
|
25858
|
-
severity:
|
|
25977
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Warning,
|
|
25859
25978
|
range: mapRange(token.range),
|
|
25860
25979
|
code: "short-sha-ref",
|
|
25861
25980
|
codeDescription: {
|
|
@@ -25871,7 +25990,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25871
25990
|
if (!uses) {
|
|
25872
25991
|
diagnostics.push({
|
|
25873
25992
|
message: "`uses' value in action cannot be blank",
|
|
25874
|
-
severity:
|
|
25993
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25875
25994
|
range: mapRange(token.range),
|
|
25876
25995
|
code: "invalid-uses-format"
|
|
25877
25996
|
});
|
|
@@ -25901,7 +26020,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25901
26020
|
if (pathSegments.length >= 4 && pathSegments[2] === ".github" && pathSegments[3] === "workflows") {
|
|
25902
26021
|
diagnostics.push({
|
|
25903
26022
|
message: "Reusable workflows should be referenced at the top-level `jobs.<job_id>.uses` key, not within steps",
|
|
25904
|
-
severity:
|
|
26023
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25905
26024
|
range: mapRange(token.range),
|
|
25906
26025
|
code: "invalid-uses-format"
|
|
25907
26026
|
});
|
|
@@ -25912,7 +26031,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25912
26031
|
function addStepUsesFormatError(diagnostics, token) {
|
|
25913
26032
|
diagnostics.push({
|
|
25914
26033
|
message: `Expected format {owner}/{repo}[/path]@{ref}. Actual '${token.value}'`,
|
|
25915
|
-
severity:
|
|
26034
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25916
26035
|
range: mapRange(token.range),
|
|
25917
26036
|
code: "invalid-uses-format"
|
|
25918
26037
|
});
|
|
@@ -26001,7 +26120,7 @@ function validateWorkflowUsesFormat(diagnostics, token) {
|
|
|
26001
26120
|
function addWorkflowUsesFormatError(diagnostics, token, reason) {
|
|
26002
26121
|
diagnostics.push({
|
|
26003
26122
|
message: `Invalid workflow reference '${token.value}': ${reason}`,
|
|
26004
|
-
severity:
|
|
26123
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
26005
26124
|
range: mapRange(token.range),
|
|
26006
26125
|
code: "invalid-workflow-uses-format"
|
|
26007
26126
|
});
|
|
@@ -26097,7 +26216,7 @@ async function validateExpression(diagnostics, token, allowedContext, contextPro
|
|
|
26097
26216
|
diagnostics.push({
|
|
26098
26217
|
message: "Conditional expression contains literal text outside replacement tokens. This will cause the expression to always evaluate to truthy. Did you mean to put the entire expression inside ${{ }}?",
|
|
26099
26218
|
range: mapRange(token.range),
|
|
26100
|
-
severity:
|
|
26219
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
26101
26220
|
code: "expression-literal-text-in-condition"
|
|
26102
26221
|
});
|
|
26103
26222
|
}
|
|
@@ -26120,7 +26239,7 @@ async function validateExpression(diagnostics, token, allowedContext, contextPro
|
|
|
26120
26239
|
diagnostics.push(...e.errors.map((e2) => ({
|
|
26121
26240
|
message: e2.message,
|
|
26122
26241
|
range: mapRange(expression.range),
|
|
26123
|
-
severity: e2.severity === "error" ?
|
|
26242
|
+
severity: e2.severity === "error" ? import_vscode_languageserver_types4.DiagnosticSeverity.Error : import_vscode_languageserver_types4.DiagnosticSeverity.Warning
|
|
26124
26243
|
})));
|
|
26125
26244
|
}
|
|
26126
26245
|
}
|
|
@@ -26142,14 +26261,14 @@ function validateConcurrencyDeadlock(diagnostics, template) {
|
|
|
26142
26261
|
diagnostics.push({
|
|
26143
26262
|
message: `Concurrency group '${workflowGroup.value}' is also used by job '${job.id.value}'. This will cause a deadlock.`,
|
|
26144
26263
|
range: mapRange(template.concurrency.range),
|
|
26145
|
-
severity:
|
|
26264
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error
|
|
26146
26265
|
});
|
|
26147
26266
|
}
|
|
26148
26267
|
if (job.concurrency.range) {
|
|
26149
26268
|
diagnostics.push({
|
|
26150
26269
|
message: `Concurrency group '${jobGroup.value}' is also defined at the workflow level. This will cause a deadlock.`,
|
|
26151
26270
|
range: mapRange(job.concurrency.range),
|
|
26152
|
-
severity:
|
|
26271
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error
|
|
26153
26272
|
});
|
|
26154
26273
|
}
|
|
26155
26274
|
}
|
|
@@ -30542,7 +30661,8 @@ function initConnection(connection) {
|
|
|
30542
30661
|
hoverProvider: true,
|
|
30543
30662
|
documentLinkProvider: {
|
|
30544
30663
|
resolveProvider: false
|
|
30545
|
-
}
|
|
30664
|
+
},
|
|
30665
|
+
inlayHintProvider: true
|
|
30546
30666
|
}
|
|
30547
30667
|
};
|
|
30548
30668
|
if (hasWorkspaceFolderCapability) {
|
|
@@ -30613,6 +30733,11 @@ function initConnection(connection) {
|
|
|
30613
30733
|
const repoContext = repos.find((repo) => textDocument.uri.startsWith(repo.workspaceUri));
|
|
30614
30734
|
return documentLinks(getDocument(documents, textDocument), repoContext?.workspaceUri);
|
|
30615
30735
|
});
|
|
30736
|
+
connection.languages.inlayHint.on(async ({ textDocument }) => {
|
|
30737
|
+
return timeOperation("inlayHints", () => {
|
|
30738
|
+
return getInlayHints(getDocument(documents, textDocument));
|
|
30739
|
+
});
|
|
30740
|
+
});
|
|
30616
30741
|
documents.listen(connection);
|
|
30617
30742
|
connection.listen();
|
|
30618
30743
|
}
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,UAAU,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,UAAU,EAcX,MAAM,uBAAuB,CAAC;AAe/B,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,QA4IpD"}
|
package/dist/connection.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { documentLinks, hover, validate } from "@actions/languageservice";
|
|
1
|
+
import { documentLinks, getInlayHints, hover, validate } from "@actions/languageservice";
|
|
2
2
|
import { registerLogger, setLogLevel } from "@actions/languageservice/log";
|
|
3
3
|
import { clearCache, clearCacheEntry } from "@actions/languageservice/utils/workflow-cache";
|
|
4
4
|
import { TextDocuments, TextDocumentSyncKind } from "vscode-languageserver";
|
|
@@ -45,7 +45,8 @@ export function initConnection(connection) {
|
|
|
45
45
|
hoverProvider: true,
|
|
46
46
|
documentLinkProvider: {
|
|
47
47
|
resolveProvider: false
|
|
48
|
-
}
|
|
48
|
+
},
|
|
49
|
+
inlayHintProvider: true
|
|
49
50
|
}
|
|
50
51
|
};
|
|
51
52
|
if (hasWorkspaceFolderCapability) {
|
|
@@ -108,6 +109,11 @@ export function initConnection(connection) {
|
|
|
108
109
|
const repoContext = repos.find(repo => textDocument.uri.startsWith(repo.workspaceUri));
|
|
109
110
|
return documentLinks(getDocument(documents, textDocument), repoContext?.workspaceUri);
|
|
110
111
|
});
|
|
112
|
+
connection.languages.inlayHint.on(async ({ textDocument }) => {
|
|
113
|
+
return timeOperation("inlayHints", () => {
|
|
114
|
+
return getInlayHints(getDocument(documents, textDocument));
|
|
115
|
+
});
|
|
116
|
+
});
|
|
111
117
|
// Make the text document manager listen on the connection
|
|
112
118
|
// for open, change and close text document events
|
|
113
119
|
documents.listen(connection);
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAmB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actions/languageserver",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.30",
|
|
4
4
|
"description": "Language server for GitHub Actions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"actions-languageserver": "./bin/actions-languageserver"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@actions/languageservice": "^0.3.
|
|
52
|
-
"@actions/workflow-parser": "^0.3.
|
|
51
|
+
"@actions/languageservice": "^0.3.30",
|
|
52
|
+
"@actions/workflow-parser": "^0.3.30",
|
|
53
53
|
"@octokit/rest": "^21.1.1",
|
|
54
54
|
"@octokit/types": "^9.0.0",
|
|
55
55
|
"vscode-languageserver": "^8.0.2",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"ts-jest": "^29.0.3",
|
|
79
79
|
"typescript": "^4.8.4"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "3734de18eee0962a8031bf2fb99a1f905038dbd0"
|
|
82
82
|
}
|