devgen-splitter

Crates.iodevgen-splitter
lib.rsdevgen-splitter
version0.4.5
sourcesrc
created_at2024-10-14 14:08:54.725895
updated_at2024-10-26 04:29:59.535874
descriptionDevgen Splitter is a Rust library that breaks down source code into contextual chunks.
homepage
repositoryhttps://github.com/imotai/devgen-splitter
max_upload_size
id1408338
size239,398
imotai (imotai)

documentation

README

Devgen Splitter is a Rust library that breaks down source code into contextual chunks. It utilizes tree-sitter to identify code entities (such as classes, functions, and methods) and generate chunks with contextual metadata.

Crates.io Version codecov GitHub Actions Workflow Status

splitter

Features

  • Language-aware code splitting

  • Generate chunks with contextual metadata

  • Support for multiple programming languages

why devgen-splitter?

for a better cite feature

Usage

Add devgen-splitter to your project:

cargo add devgen-splitter

Basic usage example:

use devgen_splitter::{SplitOptions, split};
let code = "fn main() { println!(\"Hello, world!\"); }";
let options = SplitOptions { chunk_line_limit: 10};
let chunks = split("example.rs", code, &options).unwrap();
for chunk in chunks {
    println!("Chunk: {:?}", chunk);
}

For more examples, go to examples

Supported Languages

Language Query Rules Splitter Test
Rust
TypeScript
Java
Python
Solidity
Go 🚧 🚧 🚧
C++ 🚧 🚧 🚧
C 🚧 🚧 🚧

More languages coming soon!

Language Mapping

The following table shows how different code structures are represented across various programming languages and their corresponding tree-sitter query rule names:

Type Tree-sitter Query Rust Java TypeScript Python Go C++
Function function.definition function N/A function/array function function function function
Method method.definition method method method method method method
Struct struct.declaration struct class interface class struct struct
Class class.declaration impl class class class N/A class
Interface interface.declaration trait interface N/A N/A N/A N/A
Enum enum.declaration enum enum enum N/A N/A enum

Development Status

Devgen Splitter is in active development. We welcome community contributions and feedback.

Commit count: 56

cargo fmt