@Override public LanguageLevel getLanguageLevel(@NotNull PsiDirectory dir) { synchronized (PsiLock.LOCK) { LanguageLevel level = dir.getUserData(LANG_LEVEL_IN_DIRECTORY); if (level == null) { level = getLanguageLevelInner(dir); dir.putUserData(LANG_LEVEL_IN_DIRECTORY, level); } return level; } }