fortrangoingonforty/fortress / 4eed172

Browse files

untrack this

Authored by Matthew Forrester Wolffe <137964366+mfwolffe@users.noreply.github.com>
Committed by GitHub
SHA
4eed172c9692fb7ae0e9204e1502eaa6be9f739e
Parents
fa50d33
Tree
740006c

1 changed file

StatusFile+-
D CLAUDE.md 0 60
CLAUDE.mddeleted
@@ -1,60 +0,0 @@
1
-# CLAUDE.md
2
-
3
-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
-## Build Commands
6
-
7
-```bash
8
-fpm build                          # Debug build
9
-fpm build --flag "-O2"             # Release build with optimization
10
-fpm build --flag "-g -Wall -Wextra" # Build with debug flags and warnings
11
-fpm run                            # Build and run
12
-fpm test                           # Run test suite
13
-```
14
-
15
-**Dependencies**: gfortran 10+ (or ifort), fpm, ncurses library
16
-
17
-## Architecture
18
-
19
-FORTRESS is a CLI file manager written in modern Fortran (2008+) with dual-pane navigation, git integration, and fuzzy search.
20
-
21
-### Module Structure
22
-
23
-```
24
-app/main.f90              # Main event loop, state management, user input (~1100 LOC)
25
-src/
26
-├── filesystem/fs_ops.f90     # Directory reading, path manipulation, fzf search, file ops
27
-├── ui/display.f90            # Dual-pane rendering (30% parent | 70% current), color output
28
-├── ui/preview.f90            # File preview functionality
29
-├── terminal/term_control.f90 # Raw mode, ANSI codes, terminal size, key reading
30
-├── git/git_ops.f90           # Git status, staging, commits, push/pull, diff display
31
-└── version/version.f90       # Version info (auto-generated by stamp-version.sh)
32
-```
33
-
34
-### Key Patterns
35
-
36
-**State Management**: The main event loop in `main.f90` manages:
37
-- Navigation state (`current_dir`, `parent_dir`, `selected`, `scroll_offset`)
38
-- Mode flags (`move_mode`, `in_rename_mode`, `in_selection_mode`)
39
-- Clipboard (`has_clipboard`, `clipboard_paths[]`, copy vs cut)
40
-- Multi-select tracking (`is_selected[]`, `selection_count`)
41
-- Favorites stored in `~/.fortress_favorites`
42
-
43
-**Terminal Control**:
44
-- Uses alternate screen buffer (`ESC[?1049h/l`) to prevent scroll artifacts
45
-- Raw mode via `stty` for non-blocking, character-by-character input
46
-- Terminal size caching (refreshes every 100 calls)
47
-
48
-**External Commands**: All shell commands use `execute_command_line()` - ensure proper escaping for paths with special characters.
49
-
50
-**Git Integration**: Uses git CLI directly; status is cached with 500ms TTL. Directories show recursive status indicators.
51
-
52
-**Shell Integration**: `~/.fortress_cd` file enables cd-on-exit feature; wrapper scripts in `fortress.sh`/`fortress.fish` read this file.
53
-
54
-### Constants
55
-
56
-Defined across modules: `MAX_PATH=512`, `MAX_FILES=500`
57
-
58
-### Color Scheme
59
-
60
-Blue=directories, Green=executables, Grey=dotfiles, Red=cut files/staged, Yellow=warnings/incoming changes