Files
wehub-resource-sync a06f331eb8
CI / benchmark (push) Has been skipped
install-script / posix-syntax (push) Successful in 6m1s
CI / build-onnx (push) Failing after 6m43s
init-smoke / dry-run (push) Failing after 15m57s
security / govulncheck (push) Has been cancelled
security / trivy-fs (push) Has been cancelled
CI / test (1.26, ubuntu-latest) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
CI / test (1.26, macos-latest) (push) Has been cancelled
CI / build-windows (push) Has been cancelled
CI / lint (push) Has been cancelled
install-script / powershell-syntax (push) Has been cancelled
install-script / install (macos-14) (push) Has been cancelled
install-script / install (ubuntu-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:33:42 +08:00

76 lines
2.9 KiB
Go

package astquery
import (
sitter "github.com/zzet/gortex/internal/parser/tsitter"
bashlang "github.com/zzet/gortex/internal/parser/tsitter/bash"
clang "github.com/zzet/gortex/internal/parser/tsitter/c"
cpplang "github.com/zzet/gortex/internal/parser/tsitter/cpp"
csharplang "github.com/zzet/gortex/internal/parser/tsitter/csharp"
elixirlang "github.com/zzet/gortex/internal/parser/tsitter/elixir"
golang "github.com/zzet/gortex/internal/parser/tsitter/golang"
javalang "github.com/zzet/gortex/internal/parser/tsitter/java"
jslang "github.com/zzet/gortex/internal/parser/tsitter/javascript"
kotlinlang "github.com/zzet/gortex/internal/parser/tsitter/kotlin"
phplang "github.com/zzet/gortex/internal/parser/tsitter/php"
pylang "github.com/zzet/gortex/internal/parser/tsitter/python"
rubylang "github.com/zzet/gortex/internal/parser/tsitter/ruby"
rustlang "github.com/zzet/gortex/internal/parser/tsitter/rust"
scalalang "github.com/zzet/gortex/internal/parser/tsitter/scala"
tsxlang "github.com/zzet/gortex/internal/parser/tsitter/tsx"
tslang "github.com/zzet/gortex/internal/parser/tsitter/typescript"
)
// DefaultLanguageResolver maps the language strings stored on
// KindFile nodes to their tree-sitter binding. The mapping covers
// every language the bundled detectors reference plus a handful of
// extras for raw-pattern queries. Languages that fall outside this
// list return nil — the engine then skips the matching targets
// (ast-grep behaves identically when its grammar isn't available).
//
// To extend: add the import + entry here. The detector definitions
// reference languages by string, not by binding pointer, so adding a
// language here doesn't require touching detectors.go.
func DefaultLanguageResolver(name string) *sitter.Language {
switch name {
case "go":
return golang.GetLanguage()
case "python":
return pylang.GetLanguage()
case "javascript":
return jslang.GetLanguage()
case "typescript":
// The plain .ts grammar handles JSX-free TypeScript. .tsx
// targets get retagged as "tsx" upstream so JSX-using
// detectors compile against the TSX grammar below.
return tslang.GetLanguage()
case "tsx":
// Superset of the TS grammar that exposes JSX nodes
// (jsx_element, jsx_attribute, …). Picked for .tsx targets
// so detectors that look for JSX shapes can compile cleanly.
return tsxlang.GetLanguage()
case "ruby":
return rubylang.GetLanguage()
case "java":
return javalang.GetLanguage()
case "kotlin":
return kotlinlang.GetLanguage()
case "scala":
return scalalang.GetLanguage()
case "rust":
return rustlang.GetLanguage()
case "elixir":
return elixirlang.GetLanguage()
case "php":
return phplang.GetLanguage()
case "c":
return clang.GetLanguage()
case "cpp", "c++":
return cpplang.GetLanguage()
case "csharp", "c#":
return csharplang.GetLanguage()
case "bash", "shell", "sh":
return bashlang.GetLanguage()
}
return nil
}