diff --git a/pom.xml b/pom.xml
index 2ed880a8..bca2817b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,6 +87,11 @@ SOFTWARE.
jcabi-xml
0.30.1
+
+ io.github.secretx33
+ path-matching-resource-pattern-resolver
+ 0.1
+
org.cactoos
cactoos
diff --git a/src/main/java/org/eolang/lints/LintByXsl.java b/src/main/java/org/eolang/lints/LintByXsl.java
index 3eba367b..69ac43e3 100644
--- a/src/main/java/org/eolang/lints/LintByXsl.java
+++ b/src/main/java/org/eolang/lints/LintByXsl.java
@@ -23,12 +23,14 @@
*/
package org.eolang.lints;
+import com.jcabi.xml.ClasspathSources;
import com.jcabi.xml.XML;
import com.jcabi.xml.XSL;
import com.jcabi.xml.XSLDocument;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedList;
+import org.cactoos.Input;
import org.cactoos.io.ResourceOf;
import org.cactoos.text.IoCheckedText;
import org.cactoos.text.TextOf;
@@ -50,15 +52,24 @@ final class LintByXsl implements Lint {
* @param xsl Relative path of XSL
* @throws IOException If fails
*/
- LintByXsl(final String xsl) throws IOException {
+ LintByXsl(final Input xsl) throws IOException {
this.sheet = new XSLDocument(
new IoCheckedText(
- new TextOf(
- new ResourceOf(
- String.format("org/eolang/lints/%s.xsl", xsl)
- )
- )
+ new TextOf(xsl)
).asString()
+ ).with(new ClasspathSources());
+ }
+
+ /**
+ * Ctor.
+ * @param xsl Relative path of XSL
+ * @throws IOException If fails
+ */
+ LintByXsl(final String xsl) throws IOException {
+ this(
+ new ResourceOf(
+ String.format("org/eolang/lints/%s.xsl", xsl)
+ )
);
}
diff --git a/src/main/java/org/eolang/lints/Scope.java b/src/main/java/org/eolang/lints/Scope.java
index f9e411e5..8d54f79b 100644
--- a/src/main/java/org/eolang/lints/Scope.java
+++ b/src/main/java/org/eolang/lints/Scope.java
@@ -23,11 +23,13 @@
*/
package org.eolang.lints;
+import io.github.secretx33.resourceresolver.PathMatchingResourcePatternResolver;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
+import org.cactoos.io.InputOf;
import org.cactoos.iterable.Mapped;
/**
@@ -40,13 +42,7 @@ public final class Scope {
/**
* Lints to use.
*/
- private static final Iterable LINTS = new Mapped<>(
- LintByXsl::new,
- Arrays.asList(
- "critical/duplicate-names",
- "critical/not-empty-atoms"
- )
- );
+ private static final Iterable LINTS = Scope.all();
/**
* Directory with XMIR files.
@@ -76,4 +72,25 @@ public Collection defects() throws IOException {
return messages;
}
+ /**
+ * All lints.
+ * @return List of all lints
+ */
+ private static Iterable all() {
+ try {
+ return new Mapped<>(
+ res -> new LintByXsl(
+ new InputOf(res.getInputStream())
+ ),
+ Arrays.asList(
+ new PathMatchingResourcePatternResolver().getResources(
+ "classpath*:org/eolang/lints/**/*.xsl"
+ )
+ )
+ );
+ } catch (final IOException ex) {
+ throw new IllegalArgumentException(ex);
+ }
+ }
+
}
diff --git a/src/main/java/org/eolang/lints/Severity.java b/src/main/java/org/eolang/lints/Severity.java
index 9e456687..e10c6a7d 100644
--- a/src/main/java/org/eolang/lints/Severity.java
+++ b/src/main/java/org/eolang/lints/Severity.java
@@ -53,7 +53,7 @@ public static Severity parsed(final String text) {
final Severity severity;
if ("critical".equals(text)) {
severity = Severity.CRITICAL;
- } else if ("defect".equals(text)) {
+ } else if ("error".equals(text)) {
severity = Severity.ERROR;
} else if ("warning".equals(text)) {
severity = Severity.WARNING;
diff --git a/src/main/resources/org/eolang/lints/metas/mandatory-home-meta.xsl b/src/main/resources/org/eolang/lints/metas/mandatory-home-meta.xsl
index 4829cf40..b7426efd 100644
--- a/src/main/resources/org/eolang/lints/metas/mandatory-home-meta.xsl
+++ b/src/main/resources/org/eolang/lints/metas/mandatory-home-meta.xsl
@@ -32,7 +32,7 @@ SOFTWARE.
missing-home
-
+ 0
warning
diff --git a/src/main/resources/org/eolang/lints/metas/mandatory-package-meta.xsl b/src/main/resources/org/eolang/lints/metas/mandatory-package-meta.xsl
index 591f54a3..6468f1a7 100644
--- a/src/main/resources/org/eolang/lints/metas/mandatory-package-meta.xsl
+++ b/src/main/resources/org/eolang/lints/metas/mandatory-package-meta.xsl
@@ -32,7 +32,7 @@ SOFTWARE.
missing-package
-
+ 0
warning
diff --git a/src/main/resources/org/eolang/lints/metas/mandatory-version-meta.xsl b/src/main/resources/org/eolang/lints/metas/mandatory-version-meta.xsl
index 1e39bcc8..bb69ffbb 100644
--- a/src/main/resources/org/eolang/lints/metas/mandatory-version-meta.xsl
+++ b/src/main/resources/org/eolang/lints/metas/mandatory-version-meta.xsl
@@ -32,7 +32,7 @@ SOFTWARE.
missing-version-meta
-
+ 0
warning