public void BuildFile(IFile file, AttributedTypesTrieCollection collection) { file.GetPsiServices(); var service = myLanguages.TryGetService <IAttributedTypesCacheBuilder>(file.Language); if (service != null) { service.BuildFile(file, collection); } }
public bool Merge(AttributedTypesTrieCollection part, OneToSetMap <IPsiSourceFile, AttributedTypesTrieNode> sourceFileToNodes) { bool ret = false; foreach (var pair in part.Roots) { var node = EnsureNode(pair.Key); ret = node.Merge(pair.Value, sourceFileToNodes) || ret; } return(ret); }
public static AttributedTypesTrieCollection Build(IPsiSourceFile sourceFile, AttributedTypesCacheBuilder builder) { var roots = new AttributedTypesTrieCollection(); foreach (var file in sourceFile.EnumerateDominantPsiFiles()) { builder.BuildFile(file, roots); } return(roots); }
public void MergeLoaded(object data) { var node = (Pair <AttributedTypesTrieCollection, JetHashSet <IPsiSourceFile> >)data; if (node.First == null || node.Second == null) { return; } myLocks.AssertWriteAccessAllowed(); //optimization here: replace roots because it constains no data yet. myRoot = node.First; myFilesWithoutAnnotations = node.Second; // add new nodes to file -> node index. UpdateIndexAfterLoad(myRoot.Roots); myPsiFiles.PsiChanged(null, PsiChangedElementType.ContentsChanged); }
private Pair <AttributedTypesTrieCollection, JetHashSet <IPsiSourceFile> > LoadTrie(BinaryReader reader, IProgressIndicator progress) { var otherFilesCount = reader.ReadInt32(); var otherFiles = new JetHashSet <IPsiSourceFile>(); for (int i = 0; i < otherFilesCount; i++) { int persistentId = reader.ReadInt32(); var timestamp = reader.ReadInt64(); var file = myPersistentIndexManager.GetSourceFileById(persistentId); if (file != null && file.IsValid() && file.LastWriteTimeUtc.Ticks == timestamp) { otherFiles.Add(file); } } var map = new AttributedTypesTrieCollection(); map.Read(reader, myPersistentIndexManager); return(Pair.Of(map, otherFiles)); }
public void BuildFile(IFile file, AttributedTypesTrieCollection trieRoot) { }
public MyProcessor(CSharpAttributedTypesCacheBuilder builder, AttributedTypesTrieCollection trieRoot) { myBuilder = builder; myTrieRoot = trieRoot; }
public void BuildFile(IFile file, AttributedTypesTrieCollection trieRoot) { file.ProcessDescendants(new MyProcessor(this, trieRoot)); }
private AttributedTypesTrieCollection Build(IPsiSourceFile sourceFile) { return(AttributedTypesTrieCollection.Build(sourceFile, Builder)); }