anitnilay20 / anitnilay20/thoth

Add support for additional file formats (CSV, XML, YAML)

Đang mở
#35 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement feature
Ngôn ngữ chính
Rust
Star
70
Fork
5
Merge trung bình
10 giờ 33 phút
Pull request đã merge (30 ngày)
2

Mô tả

## Description
Building on the FileViewer architecture established in the recent refactoring, add support for viewing additional file formats beyond JSON/NDJSON.

## Background
The codebase has been refactored to separate generic file viewing logic (FileViewer) from format-specific rendering (JsonTreeViewer). This architecture makes it straightforward to add new file format viewers.

## Proposed File Formats

### Priority 1 - High Value
- **CSV/TSV** - Tabular data display with column headers, sorting, filtering
- **XML** - Tree-based viewer similar to JSON, with attribute support
- **YAML** - Tree viewer with YAML-specific syntax handling

### Priority 2 - Nice to Have
- **TOML** - Config file support
- **Plain Text** - Basic text viewer with syntax highlighting
- **Markdown** - Rendered preview

## Implementation Plan

Each format viewer should:
1. Implement a dedicated viewer (e.g., `CsvTableViewer`, `XmlTreeViewer`)
2. Integrate with `FileViewer` via format detection
3. Support common operations: search, copy, export
4. Maintain consistent UI/UX with existing JSON viewer

## Technical Notes

Current architecture:
- `FileViewer` (generic parent) - handles loading, caching, selection
- `JsonTreeViewer` (JSON-specific) - renders JSON tree structure
- `ViewerState` (shared) - common state across viewers

New viewers should follow this pattern and reuse the existing infrastructure.

## Related Issues
- Closes #19 (Modularize JsonViewer) ✅
- Related to #18 (Refactor file module)

## Acceptance Criteria
- [x] CSV/TSV files display in tabular format
- [ ] XML files display in tree structure
- [ ] YAML files display in tree structure
- [ ] File type auto-detection works correctly
- [ ] Search functionality works across all formats
- [ ] Performance remains good for large files (lazy loading where applicable)
- [ ] All keyboard shortcuts work consistently

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.