semantic-code-edit-mcp 0.1.0

MCP server for semantic code editing with tree-sitter
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use semantic_code_edit_mcp::{
    editor::Editor,
    languages::{LanguageName, LanguageRegistry},
};

#[test]
fn impl_block_pub_fn() {
    assert!(validate_code(r#"impl User pub fn new () {}"#, LanguageName::Rust).is_some());
}

fn validate_code(code: &str, language: LanguageName) -> Option<String> {
    let registry = LanguageRegistry::new().unwrap();
    let language = registry.get_language(language);
    let mut parser = language.tree_sitter_parser().unwrap();
    let tree = parser.parse(code, None).unwrap();
    println!("{}", &tree.root_node().to_string());
    Editor::validate(language, &tree, code)
}