private void Merge(IPsiSourceFile sourceFile, IEnumerable <RegistrationInfo> items)
        {
            lock (lockObject)
            {
                registrationsMap.RemoveKey(sourceFile);
                registrationsMap.AddValueRange(sourceFile, items);

                dirtyFiles.Remove(sourceFile);
            }
        }
Exemple #2
0
        public void Merge(IPsiSourceFile sourceFile, object builtPart)
        {
            var data = (TCacheData)builtPart;

            lock (_lockObject)
            {
                AddFileToCache(sourceFile, data);
                if (_persistentCache != null)
                {
                    _persistentCache.AddDataToSave(sourceFile, data);
                }
                _dirtyFiles.Remove(sourceFile);
            }
        }
Exemple #3
0
        public void Merge(IPsiSourceFile sourceFile, object builtPart)
        {
            myShellLocks.AssertWriteAccessAllowed();

            // remove old annotations from all tries
            foreach (var node in mySourceFileToNodes[sourceFile])
            {
                node.Clear(sourceFile);
            }

            mySourceFileToNodes.RemoveKey(sourceFile);
            myFilesWithoutAnnotations.Remove(sourceFile);

            // add built annotations.
            var part = (AttributedTypesTrieCollection)builtPart;

            if (!myRoot.Merge(part, mySourceFileToNodes))
            {
                myFilesWithoutAnnotations.Add(sourceFile);
            }

            myDirtyFiles.Remove(sourceFile);
        }