ShaderTools.Hlsl.Compilation.Compilation.GetSemanticModel C# (CSharp) Method

GetSemanticModel() public method

public GetSemanticModel ( CancellationToken cancellationToken = null ) : SemanticModel
cancellationToken System.Threading.CancellationToken
return SemanticModel
        public SemanticModel GetSemanticModel(CancellationToken? cancellationToken = null)
        {
            var bindingResult = Binder.Bind(SyntaxTree.Root, cancellationToken ?? CancellationToken.None);
            return new SemanticModel(this, bindingResult);
        }
    }

Usage Example

Example #1
0
        public static bool TryGetSemanticModel(this ITextSnapshot snapshot, CancellationToken cancellationToken, out SemanticModel semanticModel)
        {
            if (HlslPackage.Instance != null && !HlslPackage.Instance.Options.AdvancedOptions.EnableIntelliSense)
            {
                semanticModel = null;
                return false;
            }

            try
            {
                semanticModel = CachedSemanticModels.GetValue(snapshot, key =>
                {
                    try
                    {
                        var syntaxTree = key.GetSyntaxTree(cancellationToken);
                        var compilation = new Compilation(syntaxTree);
                        return compilation.GetSemanticModel(cancellationToken);
                    }
                    catch (OperationCanceledException)
                    {
                        throw;
                    }
                    catch (Exception ex)
                    {
                        Logger.Log($"Failed to create semantic model: {ex}");
                        return null;
                    }
                });
            }
            catch (OperationCanceledException)
            {
                semanticModel = null;
            }

            return semanticModel != null;
        }