# algorift169/code-vision architecture

> Architecture diagram of the GitHub repository algorift169/code-vision, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/algorift169/code-vision
- Repository: https://github.com/algorift169/code-vision

## Overview

CodeVision is a GTK desktop project editor with an initial C/C++ syntax-tree inspector. The main workflow starts when a user opens a project, browses its files, edits them in tabs, and optionally inspects the active buffer in the Analyzer panel. Supporting capabilities include workspace search, file operations, terminal sessions, previews, and themes. The graph follows documented behavior and source-index references; several UI and service internals were not sampled, so uncertain wiring is omitted or marked unverified.

Main entry points: [`src/codevision/app/main_window.py`](https://github.com/algorift169/code-vision/blob/main/src/codevision/app/main_window.py) (Main window), [`src/codevision/parser/source_parser.py`](https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/source_parser.py) (Source parser), [`src/codevision/ui/project_explorer.py`](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/project_explorer.py) (Project explorer), [`src/codevision/editor/tab.py`](https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/tab.py) (Editor tabs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Application lifecycle"]
  node_entry["CLI entry<br/>[main.py]"]
  node_application["GTK application<br/>[application.py]"]
end

subgraph group_workspace["Project workspace"]
  node_window["Main window<br/>[main_window.py]"]
  node_explorer["Project explorer"]
  node_editor["Editor tabs<br/>[tab.py]"]
  node_code_editor["Code editor<br/>[editor.py]"]
  node_previews["Media previews<br/>[video_preview.py]"]
  node_search["Workspace search<br/>[search.py]"]
end

subgraph group_analysis["C/C++ analysis"]
  node_analysis_panel["Analyzer panel<br/>[analysis_panel.py]"]
  node_ast_view["AST inspector<br/>[ast_view.py]"]
  node_source_parser["Source parser<br/>[source_parser.py]"]
  node_tree_parser["Tree-sitter parser"]
  node_language_registry["Language registry"]
  node_ast_extractor["AST extractor<br/>[ast_extractor.py]"]
  node_ast_model["AST data model<br/>[ast_node.py]"]
end

subgraph group_services["Workspace services"]
  node_file_service["File operations<br/>[file_operations.py]"]
  node_save_service["Save service<br/>[save.py]"]
  node_terminal["Terminal sessions<br/>[terminal.py]"]
  node_folder_service["Folder browsing<br/>[folder_browser.py]"]
  node_search_service["File search<br/>[file_search.py]"]
end

subgraph group_appearance["Theme system"]
  node_theme["Theme manager<br/>[theme.py]"]
end

node_user(("Desktop user"))

node_user -->|"launches"| node_entry
node_entry -->|"delegates startup"| node_application
node_application -->|"creates window"| node_window
node_user -->|"uses workspace"| node_window
node_window -->|"hosts"| node_explorer
node_window -->|"hosts"| node_editor
node_editor -->|"uses editor"| node_code_editor
node_editor -->|"offers previews"| node_previews
node_window -->|"hosts"| node_search
node_search -->|"submits queries"| node_search_service
node_explorer -->|"browses folders"| node_folder_service
node_explorer -->|"opens terminals"| node_terminal
node_window -->|"hosts"| node_analysis_panel
node_analysis_panel -.->|"displays inspector"| node_ast_view
node_ast_view -->|"requests parsing"| node_source_parser
node_source_parser -->|"resolves language"| node_language_registry
node_source_parser -->|"parses syntax"| node_tree_parser
node_source_parser -->|"builds nodes"| node_ast_model
node_ast_view -->|"requests structural facts"| node_ast_extractor
node_window -->|"saves documents"| node_save_service
node_code_editor -->|"delegates saving"| node_save_service
node_window -.->|"provides file actions"| node_file_service
node_window -->|"configures appearance"| node_theme

click node_entry "https://github.com/algorift169/code-vision/blob/main/src/codevision/main.py"
click node_application "https://github.com/algorift169/code-vision/blob/main/src/codevision/app/application.py"
click node_window "https://github.com/algorift169/code-vision/blob/main/src/codevision/app/main_window.py"
click node_explorer "https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/project_explorer.py"
click node_editor "https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/tab.py"
click node_code_editor "https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/editor.py"
click node_previews "https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/video_preview.py"
click node_search "https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/search.py"
click node_analysis_panel "https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/analysis_panel.py"
click node_ast_view "https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/ast_view.py"
click node_source_parser "https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/source_parser.py"
click node_tree_parser "https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/tree_sitter_parser.py"
click node_language_registry "https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/language_registry.py"
click node_ast_extractor "https://github.com/algorift169/code-vision/blob/main/src/codevision/analysis/ast_extractor.py"
click node_ast_model "https://github.com/algorift169/code-vision/blob/main/src/codevision/model/ast_node.py"
click node_file_service "https://github.com/algorift169/code-vision/blob/main/src/codevision/services/file_operations.py"
click node_save_service "https://github.com/algorift169/code-vision/blob/main/src/codevision/services/save.py"
click node_terminal "https://github.com/algorift169/code-vision/blob/main/src/codevision/services/terminal.py"
click node_folder_service "https://github.com/algorift169/code-vision/blob/main/src/codevision/services/folder_browser.py"
click node_search_service "https://github.com/algorift169/code-vision/blob/main/src/codevision/services/file_search.py"
click node_theme "https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/theme.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_application,node_user toneBlue
class node_window,node_explorer,node_editor,node_code_editor,node_previews,node_search toneAmber
class node_analysis_panel,node_ast_view,node_source_parser,node_tree_parser,node_language_registry,node_ast_extractor,node_ast_model toneMint
class node_file_service,node_save_service,node_terminal,node_folder_service,node_search_service toneRose
class node_theme toneIndigo
```

## Components

### Application lifecycle

- [CLI entry](https://github.com/algorift169/code-vision/blob/main/src/codevision/main.py): `src/codevision/main.py`
- [GTK application](https://github.com/algorift169/code-vision/blob/main/src/codevision/app/application.py): `src/codevision/app/application.py`

### Project workspace

- [Main window](https://github.com/algorift169/code-vision/blob/main/src/codevision/app/main_window.py): `src/codevision/app/main_window.py`
- [Project explorer](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/project_explorer.py): `src/codevision/ui/project_explorer.py`
- [Editor tabs](https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/tab.py): `src/codevision/editor/tab.py`
- [Code editor](https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/editor.py): `src/codevision/editor/editor.py`
- [Media previews](https://github.com/algorift169/code-vision/blob/main/src/codevision/editor/video_preview.py): `src/codevision/editor/video_preview.py`
- [Workspace search](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/search.py): `src/codevision/ui/search.py`

### C/C++ analysis

- [Analyzer panel](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/analysis_panel.py): `src/codevision/ui/analysis_panel.py`
- [AST inspector](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/ast_view.py): `src/codevision/ui/ast_view.py`
- [Source parser](https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/source_parser.py): `src/codevision/parser/source_parser.py`
- [Tree-sitter parser](https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/tree_sitter_parser.py): `src/codevision/parser/tree_sitter_parser.py`
- [Language registry](https://github.com/algorift169/code-vision/blob/main/src/codevision/parser/language_registry.py): `src/codevision/parser/language_registry.py`
- [AST extractor](https://github.com/algorift169/code-vision/blob/main/src/codevision/analysis/ast_extractor.py): `src/codevision/analysis/ast_extractor.py`
- [AST data model](https://github.com/algorift169/code-vision/blob/main/src/codevision/model/ast_node.py): `src/codevision/model/ast_node.py`

### Workspace services

- [File operations](https://github.com/algorift169/code-vision/blob/main/src/codevision/services/file_operations.py): `src/codevision/services/file_operations.py`
- [Save service](https://github.com/algorift169/code-vision/blob/main/src/codevision/services/save.py): `src/codevision/services/save.py`
- [Terminal sessions](https://github.com/algorift169/code-vision/blob/main/src/codevision/services/terminal.py): `src/codevision/services/terminal.py`
- [Folder browsing](https://github.com/algorift169/code-vision/blob/main/src/codevision/services/folder_browser.py): `src/codevision/services/folder_browser.py`
- [File search](https://github.com/algorift169/code-vision/blob/main/src/codevision/services/file_search.py): `src/codevision/services/file_search.py`

### Theme system

- [Theme manager](https://github.com/algorift169/code-vision/blob/main/src/codevision/ui/theme.py): `src/codevision/ui/theme.py`

### Other components

- **Desktop user**

## Connections

- Desktop user → CLI entry: launches (evidence: `README.md`)
- CLI entry → GTK application: delegates startup (evidence: `src/codevision/main.py`)
- GTK application → Main window: creates window (evidence: `src/codevision/app/application.py`)
- Desktop user → Main window: uses workspace (evidence: `README.md`)
- Main window → Project explorer: hosts (evidence: `src/codevision/app/main_window.py`)
- Main window → Editor tabs: hosts (evidence: `src/codevision/app/main_window.py`)
- Editor tabs → Code editor: uses editor (evidence: `src/codevision/editor/tab.py`)
- Editor tabs → Media previews: offers previews (evidence: `src/codevision/editor/tab.py`)
- Main window → Workspace search: hosts (evidence: `src/codevision/app/main_window.py`)
- Workspace search → File search: submits queries (evidence: `src/codevision/ui/search.py`)
- Project explorer → Folder browsing: browses folders (evidence: `src/codevision/ui/project_explorer.py`)
- Project explorer → Terminal sessions: opens terminals (evidence: `src/codevision/ui/project_explorer.py`)
- Main window → Analyzer panel: hosts (evidence: `src/codevision/app/main_window.py`)
- Analyzer panel → AST inspector: displays inspector
- AST inspector → Source parser: requests parsing (evidence: `src/codevision/ui/ast_view.py`)
- Source parser → Language registry: resolves language (evidence: `src/codevision/parser/source_parser.py`)
- Source parser → Tree-sitter parser: parses syntax (evidence: `src/codevision/parser/source_parser.py`)
- Source parser → AST data model: builds nodes (evidence: `src/codevision/parser/source_parser.py`)
- AST inspector → AST extractor: requests structural facts (evidence: `src/codevision/ui/ast_view.py`)
- Main window → Save service: saves documents (evidence: `src/codevision/app/main_window.py`)
- Code editor → Save service: delegates saving (evidence: `src/codevision/editor/editor.py`)
- Main window → File operations: provides file actions
- Main window → Theme manager: configures appearance (evidence: `src/codevision/app/main_window.py`)
