mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-19 15:09:18 +00:00
improve snippet finder
This commit is contained in:
@@ -44,6 +44,8 @@ import lombok.Data;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@@ -427,8 +429,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
|
|||||||
File f = new File(getDataFolder(), r + ".json");
|
File f = new File(getDataFolder(), r + ".json");
|
||||||
|
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
try {
|
try (JsonReader snippetReader = new JsonReader(new FileReader(f))){
|
||||||
JsonReader snippetReader = new JsonReader(new FileReader(f));
|
|
||||||
return adapter.read(snippetReader);
|
return adapter.read(snippetReader);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Iris.error("Couldn't read snippet " + r + " in " + reader.getPath() + " (" + e.getMessage() + ")");
|
Iris.error("Couldn't read snippet " + r + " in " + reader.getPath() + " (" + e.getMessage() + ")");
|
||||||
@@ -462,11 +463,20 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
|
|||||||
KList<String> l = new KList<>();
|
KList<String> l = new KList<>();
|
||||||
|
|
||||||
File snippetFolder = new File(getDataFolder(), "snippet/" + f);
|
File snippetFolder = new File(getDataFolder(), "snippet/" + f);
|
||||||
|
if (!snippetFolder.exists()) return l;
|
||||||
|
|
||||||
if (snippetFolder.exists() && snippetFolder.isDirectory()) {
|
String absPath = snippetFolder.getAbsolutePath();
|
||||||
for (File i : snippetFolder.listFiles()) {
|
try (var stream = Files.walk(snippetFolder.toPath())) {
|
||||||
l.add("snippet/" + f + "/" + i.getName().split("\\Q.\\E")[0]);
|
stream.filter(Files::isRegularFile)
|
||||||
}
|
.map(Path::toAbsolutePath)
|
||||||
|
.map(Path::toString)
|
||||||
|
.filter(s -> s.endsWith(".json"))
|
||||||
|
.map(s -> s.substring(absPath.length() + 1))
|
||||||
|
.map(s -> s.replace("\\", "/"))
|
||||||
|
.map(s -> s.split("\\Q.\\E")[0])
|
||||||
|
.forEach(s -> l.add("snippet/" + f + "/" + s));
|
||||||
|
} catch (Throwable e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return l;
|
return l;
|
||||||
|
|||||||
Reference in New Issue
Block a user