示例#1
0
 private CodeStruct(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int? nodeKind)
     : base(state, fileCodeModel, nodeKey, nodeKind)
 {
 }
 private CodeFunctionWithEventHandler(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int? nodeKind)
     : base(state, fileCodeModel, nodeKey, nodeKind)
 {
 }
示例#3
0
 internal AbstractCodeType(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int? nodeKind)
     : base(state, fileCodeModel, nodeKey, nodeKind)
 {
 }
示例#4
0
 private CodeNamespace(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int? nodeKind)
     : base(state, fileCodeModel, nodeKey, nodeKind)
 {
 }
 private CodeFunctionDeclareDecl(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int? nodeKind)
     : base(state, fileCodeModel, nodeKey, nodeKind)
 {
 }
示例#6
0
 internal static EnvDTE.CodeElements Create(
     CodeModelState state,
     object parent,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey)
 {
     var collection = new TypeCollection(state, parent, fileCodeModel, nodeKey);
     return (EnvDTE.CodeElements)ComAggregate.CreateAggregatedObject(collection);
 }
示例#7
0
 // This constructor is called for "unknown" code elements.
 internal AbstractKeyedCodeElement(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     int nodeKind,
     string name)
     : base(state, fileCodeModel, nodeKind)
 {
     _nodeKey = new SyntaxNodeKey(name, -1);
     _name    = name;
 }
示例#8
0
 internal AbstractKeyedCodeElement(
     CodeModelState state,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     int?nodeKind)
     : base(state, fileCodeModel, nodeKind)
 {
     _nodeKey = nodeKey;
     _name    = null;
 }
示例#9
0
 internal static EnvDTE.CodeElements Create(
     CodeModelState state,
     object parent,
     FileCodeModel fileCodeModel,
     SyntaxNodeKey nodeKey,
     bool interfaces)
 {
     var collection = new BasesCollection(state, parent, fileCodeModel, nodeKey, interfaces);
     return (EnvDTE.CodeElements)ComAggregate.CreateAggregatedObject(collection);
 }
示例#10
0
        internal static EnvDTE.CodeElements Create(
            CodeModelState state,
            object parent,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey)
        {
            var collection = new NamespaceCollection(state, parent, fileCodeModel, nodeKey);

            return((EnvDTE.CodeElements)ComAggregate.CreateAggregatedObject(collection));
        }
            public void Remove(SyntaxNodeKey key)
            {
                InvalidateEnumerator();

                if (_deadQueue.Contains(key))
                {
                    _deadQueue.Remove(key);
                }

                _elements.Remove(key);
            }
示例#12
0
        private InheritsImplementsCollection(
            CodeModelState state,
            object parent,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey)
            : base(state, parent)
        {
            Debug.Assert(fileCodeModel != null);

            _fileCodeModel = new ComHandle <EnvDTE.FileCodeModel, FileCodeModel>(fileCodeModel);
            _nodeKey       = nodeKey;
        }
示例#13
0
        private TypeCollection(
            CodeModelState state,
            object parent,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey)
            : base(state, parent)
        {
            Debug.Assert(fileCodeModel != null);

            _fileCodeModel = new ComHandle<EnvDTE.FileCodeModel, FileCodeModel>(fileCodeModel);
            _nodeKey = nodeKey;
        }
示例#14
0
        internal static EnvDTE.CodeStruct Create(
            CodeModelState state,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey,
            int?nodeKind)
        {
            var element = new CodeStruct(state, fileCodeModel, nodeKey, nodeKind);
            var result  = (EnvDTE.CodeStruct)ComAggregate.CreateAggregatedObject(element);

            fileCodeModel.OnCodeElementCreated(nodeKey, (EnvDTE.CodeElement)result);

            return(result);
        }
示例#15
0
        internal static EnvDTE.CodeNamespace Create(
            CodeModelState state,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey,
            int? nodeKind)
        {
            var element = new CodeNamespace(state, fileCodeModel, nodeKey, nodeKind);
            var result = (EnvDTE.CodeNamespace)ComAggregate.CreateAggregatedObject(element);

            fileCodeModel.OnElementCreated(nodeKey, (EnvDTE.CodeElement)result);

            return result;
        }
        internal static new EnvDTE.CodeFunction Create(
            CodeModelState state,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey,
            int?nodeKind)
        {
            var element = new CodeFunctionWithEventHandler(state, fileCodeModel, nodeKey, nodeKind);
            var result  = (EnvDTE.CodeFunction)ComAggregate.CreateAggregatedObject(element);

            fileCodeModel.OnCodeElementCreated(nodeKey, (EnvDTE.CodeElement)result);

            return(result);
        }
        internal static new EnvDTE.CodeFunction Create(
           CodeModelState state,
           FileCodeModel fileCodeModel,
           SyntaxNodeKey nodeKey,
           int? nodeKind)
        {
            var element = new CodeFunctionWithEventHandler(state, fileCodeModel, nodeKey, nodeKind);
            var result = (EnvDTE.CodeFunction)ComAggregate.CreateAggregatedObject(element);

            fileCodeModel.OnCodeElementCreated(nodeKey, (EnvDTE.CodeElement)result);

            return result;
        }
示例#18
0
        private BasesCollection(
            CodeModelState state,
            object parent,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey,
            bool interfaces)
            : base(state, parent)
        {
            Debug.Assert(fileCodeModel != null);

            _fileCodeModel = new ComHandle<EnvDTE.FileCodeModel, FileCodeModel>(fileCodeModel);
            _nodeKey = nodeKey;
            _interfaces = interfaces;
        }
示例#19
0
        /// <summary>
        /// This function re-acquires the key for this code element using the given syntax path.
        /// </summary>
        internal void ReacquireNodeKey(SyntaxPath syntaxPath, CancellationToken cancellationToken)
        {
            Debug.Assert(syntaxPath != null);
            if (!syntaxPath.TryResolve(GetSyntaxTree(), cancellationToken, out SyntaxNode node))
            {
                throw Exceptions.ThrowEFail();
            }

            var newNodeKey = CodeModelService.GetNodeKey(node);

            FileCodeModel.UpdateCodeElementNodeKey(this, _nodeKey, newNodeKey);

            _nodeKey = newNodeKey;
        }
示例#20
0
        private BasesCollection(
            CodeModelState state,
            object parent,
            FileCodeModel fileCodeModel,
            SyntaxNodeKey nodeKey,
            bool interfaces)
            : base(state, parent)
        {
            Debug.Assert(fileCodeModel != null);

            _fileCodeModel = new ComHandle <EnvDTE.FileCodeModel, FileCodeModel>(fileCodeModel);
            _nodeKey       = nodeKey;
            _interfaces    = interfaces;
        }
 public void Add(SyntaxNodeKey key, CodeElementWeakComAggregateHandle value)
 {
     TriggerCleanup();
     InvalidateEnumerator();
     _elements.Add(key, value);
 }
 public bool TryGetValue(SyntaxNodeKey key, out CodeElementWeakComAggregateHandle value)
 {
     return _elements.TryGetValue(key, out value);
 }
 public bool ContainsKey(SyntaxNodeKey key)
 {
     return _elements.ContainsKey(key);
 }
示例#24
0
 public GlobalNodeKey(SyntaxNodeKey nodeKey, SyntaxPath path)
 {
     this.NodeKey = nodeKey;
     this.Path = path;
 }