Compatibility verification

This commit is contained in:
林万程
2023-03-27 19:18:10 +08:00
parent 66d3dac73b
commit 27b570c7f4
2 changed files with 12 additions and 21 deletions

View File

@@ -1,8 +1,5 @@
package io.github.linwancen.plugin.show.ext.conf;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.NotificationType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
@@ -10,6 +7,8 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.FilenameIndex;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -20,6 +19,7 @@ import java.util.regex.Pattern;
* call ConfFactory, ConfCacheGetUtils
*/
public class ConfCache {
private static final Logger LOG = LoggerFactory.getLogger(ConfCache.class);
static final String KEY_MID_EXT = ".key";
static final String DOC_MID_EXT = ".doc";
@@ -116,9 +116,6 @@ public class ConfCache {
}
}
private static final NotificationGroup LOAD_ALL_LOG =
new NotificationGroup("Ext Doc Conf Load All", NotificationDisplayType.BALLOON, true);
static void loadAll(@NotNull Project project) {
DumbService.getInstance(project).runReadActionInSmartMode(() ->
ApplicationManager.getApplication().runReadAction(() -> {
@@ -131,8 +128,7 @@ public class ConfCache {
if (files.isEmpty()) {
return;
}
LOAD_ALL_LOG.createNotification("Ext doc conf load all complete", files.size() + " files",
sb.toString(), NotificationType.INFORMATION).notify(project);
LOG.info("Ext doc conf load all complete {} files\n{}", files.size(), sb);
}));
}

View File

@@ -1,13 +1,12 @@
package io.github.linwancen.plugin.show.ext.conf;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.NotificationType;
import com.intellij.openapi.project.Project;
import com.twelvemonkeys.util.LinkedSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -15,18 +14,16 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;
class ConfFactory {
private static final Logger LOG = LoggerFactory.getLogger(ConfFactory.class);
private static final Pattern EMPTY_PATTERN = Pattern.compile("");
private static final Map<String, Pattern> PATTERN_CACHE = new ConcurrentHashMap<>();
private static final NotificationGroup REGEXP_LOG =
new NotificationGroup("Ext Doc Keyword Regexp Compile", NotificationDisplayType.TOOL_WINDOW, true);
private ConfFactory() {}
@Nullable
static Pattern buildPattern(@Nullable Project project, @NotNull String path,
static Pattern buildPattern(@SuppressWarnings("unused") @Nullable Project project, @NotNull String path,
@NotNull Map<String, Map<String, List<String>>> map) {
@NotNull Set<String> exclude = new LinkedSet<>();
@NotNull Set<String> exclude = new LinkedHashSet<>();
@NotNull StringBuilder sb = new StringBuilder();
for (@NotNull Map<String, List<String>> keyMap : map.values()) {
// key() is escape
@@ -53,15 +50,13 @@ class ConfFactory {
try {
@NotNull Pattern compile = Pattern.compile(regex);
PATTERN_CACHE.put(regex, compile);
REGEXP_LOG.createNotification("Ext doc keyword regexp compile success", regex.length() + " chars",
sb.toString(), NotificationType.INFORMATION).notify(project);
LOG.info("Ext doc keyword regexp compile success {} chars\n{}", regex.length(), sb);
return compile;
} catch (Exception e) {
sb.insert(0, "\n");
sb.insert(0, e.getLocalizedMessage());
PATTERN_CACHE.put(regex, EMPTY_PATTERN);
REGEXP_LOG.createNotification("Ext doc keyword regexp compile fail", regex.length() + " chars",
sb.toString(), NotificationType.ERROR).notify(project);
LOG.warn("Ext doc keyword regexp compile fail {} chars\n{}", regex.length(), sb);
return null;
}
}