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

            semanticModel = CachedSemanticModels.GetValue(snapshot, key =>
            {
                try
                {
                    var syntaxTree  = key.GetSyntaxTree(cancellationToken);
                    var compilation = new Compilation.Compilation(syntaxTree);
                    return(compilation.GetSemanticModel(cancellationToken));
                }
                catch (OperationCanceledException)
                {
                    return(null);
                }
                catch (Exception ex)
                {
                    Logger.Log($"Failed to create semantic model: {ex}");
                    return(null);
                }
            });
            return(semanticModel != null);
        }
Exemplo n.º 2
0
        public static SemanticModel GetSemanticModel(this ITextSnapshot snapshot, CancellationToken cancellationToken)
        {
            var syntaxTree  = snapshot.GetSyntaxTree(cancellationToken);
            var compilation = new Compilation.Compilation(syntaxTree);

            return(compilation.GetSemanticModel());
        }
Exemplo n.º 3
0
        public static bool TryGetSemanticModel(this ITextSnapshot snapshot, CancellationToken cancellationToken, out SemanticModel semanticModel)
        {
            if (HlslToolsPackage.Instance != null && !HlslToolsPackage.Instance.Options.AdvancedOptions.EnableIntelliSense)
            {
                semanticModel = null;
                return false;
            }

            semanticModel = CachedSemanticModels.GetValue(snapshot, key =>
            {
                try
                {
                    var syntaxTree = key.GetSyntaxTree(cancellationToken);
                    var compilation = new Compilation.Compilation(syntaxTree);
                    return compilation.GetSemanticModel(cancellationToken);
                }
                catch (OperationCanceledException)
                {
                    return null;
                }
                catch (Exception ex)
                {
                    Logger.Log($"Failed to create semantic model: {ex}");
                    return null;
                }
            });
            return semanticModel != null;
        }
Exemplo n.º 4
0
 public static SemanticModel GetSemanticModel(this ITextSnapshot snapshot, VisualStudioSourceTextFactory sourceTextFactory, CancellationToken cancellationToken)
 {
     return CachedSemanticModels.GetValue(snapshot, key =>
     {
         var syntaxTree = key.GetSyntaxTree(sourceTextFactory, cancellationToken);
         var compilation = new Compilation.Compilation(syntaxTree);
         return compilation.GetSemanticModel();
     });
 }
Exemplo n.º 5
0
 public static SemanticModel GetSemanticModel(this ITextSnapshot snapshot, CancellationToken cancellationToken)
 {
     var syntaxTree = snapshot.GetSyntaxTree(cancellationToken);
     var compilation = new Compilation.Compilation(syntaxTree);
     return compilation.GetSemanticModel();
 }