Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(spec *LanguageSpec)
Register adds a LanguageSpec to the global registry.
Types ¶
type Language ¶
type Language string
Language represents a supported programming language.
const ( Python Language = "python" JavaScript Language = "javascript" TypeScript Language = "typescript" Go Language = "go" Rust Language = "rust" Java Language = "java" CPP Language = "cpp" TSX Language = "tsx" CSharp Language = "c-sharp" PHP Language = "php" Lua Language = "lua" Scala Language = "scala" Kotlin Language = "kotlin" JSON Language = "json" // Not in AllLanguages(); no LanguageSpec or tree-sitter grammar // Programming languages (Tier 1) Ruby Language = "ruby" C Language = "c" Bash Language = "bash" Zig Language = "zig" Elixir Language = "elixir" Haskell Language = "haskell" OCaml Language = "ocaml" ObjectiveC Language = "objective-c" Swift Language = "swift" Dart Language = "dart" Perl Language = "perl" Groovy Language = "groovy" Erlang Language = "erlang" R Language = "r" // Helper languages (Tier 2) HTML Language = "html" CSS Language = "css" SCSS Language = "scss" YAML Language = "yaml" TOML Language = "toml" HCL Language = "hcl" SQL Language = "sql" Dockerfile Language = "dockerfile" )
func LanguageForExtension ¶
LanguageForExtension returns the Language for a file extension.
type LanguageSpec ¶
type LanguageSpec struct {
Language Language
FileExtensions []string
FunctionNodeTypes []string
ClassNodeTypes []string
FieldNodeTypes []string // tree-sitter node kinds for struct/class fields
ModuleNodeTypes []string
CallNodeTypes []string
ImportNodeTypes []string
ImportFromTypes []string
PackageIndicators []string
// BranchingNodeTypes lists AST node kinds counted for complexity metric.
BranchingNodeTypes []string
// VariableNodeTypes lists module-level variable declaration node kinds.
VariableNodeTypes []string
// AssignmentNodeTypes lists assignment expression/statement node kinds.
AssignmentNodeTypes []string
// ThrowNodeTypes lists throw/raise statement node kinds.
ThrowNodeTypes []string
// ThrowsClauseField is the field name for declared throws (e.g. Java "throws").
ThrowsClauseField string
// DecoratorNodeTypes lists decorator/annotation node kinds.
DecoratorNodeTypes []string
// EnvAccessFunctions lists function names used to read env vars (e.g. "os.Getenv").
EnvAccessFunctions []string
// EnvAccessMemberPatterns lists member access patterns for env vars (e.g. "process.env").
EnvAccessMemberPatterns []string
}
LanguageSpec defines the tree-sitter node types for a language.
func ForExtension ¶
func ForExtension(ext string) *LanguageSpec
ForExtension returns the LanguageSpec for a file extension (e.g. ".go").
func ForLanguage ¶
func ForLanguage(lang Language) *LanguageSpec
ForLanguage returns the LanguageSpec for a language.
Source Files
¶
- bash.go
- c_lang.go
- cpp.go
- csharp.go
- css.go
- dart.go
- dockerfile.go
- elixir.go
- erlang.go
- go_lang.go
- groovy.go
- haskell.go
- hcl.go
- html.go
- java.go
- javascript.go
- kotlin.go
- lang.go
- lua.go
- objc.go
- ocaml.go
- perl.go
- php.go
- python.go
- r.go
- r_lang.go
- ruby.go
- rust.go
- scala.go
- scss.go
- sql.go
- swift.go
- toml_lang.go
- tsx.go
- typescript.go
- yaml_lang.go
- zig.go
Click to show internal directories.
Click to hide internal directories.