Skip to content

Commit 1c121e8

Browse files
azp: show parameter type hover of template refs (#645)
1 parent 1a23f77 commit 1c121e8

3 files changed

Lines changed: 22 additions & 3 deletions

File tree

src/Sdk/AzurePipelines/AzureDevops.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,25 @@ static async Task processTemplates(TemplateContext templateContext, int fileId,
10071007
} else {
10081008
templateContext.TraceWriter.Error("{0}", $"No AutoComplete entry found for parameter list to suggest missing parameters");
10091009
}
1010+
// Show Parameter types in Hover
1011+
if(parameters != null)
1012+
{
1013+
for(int i = templateContext.AutoCompleteMatches.Count - 1; i >= 0; i--)
1014+
{
1015+
var entry = templateContext.AutoCompleteMatches[i];
1016+
var pEntry = parameters.FirstOrDefault(kv => kv.Key == entry.Token);
1017+
if(pEntry.Key == null)
1018+
{
1019+
continue;
1020+
}
1021+
if(!dict.ContainsKey(pEntry.Key.ToString()))
1022+
{
1023+
continue;
1024+
}
1025+
entry.Description = $"Type: {dict[pEntry.Key.ToString()]}";
1026+
templateContext.TraceWriter.Error("{0}", entry.Description);
1027+
}
1028+
}
10101029
}
10111030
}
10121031
} catch (Exception ex)

src/Sdk/DTObjectTemplating/ObjectTemplating/TemplateReader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ private void HandleMappingWithWellKnownProperties(
315315
var nextValueDefinition = new DefinitionInfo(definition, nextValueType);
316316
var last = m_context.AutoCompleteMatches?.LastOrDefault();
317317
if(last != null && last.Token == nextKeyScalar) {
318-
last.Description = nextValueDefinition.Definition.Description;
318+
last.Description ??= nextValueDefinition.Definition.Description;
319319
}
320320

321321
var nextValue = ReadValue(nextValueDefinition);
@@ -415,7 +415,7 @@ private void HandleMappingWithAllLooseProperties(
415415
var nextKeyScalar = ParseScalar(rawLiteral, keyDef);
416416
var last = m_context.AutoCompleteMatches?.LastOrDefault();
417417
if(last != null && last.Token == nextKeyScalar) {
418-
last.Description = valueDefinition.Definition.Description;
418+
last.Description ??= valueDefinition.Definition.Description;
419419
}
420420

421421
// Expression

src/azure-pipelines-vscode-ext/ext-core/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ private static (Runner.Server.Azure.Devops.Range, string) GetHoverResult(Context
223223
|| desc["root"].TryGetValue(tkn.RawValue, out d)
224224
|| desc["functions"].TryGetValue(tkn.RawValue, out d) ? d.Description : tkn.RawValue);
225225
}
226-
return (new Runner.Server.Azure.Devops.Range { Start = last.Token.PreWhiteSpace != null ? new Position { Line = (int)last.Token.PreWhiteSpace.Line - 1, Character = (int)last.Token.PreWhiteSpace.Character - 1 } : new Position { Line = last.Token.Line.Value - 1, Character = last.Token.Column.Value - 1 }, End = new Position { Line = (int)last.Token.PostWhiteSpace.Line - 1, Character = (int)last.Token.PostWhiteSpace.Character - 1 } }, last.Definitions.FirstOrDefault()?.Description ?? "???");
226+
return (new Runner.Server.Azure.Devops.Range { Start = last.Token.PreWhiteSpace != null ? new Position { Line = (int)last.Token.PreWhiteSpace.Line - 1, Character = (int)last.Token.PreWhiteSpace.Character - 1 } : new Position { Line = last.Token.Line.Value - 1, Character = last.Token.Column.Value - 1 }, End = new Position { Line = (int)last.Token.PostWhiteSpace.Line - 1, Character = (int)last.Token.PostWhiteSpace.Character - 1 } }, last?.Description ?? last.Definitions.FirstOrDefault()?.Description ?? "???");
227227
}
228228

229229
[MethodImpl(MethodImplOptions.NoInlining)]

0 commit comments

Comments
 (0)