dscode-core 0.1.0

Core types, text buffer, and configuration for DSCode
Documentation

dscode-core

docs.rs crates.io CI License: MIT

Core types, text buffer, and configuration for DSCode.

Install

cargo add dscode-core

Usage

TextBuffer

use dscode_core::TextBuffer;

let buffer = TextBuffer::new("Hello, world!");
assert_eq!(buffer.len_chars(), 13);
assert_eq!(buffer.get_text(), "Hello, world!");

AppDirectories

use dscode_core::AppDirectories;

let dirs = AppDirectories::resolve()?;
println!("Extensions: {:?}", dirs.extensions_dir);
println!("Storage: {:?}", dirs.storage_dir);
println!("Logs: {:?}", dirs.logs_dir);

Configuration

use dscode_core::AppDirectories;

let dirs = AppDirectories::resolve()?;
// User configuration file support at ~/.dscode/config.json
// Environment variable overrides (DSCODE_EXTENSIONS_DIR)
// Tilde (~) expansion in paths

See the examples/ directory for more complete samples.

Key Types

Type Description
TextBuffer Rope-based text storage for efficient editing operations on large files
AppDirectories Platform-aware directory resolution for extensions, storage, and logs
CoreError Unified error type for core operations

Feature Flags

Feature Default Description
python off Enables Python bindings via PyO3

State Machine

TextBuffer uses the ropey rope data structure internally for O(log n) insertions, deletions, and slicing on large files.

Full API Docs

https://docs.rs/dscode-core

License

MIT