Skip to content

Commit b715aa1

Browse files
aksOpsclaude
andcommitted
feat(parser): map 15 additional file extensions to languages
FileDiscovery was missing extension→language mappings for c#, kotlin, scala, c++, rust, terraform, bicep, proto, xml, markdown, powershell, bash, ruby, groovy. These languages have detectors registered but files were dropped at discovery as LanguageUnknown. Adding them to: - the Language enum (15 new entries) - Language.String() (consistent with detector SupportedLanguages strings) - LanguageFromExtension (.cs/.kt/.kts/.scala/.cpp/.h*/.rs/.tf/.bicep/.proto/.xml/.md/.ps1/.sh/.rb/.groovy) - isStructuredOrTextual (regex-handled, no tree-sitter) Benchmark: terraform-aws-eks went from 19 discovered → many more after this fix (validation pending second-pass run). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 20faacc commit b715aa1

1 file changed

Lines changed: 82 additions & 1 deletion

File tree

go/internal/parser/parser.go

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,23 @@ const (
3030
LanguageBatch
3131
LanguageVue
3232
LanguageSvelte
33+
// Additional languages discovered through file extension but parsed via
34+
// regex/structured paths (no tree-sitter grammar wired in).
35+
LanguageCSharp
36+
LanguageKotlin
37+
LanguageScala
38+
LanguageCpp
39+
LanguageRust
40+
LanguageTerraform
41+
LanguageBicep
42+
LanguageProto
43+
LanguageDockerfile
44+
LanguageXML
45+
LanguageMarkdown
46+
LanguagePowerShell
47+
LanguageBash
48+
LanguageRuby
49+
LanguageGroovy
3350
)
3451

3552
func (l Language) String() string {
@@ -60,6 +77,36 @@ func (l Language) String() string {
6077
return "vue"
6178
case LanguageSvelte:
6279
return "svelte"
80+
case LanguageCSharp:
81+
return "csharp"
82+
case LanguageKotlin:
83+
return "kotlin"
84+
case LanguageScala:
85+
return "scala"
86+
case LanguageCpp:
87+
return "cpp"
88+
case LanguageRust:
89+
return "rust"
90+
case LanguageTerraform:
91+
return "terraform"
92+
case LanguageBicep:
93+
return "bicep"
94+
case LanguageProto:
95+
return "proto"
96+
case LanguageDockerfile:
97+
return "dockerfile"
98+
case LanguageXML:
99+
return "xml"
100+
case LanguageMarkdown:
101+
return "markdown"
102+
case LanguagePowerShell:
103+
return "powershell"
104+
case LanguageBash:
105+
return "bash"
106+
case LanguageRuby:
107+
return "ruby"
108+
case LanguageGroovy:
109+
return "groovy"
63110
default:
64111
return "unknown"
65112
}
@@ -95,6 +142,34 @@ func LanguageFromExtension(ext string) Language {
95142
return LanguageVue
96143
case ".svelte":
97144
return LanguageSvelte
145+
case ".cs":
146+
return LanguageCSharp
147+
case ".kt", ".kts":
148+
return LanguageKotlin
149+
case ".scala", ".sc":
150+
return LanguageScala
151+
case ".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx", ".h":
152+
return LanguageCpp
153+
case ".rs":
154+
return LanguageRust
155+
case ".tf", ".tfvars":
156+
return LanguageTerraform
157+
case ".bicep":
158+
return LanguageBicep
159+
case ".proto":
160+
return LanguageProto
161+
case ".xml":
162+
return LanguageXML
163+
case ".md", ".markdown":
164+
return LanguageMarkdown
165+
case ".ps1", ".psm1", ".psd1":
166+
return LanguagePowerShell
167+
case ".sh", ".bash", ".zsh":
168+
return LanguageBash
169+
case ".rb":
170+
return LanguageRuby
171+
case ".groovy", ".gradle":
172+
return LanguageGroovy
98173
default:
99174
return LanguageUnknown
100175
}
@@ -147,7 +222,13 @@ func isStructuredOrTextual(l Language) bool {
147222
switch l {
148223
case LanguageYaml, LanguageJSON, LanguageTOML, LanguageINI,
149224
LanguageProperties, LanguageSQL, LanguageBatch, LanguageVue,
150-
LanguageSvelte:
225+
LanguageSvelte,
226+
// Regex-handled languages: no tree-sitter grammar wired; detectors
227+
// consume the raw content directly.
228+
LanguageCSharp, LanguageKotlin, LanguageScala, LanguageCpp,
229+
LanguageRust, LanguageTerraform, LanguageBicep, LanguageProto,
230+
LanguageDockerfile, LanguageXML, LanguageMarkdown,
231+
LanguagePowerShell, LanguageBash, LanguageRuby, LanguageGroovy:
151232
return true
152233
}
153234
return false

0 commit comments

Comments
 (0)