@Nullable private MPSTreeNode getNode(MPSTreeNode rootTreeNode, VirtualFile file) { if (rootTreeNode instanceof AbstractFileTreeNode) { VirtualFile nodeFile = ((AbstractFileTreeNode) rootTreeNode).getFile(); if (nodeFile != null) { if (nodeFile.getUrl().equals(file.getUrl())) { return rootTreeNode; } if (!VfsUtil.isAncestor(nodeFile, file, false)) { return null; } } else { return null; } } for (MPSTreeNode node : rootTreeNode) { node.init(); MPSTreeNode result = getNode(node, file); if (result != null) { return result; } } return null; }