void (@NotNull Element state) { Set<VirtualFile> oldFiles = new HashSet<>(getFiles()); myMap.clear(); for (Element fileElement : state.getChildren(FILE_ELEMENT)) { Attribute urlAttr = fileElement.getAttribute(URL_ATTR); if (urlAttr != null) { String url = urlAttr.getValue(); VirtualFile vf = VirtualFileManager.getInstance().findFileByUrl(url); if (vf != null) { String value = fileElement.getAttributeValue(VALUE_ATTR); myMap.put(vf, Objects.requireNonNullElse(value, PlainTextFileType.INSTANCE.getName())); } } } Collection<VirtualFile> toReparse = Sets.symmetricDifference(myMap.keySet(), oldFiles); onFileSettingsChanged(toReparse); }