/
language.go
46 lines (40 loc) · 1.22 KB
/
language.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright 2023 CodeMaker AI Inc. All rights reserved.
package cli
import (
"fmt"
"github.com/codemakerai/codemaker-sdk-go/client"
)
var fileExtensions = map[string]string{
".c": client.LanguageC,
".cpp": client.LanguageCPP,
".cxx": client.LanguageCPP,
".cc": client.LanguageCPP,
".js": client.LanguageJavaScript,
".jsx": client.LanguageJavaScript,
".java": client.LanguageJava,
".php": client.LanguagePHP,
".cs": client.LanguageCSharp,
".go": client.LanguageGo,
".kt": client.LanguageKotlin,
".ts": client.LanguageTypeScript,
".tsx": client.LanguageTypeScript,
".rs": client.LanguageRust,
}
var testFileSuffixes = map[string]string{
client.LanguageJavaScript: "_test.js",
client.LanguageJava: "Test.java",
client.LanguageGo: "_test.go",
client.LanguageKotlin: "Test.kt",
}
func languageFromExtension(extension string) (string, error) {
if lang, ok := fileExtensions[extension]; ok {
return lang, nil
}
return "", fmt.Errorf("the file extension %s is not supported", extension)
}
func testFileSuffix(language string) (string, error) {
if lang, ok := testFileSuffixes[language]; ok {
return lang, nil
}
return "", fmt.Errorf("the language %s is not supported", language)
}