35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
|
using Microsoft.CodeAnalysis;
|
|
|
|
namespace RobotNet.WebApp.Scripts.Monaco;
|
|
|
|
public class InvocationContext
|
|
{
|
|
public SemanticModel SemanticModel { get; }
|
|
public int Position { get; }
|
|
public SyntaxNode Receiver { get; }
|
|
public IEnumerable<TypeInfo> ArgumentTypes { get; }
|
|
public IEnumerable<SyntaxToken> Separators { get; }
|
|
public bool IsInStaticContext { get; }
|
|
|
|
public InvocationContext(SemanticModel semModel, int position, SyntaxNode receiver, ArgumentListSyntax argList, bool isStatic)
|
|
{
|
|
SemanticModel = semModel;
|
|
Position = position;
|
|
Receiver = receiver;
|
|
ArgumentTypes = argList.Arguments.Select(argument => semModel.GetTypeInfo(argument.Expression));
|
|
Separators = argList.Arguments.GetSeparators();
|
|
IsInStaticContext = isStatic;
|
|
}
|
|
|
|
public InvocationContext(SemanticModel semModel, int position, SyntaxNode receiver, AttributeArgumentListSyntax argList, bool isStatic)
|
|
{
|
|
SemanticModel = semModel;
|
|
Position = position;
|
|
Receiver = receiver;
|
|
ArgumentTypes = argList.Arguments.Select(argument => semModel.GetTypeInfo(argument.Expression));
|
|
Separators = argList.Arguments.GetSeparators();
|
|
IsInStaticContext = isStatic;
|
|
}
|
|
}
|