From b9df0eb260029ef5992e684ed8805c7ffed8ff5c Mon Sep 17 00:00:00 2001 From: Meng Zhang Date: Sat, 14 Oct 2023 00:57:54 -0700 Subject: [PATCH] feat: add golang repository context support (#555) --- Cargo.lock | 11 +++++++++++ crates/tabby-scheduler/Cargo.toml | 1 + crates/tabby-scheduler/queries/go.scm | 27 +++++++++++++++++++++++++++ crates/tabby-scheduler/src/dataset.rs | 11 +++++++++++ 4 files changed, 50 insertions(+) create mode 100644 crates/tabby-scheduler/queries/go.scm diff --git a/Cargo.lock b/Cargo.lock index 962bb2a..888e718 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3205,6 +3205,7 @@ dependencies = [ "tokio", "tracing", "tracing-test", + "tree-sitter-go", "tree-sitter-python", "tree-sitter-rust", "tree-sitter-tags", @@ -3925,6 +3926,16 @@ dependencies = [ "regex", ] +[[package]] +name = "tree-sitter-go" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad6d11f19441b961af2fda7f12f5d0dac325f6d6de83836a1d3750018cc5114" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "tree-sitter-python" version = "0.20.2" diff --git a/crates/tabby-scheduler/Cargo.toml b/crates/tabby-scheduler/Cargo.toml index 4519532..531f6fd 100644 --- a/crates/tabby-scheduler/Cargo.toml +++ b/crates/tabby-scheduler/Cargo.toml @@ -21,6 +21,7 @@ file-rotate = "0.7.5" tree-sitter-python = "0.20.2" tree-sitter-rust = "0.20.3" tree-sitter-typescript = "0.20.3" +tree-sitter-go = "0.20.0" [dev-dependencies] temp_testdir = "0.2" diff --git a/crates/tabby-scheduler/queries/go.scm b/crates/tabby-scheduler/queries/go.scm new file mode 100644 index 0000000..d8d5271 --- /dev/null +++ b/crates/tabby-scheduler/queries/go.scm @@ -0,0 +1,27 @@ +( + (comment)* @doc + . + (function_declaration + name: (identifier) @name) @definition.function + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.function) +) + +( + (comment)* @doc + . + (method_declaration + name: (field_identifier) @name) @definition.method + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.method) +) + +(call_expression + function: [ + (identifier) @name + (parenthesized_expression (identifier) @name) + (selector_expression field: (field_identifier) @name) + (parenthesized_expression (selector_expression field: (field_identifier) @name)) + ]) @reference.call + +(type_declaration (type_spec name: (type_identifier) @name)) @definition.type \ No newline at end of file diff --git a/crates/tabby-scheduler/src/dataset.rs b/crates/tabby-scheduler/src/dataset.rs index 215a102..c6eb965 100644 --- a/crates/tabby-scheduler/src/dataset.rs +++ b/crates/tabby-scheduler/src/dataset.rs @@ -259,6 +259,17 @@ lazy_static! { .unwrap(), ), ), + ( + "go", + TagsConfigurationSync( + TagsConfiguration::new( + tree_sitter_go::language(), + include_str!("../queries/go.scm"), + "", + ) + .unwrap(), + ), + ), ]) }; }