This commit is contained in:
nub31
2025-10-25 18:07:34 +02:00
parent 3f18aa4782
commit 396ddf93a2
18 changed files with 951 additions and 598 deletions

View File

@@ -123,21 +123,24 @@ internal class CompletionHandler(WorkspaceManager workspaceManager) : Completion
{
completions.AddRange(_statementSnippets);
foreach (var prototype in compilationUnit.ImportedFunctions)
foreach (var (module, prototypes) in compilationUnit.ImportedFunctions)
{
var parameterStrings = new List<string>();
foreach (var (index, parameter) in prototype.Parameters.Index())
foreach (var prototype in prototypes)
{
parameterStrings.AddRange($"${{{index + 1}:{parameter.Name}}}");
}
var parameterStrings = new List<string>();
foreach (var (index, parameter) in prototype.Parameters.Index())
{
parameterStrings.AddRange($"${{{index + 1}:{parameter.NameToken.Value}}}");
}
completions.Add(new CompletionItem
{
Kind = CompletionItemKind.Function,
Label = $"{prototype.Module}::{prototype.Name}",
InsertTextFormat = InsertTextFormat.Snippet,
InsertText = $"{prototype.Module}::{prototype.Name}({string.Join(", ", parameterStrings)})",
});
completions.Add(new CompletionItem
{
Kind = CompletionItemKind.Function,
Label = $"{module.Value}::{prototype.NameToken.Value}",
InsertTextFormat = InsertTextFormat.Snippet,
InsertText = $"{module.Value}::{prototype.NameToken.Value}({string.Join(", ", parameterStrings)})",
});
}
}
foreach (var parameter in function.Prototype.Parameters)
@@ -145,8 +148,8 @@ internal class CompletionHandler(WorkspaceManager workspaceManager) : Completion
completions.Add(new CompletionItem
{
Kind = CompletionItemKind.Variable,
Label = parameter.Name,
InsertText = parameter.Name,
Label = parameter.NameToken.Value,
InsertText = parameter.NameToken.Value,
});
}
@@ -159,8 +162,8 @@ internal class CompletionHandler(WorkspaceManager workspaceManager) : Completion
completions.Add(new CompletionItem
{
Kind = CompletionItemKind.Variable,
Label = variable.Name,
InsertText = variable.Name,
Label = variable.NameToken.Value,
InsertText = variable.NameToken.Value,
});
}
}