DocumentFoldingInfo (@NotNull Document document) { DocumentFoldingInfo info = document.getUserData(myFoldingInfoInDocumentKey); if (info == null) { info = new DocumentFoldingInfo(myProject, document); DocumentFoldingInfo written = ((UserDataHolderEx)document).putUserDataIfAbsent(myFoldingInfoInDocumentKey, info); if (written == info) { myDocumentsWithFoldingInfo.add(document); } else { info = written; } } return info; }