diff --git a/Cargo.lock b/Cargo.lock index 27de701..ae1ba79 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2013,6 +2013,16 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num" version = "0.4.3" @@ -2224,6 +2234,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking_lot" version = "0.12.4" @@ -2798,6 +2814,15 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -2831,6 +2856,8 @@ dependencies = [ "serde", "serde_json", "tokenizers", + "tracing", + "tracing-subscriber", "tree-sitter", "tree-sitter-c", "tree-sitter-go", @@ -3042,6 +3069,15 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + [[package]] name = "time" version = "0.3.41" @@ -3269,6 +3305,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] [[package]] @@ -3448,6 +3510,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "vcpkg" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index acc6070..fa4c799 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,3 +18,9 @@ kdl = "6.3.4" serde = "1.0.219" serde_json = "1.0.140" tokenizers = "0.21.1" +tracing = "0.1.41" +tracing-subscriber = "0.3.19" +tree-sitter = "0.25.6" +tree-sitter-c = "0.24.1" +tree-sitter-go = "0.23.4" +tree-sitter-rust = "0.24.0" diff --git a/src/main.rs b/src/main.rs index b499f7b..e9b9646 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ use hora::index::hnsw_idx::HNSWIndex; use kdl::KdlDocument; use state::State; use std::collections::HashMap; +use tracing::info_span; mod embed; mod state; @@ -60,6 +61,7 @@ fn path_to_parent_base(p: &std::path::Path) -> Result { #[actix_web::main] async fn main() -> Result<()> { + tracing_subscriber::fmt::init(); let args = Args::parse(); let port = args.port; let mut embed = embed::Embed::new(args)?; diff --git a/src/v2/api.rs b/src/v2/api.rs index a7fe39f..a811b2e 100644 --- a/src/v2/api.rs +++ b/src/v2/api.rs @@ -1,5 +1,6 @@ use hora::{core::ann_index::ANNIndex, index::hnsw_idx::HNSWIndex}; use std::collections::HashMap; +use tracing::info_span; use tree_sitter::Parser; use super::{errors::Error, mutation}; @@ -53,7 +54,7 @@ pub(crate) async fn get_snippet( let langfn = get_lang(lang)?; - // span!(Level::INFO, "received a prompt {prompt:?}"); + info_span!("received a prompt: {prompt:?}"); let mut appstate = data.inner.lock().map_err(|_| Error::Busy)?; let target = appstate diff --git a/src/v2/mutation.rs b/src/v2/mutation.rs index 9bbc6b8..db79bbe 100644 --- a/src/v2/mutation.rs +++ b/src/v2/mutation.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; use std::path::Path; +use tracing::debug_span; use tree_sitter::{Language, Node, Query, QueryCursor, StreamingIterator}; use anyhow::{Result, bail}; @@ -99,7 +100,7 @@ pub fn apply( let mut query_result_map = HashMap::new(); for mutation in &mutations.mutations { let query_result = query(root_node, mutation.expression.as_str(), &lang, source_bytes); - // span!(Level::DEBUG, "{:?}", query_result); + debug_span!("mutation query expression matched: {query_result:?}"); split_ats.push(query_result.start); split_ats.push(query_result.end); @@ -110,7 +111,7 @@ pub fn apply( Substitute::Capture(attrib) => &query_result.captures[attrib], }) } - // span!(Level::DEBUG, "{ast_rewrite:?}"); + debug_span!("AST rewritten to {ast_rewrite:?}"); query_result_map.insert(query_result.start, ast_rewrite); }