scribe_selection/
context.rs1use scribe_core::Result;
4use crate::selector::SelectionResult;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct ContextOptions {
9 pub include_dependencies: bool,
10 pub max_depth: usize,
11}
12
13impl Default for ContextOptions {
14 fn default() -> Self {
15 Self {
16 include_dependencies: true,
17 max_depth: 3,
18 }
19 }
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct CodeContext {
24 pub files: Vec<String>,
25 pub dependencies: Vec<String>,
26}
27
28pub struct ContextExtractor;
29
30impl ContextExtractor {
31 pub fn new() -> Self {
32 Self
33 }
34
35 pub async fn extract(
36 &self,
37 _selection: &SelectionResult,
38 _options: &ContextOptions
39 ) -> Result<CodeContext> {
40 Ok(CodeContext {
42 files: vec![],
43 dependencies: vec![],
44 })
45 }
46}
47
48impl Default for ContextExtractor {
49 fn default() -> Self {
50 Self::new()
51 }
52}