anitnilay20 / anitnilay20/thoth

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

Offen
#35 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement feature
Vorherrschende Sprache
Rust
Sterne
70
Forks
5
Ø Merge
10 Std. 33 Min.
Gemergte PRs (30 T.)
2

Beschreibung

## 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

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.