diff --git a/java/src/main/java/tech/sourced/enry/Enry.java b/java/src/main/java/tech/sourced/enry/Enry.java index e8cfad8..388163e 100644 --- a/java/src/main/java/tech/sourced/enry/Enry.java +++ b/java/src/main/java/tech/sourced/enry/Enry.java @@ -237,4 +237,24 @@ public class Enry { public static synchronized String getColor(String language) { return toJavaString(nativeLib.GetColor(toGoString(language))); } + + /** + * Reports whether the given path is a test path or not. + * + * @param path of the file or directory + * @return whether it's test or not + */ + public static synchronized boolean isTest(String path) { + return toJavaBool(nativeLib.IsTest(toGoString(path))); + } + + /** + * Returns type for given language. + * + * @param language of the file + * @return type (data, programming, markup, prose) + */ + public static synchronized String getLanguageType(String language) { + return toJavaString(nativeLib.GetLanguageType(toGoString(language))); + } } diff --git a/java/src/test/java/tech/sourced/enry/EnryTest.java b/java/src/test/java/tech/sourced/enry/EnryTest.java index 99241c4..25ba5d2 100644 --- a/java/src/test/java/tech/sourced/enry/EnryTest.java +++ b/java/src/test/java/tech/sourced/enry/EnryTest.java @@ -120,7 +120,7 @@ public class EnryTest { "extern int foo(void *bar);"; String[] result = Enry.getLanguages("foo.h", code.getBytes()); - String[] expected = {"C", "C++", "Objective-C"}; + String[] expected = {"C"}; assertArrayEquals(expected, result); } @@ -169,6 +169,19 @@ public class EnryTest { ); } + @Test + public void isTest() { + assertTrue(Enry.isTest("test_foo.py")); + assertTrue(Enry.isTest("test/java/tech/sourced/enry/EnryTest.java")); + assertFalse(Enry.isTest("foo.py")); + assertFalse(Enry.isTest("src/java/foo.java")); + } + + @Test + public void getLanguageType() { + assertEquals("data", Enry.getLanguageType("CSV")); + } + void assertGuess(String language, boolean safe, Guess guess) { assertEquals(language, guess.language); assertEquals(safe, guess.safe); diff --git a/shared/enry.go b/shared/enry.go index 58820e5..f3646b4 100644 --- a/shared/enry.go +++ b/shared/enry.go @@ -5,6 +5,7 @@ package main import "C" import "github.com/go-enry/go-enry/v2" +import "github.com/go-enry/go-enry/v2/data" //export GetLanguage func GetLanguage(filename string, content []byte) string { @@ -136,6 +137,16 @@ func GetColor(language string) string { return enry.GetColor(language) } +//export IsTest +func IsTest(path string) bool { + return enry.IsTest(path) +} + +//export GetLanguageType +func GetLanguageType(language string) string { + return data.Type(enry.GetLanguageType(language)).String() +} + func strSliceCopy(result *[]*C.char, slice []string) { for _, str := range slice { *result = append(*result, C.CString(str))