@actions/languageserver 0.3.27 → 0.3.29
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 +216 -52
- 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) {
|
|
@@ -24455,13 +24455,13 @@ var DefinitionValueMode;
|
|
|
24455
24455
|
DefinitionValueMode2[DefinitionValueMode2["Parent"] = 0] = "Parent";
|
|
24456
24456
|
DefinitionValueMode2[DefinitionValueMode2["Key"] = 1] = "Key";
|
|
24457
24457
|
})(DefinitionValueMode = DefinitionValueMode || (DefinitionValueMode = {}));
|
|
24458
|
-
function definitionValues(def, indentation, mode) {
|
|
24458
|
+
function definitionValues(def, indentation, mode, tokenStructure) {
|
|
24459
24459
|
const schema2 = getWorkflowSchema();
|
|
24460
24460
|
if (def instanceof MappingDefinition) {
|
|
24461
24461
|
return mappingValues(def, schema2.definitions, indentation, mode);
|
|
24462
24462
|
}
|
|
24463
24463
|
if (def instanceof OneOfDefinition) {
|
|
24464
|
-
return oneOfValues(def, schema2.definitions, indentation, mode);
|
|
24464
|
+
return oneOfValues(def, schema2.definitions, indentation, mode, tokenStructure);
|
|
24465
24465
|
}
|
|
24466
24466
|
if (def instanceof BooleanDefinition) {
|
|
24467
24467
|
return stringsToValues(["true", "false"]);
|
|
@@ -24540,17 +24540,34 @@ ${indentation}${key}: `;
|
|
|
24540
24540
|
}
|
|
24541
24541
|
return properties;
|
|
24542
24542
|
}
|
|
24543
|
-
function oneOfValues(oneOfDefinition, definitions, indentation, mode) {
|
|
24543
|
+
function oneOfValues(oneOfDefinition, definitions, indentation, mode, tokenStructure) {
|
|
24544
24544
|
const values = [];
|
|
24545
24545
|
for (const key of oneOfDefinition.oneOf) {
|
|
24546
|
-
|
|
24546
|
+
const variantDef = definitions[key];
|
|
24547
|
+
if (!variantDef) {
|
|
24548
|
+
continue;
|
|
24549
|
+
}
|
|
24550
|
+
if (tokenStructure) {
|
|
24551
|
+
const variantBucket = getStructuralBucket(variantDef.definitionType);
|
|
24552
|
+
if (variantBucket !== tokenStructure) {
|
|
24553
|
+
continue;
|
|
24554
|
+
}
|
|
24555
|
+
}
|
|
24556
|
+
if (!tokenStructure && mode === DefinitionValueMode.Key) {
|
|
24557
|
+
const variantBucket = getStructuralBucket(variantDef.definitionType);
|
|
24558
|
+
if (variantBucket !== "scalar") {
|
|
24559
|
+
continue;
|
|
24560
|
+
}
|
|
24561
|
+
}
|
|
24562
|
+
values.push(...definitionValues(variantDef, indentation, mode, tokenStructure));
|
|
24547
24563
|
}
|
|
24548
24564
|
return distinctValues(values);
|
|
24549
24565
|
}
|
|
24550
24566
|
function distinctValues(values) {
|
|
24551
24567
|
const map = /* @__PURE__ */ new Map();
|
|
24552
24568
|
for (const value of values) {
|
|
24553
|
-
|
|
24569
|
+
const key = value.detail ? `${value.label}\0${value.detail}` : value.label;
|
|
24570
|
+
map.set(key, value);
|
|
24554
24571
|
}
|
|
24555
24572
|
return Array.from(map.values());
|
|
24556
24573
|
}
|
|
@@ -24570,17 +24587,22 @@ function expandOneOfToCompletions(oneOfDef, definitions, key, description, inden
|
|
|
24570
24587
|
sequence: false,
|
|
24571
24588
|
mapping: false
|
|
24572
24589
|
};
|
|
24590
|
+
let scalarIsOnlyNull = true;
|
|
24573
24591
|
for (const variantKey of oneOfDef.oneOf) {
|
|
24574
24592
|
const variantDef = definitions[variantKey];
|
|
24575
24593
|
if (variantDef) {
|
|
24576
24594
|
const bucket = getStructuralBucket(variantDef.definitionType);
|
|
24577
24595
|
buckets[bucket] = true;
|
|
24596
|
+
if (bucket === "scalar" && !(variantDef instanceof NullDefinition)) {
|
|
24597
|
+
scalarIsOnlyNull = false;
|
|
24598
|
+
}
|
|
24578
24599
|
}
|
|
24579
24600
|
}
|
|
24580
24601
|
const results = [];
|
|
24581
24602
|
const bucketCount = [buckets.scalar, buckets.sequence, buckets.mapping].filter(Boolean).length;
|
|
24582
24603
|
const needsQualifier = bucketCount > 1;
|
|
24583
|
-
|
|
24604
|
+
const skipNullOnlyScalar = mode === DefinitionValueMode.Key && scalarIsOnlyNull;
|
|
24605
|
+
if (buckets.scalar && !skipNullOnlyScalar) {
|
|
24584
24606
|
const insertText = mode === DefinitionValueMode.Key ? `
|
|
24585
24607
|
${indentation}${key}: ` : `${key}: `;
|
|
24586
24608
|
results.push({
|
|
@@ -24595,10 +24617,10 @@ ${indentation}${key}:
|
|
|
24595
24617
|
${indentation}${indentation}- ` : `${key}:
|
|
24596
24618
|
${indentation}- `;
|
|
24597
24619
|
results.push({
|
|
24598
|
-
label:
|
|
24620
|
+
label: key,
|
|
24599
24621
|
description,
|
|
24622
|
+
detail: needsQualifier ? "list" : void 0,
|
|
24600
24623
|
insertText,
|
|
24601
|
-
filterText: needsQualifier ? key : void 0,
|
|
24602
24624
|
sortText: needsQualifier ? `${key} 1` : void 0
|
|
24603
24625
|
});
|
|
24604
24626
|
}
|
|
@@ -24608,10 +24630,10 @@ ${indentation}${key}:
|
|
|
24608
24630
|
${indentation}${indentation}` : `${key}:
|
|
24609
24631
|
${indentation}`;
|
|
24610
24632
|
results.push({
|
|
24611
|
-
label:
|
|
24633
|
+
label: key,
|
|
24612
24634
|
description,
|
|
24635
|
+
detail: needsQualifier ? "full syntax" : void 0,
|
|
24613
24636
|
insertText,
|
|
24614
|
-
filterText: needsQualifier ? key : void 0,
|
|
24615
24637
|
sortText: needsQualifier ? `${key} 2` : void 0
|
|
24616
24638
|
});
|
|
24617
24639
|
}
|
|
@@ -24661,6 +24683,8 @@ async function complete2(textDocument, position, config) {
|
|
|
24661
24683
|
const indentation = guessIndentation(newDoc, 2, true);
|
|
24662
24684
|
const indentString = " ".repeat(indentation.tabSize);
|
|
24663
24685
|
const values = await getValues(token, keyToken, parent, config?.valueProviderConfig, workflowContext, indentString);
|
|
24686
|
+
const escapeHatches = getEscapeHatchCompletions(token, keyToken, indentString, newPos);
|
|
24687
|
+
values.push(...escapeHatches);
|
|
24664
24688
|
let replaceRange;
|
|
24665
24689
|
if (token?.range) {
|
|
24666
24690
|
replaceRange = mapRange(token.range);
|
|
@@ -24679,8 +24703,17 @@ async function complete2(textDocument, position, config) {
|
|
|
24679
24703
|
}
|
|
24680
24704
|
return values.map((value) => {
|
|
24681
24705
|
const newText = value.insertText || value.label;
|
|
24706
|
+
let textEdit;
|
|
24707
|
+
if (value.textEdit) {
|
|
24708
|
+
textEdit = import_vscode_languageserver_types.TextEdit.replace(value.textEdit.range, value.textEdit.newText);
|
|
24709
|
+
} else if (replaceRange) {
|
|
24710
|
+
textEdit = import_vscode_languageserver_types.TextEdit.replace(replaceRange, newText);
|
|
24711
|
+
} else {
|
|
24712
|
+
textEdit = import_vscode_languageserver_types.TextEdit.insert(position, newText);
|
|
24713
|
+
}
|
|
24682
24714
|
const item = {
|
|
24683
24715
|
label: value.label,
|
|
24716
|
+
detail: value.detail,
|
|
24684
24717
|
filterText: value.filterText,
|
|
24685
24718
|
sortText: value.sortText,
|
|
24686
24719
|
documentation: value.description && {
|
|
@@ -24688,7 +24721,7 @@ async function complete2(textDocument, position, config) {
|
|
|
24688
24721
|
value: value.description
|
|
24689
24722
|
},
|
|
24690
24723
|
tags: value.deprecated ? [import_vscode_languageserver_types.CompletionItemTag.Deprecated] : void 0,
|
|
24691
|
-
textEdit
|
|
24724
|
+
textEdit
|
|
24692
24725
|
};
|
|
24693
24726
|
return item;
|
|
24694
24727
|
});
|
|
@@ -24715,9 +24748,109 @@ async function getValues(token, keyToken, parent, valueProviderConfig, workflowC
|
|
|
24715
24748
|
if (!def) {
|
|
24716
24749
|
return [];
|
|
24717
24750
|
}
|
|
24718
|
-
const
|
|
24751
|
+
const tokenStructure = getTokenStructure(token);
|
|
24752
|
+
const values = definitionValues(def, indentation, keyToken ? DefinitionValueMode.Key : DefinitionValueMode.Parent, tokenStructure);
|
|
24719
24753
|
return filterAndSortCompletionOptions(values, existingValues);
|
|
24720
24754
|
}
|
|
24755
|
+
function getTokenStructure(token) {
|
|
24756
|
+
if (!token) {
|
|
24757
|
+
return void 0;
|
|
24758
|
+
}
|
|
24759
|
+
switch (token.templateTokenType) {
|
|
24760
|
+
case TokenType2.Mapping:
|
|
24761
|
+
return "mapping";
|
|
24762
|
+
case TokenType2.Sequence:
|
|
24763
|
+
return "sequence";
|
|
24764
|
+
case TokenType2.Null:
|
|
24765
|
+
return void 0;
|
|
24766
|
+
case TokenType2.String: {
|
|
24767
|
+
const stringToken = token.assertString("getTokenStructure expected string token");
|
|
24768
|
+
if (stringToken.value === "") {
|
|
24769
|
+
return void 0;
|
|
24770
|
+
}
|
|
24771
|
+
return "scalar";
|
|
24772
|
+
}
|
|
24773
|
+
case TokenType2.Boolean:
|
|
24774
|
+
case TokenType2.Number:
|
|
24775
|
+
return "scalar";
|
|
24776
|
+
default:
|
|
24777
|
+
return void 0;
|
|
24778
|
+
}
|
|
24779
|
+
}
|
|
24780
|
+
function getEscapeHatchCompletions(token, keyToken, indentation, position) {
|
|
24781
|
+
const tokenStructure = getTokenStructure(token);
|
|
24782
|
+
if (tokenStructure !== void 0) {
|
|
24783
|
+
return [];
|
|
24784
|
+
}
|
|
24785
|
+
if (!keyToken?.definition) {
|
|
24786
|
+
return [];
|
|
24787
|
+
}
|
|
24788
|
+
const def = keyToken.definition;
|
|
24789
|
+
const schema2 = getWorkflowSchema();
|
|
24790
|
+
const buckets = {
|
|
24791
|
+
sequence: false,
|
|
24792
|
+
mapping: false
|
|
24793
|
+
};
|
|
24794
|
+
if (def instanceof OneOfDefinition) {
|
|
24795
|
+
for (const variantKey of def.oneOf) {
|
|
24796
|
+
const variantDef = schema2.definitions[variantKey];
|
|
24797
|
+
if (variantDef) {
|
|
24798
|
+
switch (variantDef.definitionType) {
|
|
24799
|
+
case DefinitionType.Sequence:
|
|
24800
|
+
buckets.sequence = true;
|
|
24801
|
+
break;
|
|
24802
|
+
case DefinitionType.Mapping:
|
|
24803
|
+
buckets.mapping = true;
|
|
24804
|
+
break;
|
|
24805
|
+
}
|
|
24806
|
+
}
|
|
24807
|
+
}
|
|
24808
|
+
} else {
|
|
24809
|
+
switch (def.definitionType) {
|
|
24810
|
+
case DefinitionType.Sequence:
|
|
24811
|
+
buckets.sequence = true;
|
|
24812
|
+
break;
|
|
24813
|
+
case DefinitionType.Mapping:
|
|
24814
|
+
buckets.mapping = true;
|
|
24815
|
+
break;
|
|
24816
|
+
}
|
|
24817
|
+
}
|
|
24818
|
+
const results = [];
|
|
24819
|
+
const keyName = isString(keyToken) ? keyToken.value : "";
|
|
24820
|
+
const keyRange = keyToken.range;
|
|
24821
|
+
if (!keyRange || !keyName) {
|
|
24822
|
+
return [];
|
|
24823
|
+
}
|
|
24824
|
+
const editRange = {
|
|
24825
|
+
start: { line: keyRange.start.line - 1, character: keyRange.start.column - 1 },
|
|
24826
|
+
end: { line: position.line, character: position.character }
|
|
24827
|
+
};
|
|
24828
|
+
if (buckets.sequence) {
|
|
24829
|
+
results.push({
|
|
24830
|
+
label: "(switch to list)",
|
|
24831
|
+
sortText: "zzz_switch_1",
|
|
24832
|
+
filterText: keyName,
|
|
24833
|
+
textEdit: {
|
|
24834
|
+
range: editRange,
|
|
24835
|
+
newText: `${keyName}:
|
|
24836
|
+
${indentation}- `
|
|
24837
|
+
}
|
|
24838
|
+
});
|
|
24839
|
+
}
|
|
24840
|
+
if (buckets.mapping) {
|
|
24841
|
+
results.push({
|
|
24842
|
+
label: "(switch to mapping)",
|
|
24843
|
+
sortText: "zzz_switch_2",
|
|
24844
|
+
filterText: keyName,
|
|
24845
|
+
textEdit: {
|
|
24846
|
+
range: editRange,
|
|
24847
|
+
newText: `${keyName}:
|
|
24848
|
+
${indentation}`
|
|
24849
|
+
}
|
|
24850
|
+
});
|
|
24851
|
+
}
|
|
24852
|
+
return results;
|
|
24853
|
+
}
|
|
24721
24854
|
function getExistingValues(token, parent) {
|
|
24722
24855
|
if (token) {
|
|
24723
24856
|
if (!isString(token)) {
|
|
@@ -25534,8 +25667,43 @@ function expressionHover(exprPos, context, namedContexts, functions) {
|
|
|
25534
25667
|
}
|
|
25535
25668
|
}
|
|
25536
25669
|
|
|
25670
|
+
// ../languageservice/dist/inlay-hints.js
|
|
25671
|
+
var import_vscode_languageserver_types2 = __toESM(require_main2(), 1);
|
|
25672
|
+
function getInlayHints(document) {
|
|
25673
|
+
const file = {
|
|
25674
|
+
name: document.uri,
|
|
25675
|
+
content: document.getText()
|
|
25676
|
+
};
|
|
25677
|
+
const result = fetchOrParseWorkflow(file, document.uri);
|
|
25678
|
+
if (!result?.value) {
|
|
25679
|
+
return [];
|
|
25680
|
+
}
|
|
25681
|
+
const hints = [];
|
|
25682
|
+
for (const [parent, token, key] of TemplateToken.traverse(result.value)) {
|
|
25683
|
+
const validationToken = key || parent || token;
|
|
25684
|
+
const validationDefinition = validationToken.definition;
|
|
25685
|
+
if (isString(token) && token.range && validationDefinition?.key === "cron-pattern") {
|
|
25686
|
+
const cronValue = token.value;
|
|
25687
|
+
const description = getCronDescription(cronValue);
|
|
25688
|
+
if (description) {
|
|
25689
|
+
hints.push({
|
|
25690
|
+
position: {
|
|
25691
|
+
line: token.range.end.line - 1,
|
|
25692
|
+
character: token.range.end.column - 1
|
|
25693
|
+
// Convert from 1-based to 0-based
|
|
25694
|
+
},
|
|
25695
|
+
label: `\u2192 ${description}`,
|
|
25696
|
+
kind: import_vscode_languageserver_types2.InlayHintKind.Parameter,
|
|
25697
|
+
paddingLeft: true
|
|
25698
|
+
});
|
|
25699
|
+
}
|
|
25700
|
+
}
|
|
25701
|
+
}
|
|
25702
|
+
return hints;
|
|
25703
|
+
}
|
|
25704
|
+
|
|
25537
25705
|
// ../languageservice/dist/validate.js
|
|
25538
|
-
var
|
|
25706
|
+
var import_vscode_languageserver_types4 = __toESM(require_main2(), 1);
|
|
25539
25707
|
|
|
25540
25708
|
// ../languageservice/dist/expression-validation/error-dictionary.js
|
|
25541
25709
|
var AccessError = class extends Error {
|
|
@@ -25614,7 +25782,7 @@ var ValidationEvaluator = class extends Evaluator {
|
|
|
25614
25782
|
};
|
|
25615
25783
|
|
|
25616
25784
|
// ../languageservice/dist/validate-action.js
|
|
25617
|
-
var
|
|
25785
|
+
var import_vscode_languageserver_types3 = __toESM(require_main2(), 1);
|
|
25618
25786
|
async function validateAction(diagnostics, stepToken, step, config) {
|
|
25619
25787
|
if (!isMapping(stepToken) || !step || !isActionStep(step) || !config?.actionsMetadataProvider) {
|
|
25620
25788
|
return;
|
|
@@ -25626,7 +25794,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25626
25794
|
const actionMetadata = await config.actionsMetadataProvider.fetchActionMetadata(action);
|
|
25627
25795
|
if (actionMetadata === void 0) {
|
|
25628
25796
|
diagnostics.push({
|
|
25629
|
-
severity:
|
|
25797
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25630
25798
|
range: mapRange(step.uses.range),
|
|
25631
25799
|
message: `Unable to resolve action \`${step.uses.value}\`, repository or version not found`
|
|
25632
25800
|
});
|
|
@@ -25654,7 +25822,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25654
25822
|
for (const [input, inputToken] of stepInputs) {
|
|
25655
25823
|
if (!actionInputs[input]) {
|
|
25656
25824
|
diagnostics.push({
|
|
25657
|
-
severity:
|
|
25825
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25658
25826
|
range: mapRange(inputToken.range),
|
|
25659
25827
|
message: `Invalid action input '${input}'`
|
|
25660
25828
|
});
|
|
@@ -25662,7 +25830,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25662
25830
|
const deprecationMessage = actionInputs[input]?.deprecationMessage;
|
|
25663
25831
|
if (deprecationMessage) {
|
|
25664
25832
|
diagnostics.push({
|
|
25665
|
-
severity:
|
|
25833
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Warning,
|
|
25666
25834
|
range: mapRange(inputToken.range),
|
|
25667
25835
|
message: deprecationMessage
|
|
25668
25836
|
});
|
|
@@ -25672,7 +25840,7 @@ async function validateAction(diagnostics, stepToken, step, config) {
|
|
|
25672
25840
|
if (missingRequiredInputs.length > 0) {
|
|
25673
25841
|
const message = missingRequiredInputs.length === 1 ? `Missing required input \`${missingRequiredInputs[0][0]}\`` : `Missing required inputs: ${missingRequiredInputs.map((input) => `\`${input[0]}\``).join(", ")}`;
|
|
25674
25842
|
diagnostics.push({
|
|
25675
|
-
severity:
|
|
25843
|
+
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Error,
|
|
25676
25844
|
range: mapRange((withKey || stepToken).range),
|
|
25677
25845
|
message
|
|
25678
25846
|
});
|
|
@@ -25771,7 +25939,7 @@ function invalidValue(diagnostics, token, kind) {
|
|
|
25771
25939
|
case ValueProviderKind.AllowedValues:
|
|
25772
25940
|
diagnostics.push({
|
|
25773
25941
|
message: `Value '${token.value}' is not valid`,
|
|
25774
|
-
severity:
|
|
25942
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25775
25943
|
range: mapRange(token.range)
|
|
25776
25944
|
});
|
|
25777
25945
|
break;
|
|
@@ -25790,17 +25958,7 @@ function validateCronExpression(diagnostics, token) {
|
|
|
25790
25958
|
diagnostics.push({
|
|
25791
25959
|
message: `Actions schedules run at most every 5 minutes. "${cronValue}" (${description.toLowerCase()}) will not run as frequently as specified.`,
|
|
25792
25960
|
range: mapRange(token.range),
|
|
25793
|
-
severity:
|
|
25794
|
-
code: "on-schedule",
|
|
25795
|
-
codeDescription: {
|
|
25796
|
-
href: CRON_SCHEDULE_DOCS_URL
|
|
25797
|
-
}
|
|
25798
|
-
});
|
|
25799
|
-
} else {
|
|
25800
|
-
diagnostics.push({
|
|
25801
|
-
message: description,
|
|
25802
|
-
range: mapRange(token.range),
|
|
25803
|
-
severity: import_vscode_languageserver_types3.DiagnosticSeverity.Information,
|
|
25961
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Warning,
|
|
25804
25962
|
code: "on-schedule",
|
|
25805
25963
|
codeDescription: {
|
|
25806
25964
|
href: CRON_SCHEDULE_DOCS_URL
|
|
@@ -25814,7 +25972,7 @@ function warnIfShortSha(diagnostics, token, ref) {
|
|
|
25814
25972
|
if (SHORT_SHA_PATTERN.test(ref)) {
|
|
25815
25973
|
diagnostics.push({
|
|
25816
25974
|
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.`,
|
|
25817
|
-
severity:
|
|
25975
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Warning,
|
|
25818
25976
|
range: mapRange(token.range),
|
|
25819
25977
|
code: "short-sha-ref",
|
|
25820
25978
|
codeDescription: {
|
|
@@ -25830,7 +25988,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25830
25988
|
if (!uses) {
|
|
25831
25989
|
diagnostics.push({
|
|
25832
25990
|
message: "`uses' value in action cannot be blank",
|
|
25833
|
-
severity:
|
|
25991
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25834
25992
|
range: mapRange(token.range),
|
|
25835
25993
|
code: "invalid-uses-format"
|
|
25836
25994
|
});
|
|
@@ -25860,7 +26018,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25860
26018
|
if (pathSegments.length >= 4 && pathSegments[2] === ".github" && pathSegments[3] === "workflows") {
|
|
25861
26019
|
diagnostics.push({
|
|
25862
26020
|
message: "Reusable workflows should be referenced at the top-level `jobs.<job_id>.uses` key, not within steps",
|
|
25863
|
-
severity:
|
|
26021
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25864
26022
|
range: mapRange(token.range),
|
|
25865
26023
|
code: "invalid-uses-format"
|
|
25866
26024
|
});
|
|
@@ -25871,7 +26029,7 @@ function validateStepUsesFormat(diagnostics, token) {
|
|
|
25871
26029
|
function addStepUsesFormatError(diagnostics, token) {
|
|
25872
26030
|
diagnostics.push({
|
|
25873
26031
|
message: `Expected format {owner}/{repo}[/path]@{ref}. Actual '${token.value}'`,
|
|
25874
|
-
severity:
|
|
26032
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25875
26033
|
range: mapRange(token.range),
|
|
25876
26034
|
code: "invalid-uses-format"
|
|
25877
26035
|
});
|
|
@@ -25960,7 +26118,7 @@ function validateWorkflowUsesFormat(diagnostics, token) {
|
|
|
25960
26118
|
function addWorkflowUsesFormatError(diagnostics, token, reason) {
|
|
25961
26119
|
diagnostics.push({
|
|
25962
26120
|
message: `Invalid workflow reference '${token.value}': ${reason}`,
|
|
25963
|
-
severity:
|
|
26121
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
25964
26122
|
range: mapRange(token.range),
|
|
25965
26123
|
code: "invalid-workflow-uses-format"
|
|
25966
26124
|
});
|
|
@@ -26056,7 +26214,7 @@ async function validateExpression(diagnostics, token, allowedContext, contextPro
|
|
|
26056
26214
|
diagnostics.push({
|
|
26057
26215
|
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 ${{ }}?",
|
|
26058
26216
|
range: mapRange(token.range),
|
|
26059
|
-
severity:
|
|
26217
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error,
|
|
26060
26218
|
code: "expression-literal-text-in-condition"
|
|
26061
26219
|
});
|
|
26062
26220
|
}
|
|
@@ -26079,7 +26237,7 @@ async function validateExpression(diagnostics, token, allowedContext, contextPro
|
|
|
26079
26237
|
diagnostics.push(...e.errors.map((e2) => ({
|
|
26080
26238
|
message: e2.message,
|
|
26081
26239
|
range: mapRange(expression.range),
|
|
26082
|
-
severity: e2.severity === "error" ?
|
|
26240
|
+
severity: e2.severity === "error" ? import_vscode_languageserver_types4.DiagnosticSeverity.Error : import_vscode_languageserver_types4.DiagnosticSeverity.Warning
|
|
26083
26241
|
})));
|
|
26084
26242
|
}
|
|
26085
26243
|
}
|
|
@@ -26101,14 +26259,14 @@ function validateConcurrencyDeadlock(diagnostics, template) {
|
|
|
26101
26259
|
diagnostics.push({
|
|
26102
26260
|
message: `Concurrency group '${workflowGroup.value}' is also used by job '${job.id.value}'. This will cause a deadlock.`,
|
|
26103
26261
|
range: mapRange(template.concurrency.range),
|
|
26104
|
-
severity:
|
|
26262
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error
|
|
26105
26263
|
});
|
|
26106
26264
|
}
|
|
26107
26265
|
if (job.concurrency.range) {
|
|
26108
26266
|
diagnostics.push({
|
|
26109
26267
|
message: `Concurrency group '${jobGroup.value}' is also defined at the workflow level. This will cause a deadlock.`,
|
|
26110
26268
|
range: mapRange(job.concurrency.range),
|
|
26111
|
-
severity:
|
|
26269
|
+
severity: import_vscode_languageserver_types4.DiagnosticSeverity.Error
|
|
26112
26270
|
});
|
|
26113
26271
|
}
|
|
26114
26272
|
}
|
|
@@ -30501,7 +30659,8 @@ function initConnection(connection) {
|
|
|
30501
30659
|
hoverProvider: true,
|
|
30502
30660
|
documentLinkProvider: {
|
|
30503
30661
|
resolveProvider: false
|
|
30504
|
-
}
|
|
30662
|
+
},
|
|
30663
|
+
inlayHintProvider: true
|
|
30505
30664
|
}
|
|
30506
30665
|
};
|
|
30507
30666
|
if (hasWorkspaceFolderCapability) {
|
|
@@ -30572,6 +30731,11 @@ function initConnection(connection) {
|
|
|
30572
30731
|
const repoContext = repos.find((repo) => textDocument.uri.startsWith(repo.workspaceUri));
|
|
30573
30732
|
return documentLinks(getDocument(documents, textDocument), repoContext?.workspaceUri);
|
|
30574
30733
|
});
|
|
30734
|
+
connection.languages.inlayHint.on(async ({ textDocument }) => {
|
|
30735
|
+
return timeOperation("inlayHints", () => {
|
|
30736
|
+
return getInlayHints(getDocument(documents, textDocument));
|
|
30737
|
+
});
|
|
30738
|
+
});
|
|
30575
30739
|
documents.listen(connection);
|
|
30576
30740
|
connection.listen();
|
|
30577
30741
|
}
|
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.29",
|
|
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.29",
|
|
52
|
+
"@actions/workflow-parser": "^0.3.29",
|
|
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": "f84e42c1f1a814b36392486088b0aaa069d33f67"
|
|
82
82
|
}
|