flowchart LR
Start([Start]) --> Parse[Parse Args]
Parse --> CheckMode{Full<br/>Mode?}
CheckMode -->|Yes| FullMode[Include<br/>Hidden Files/Directories]
CheckMode -->|No| NormalMode[Exclude<br/>Hidden Files/Directories]
FullMode --> CheckArgs{Args?}
NormalMode --> CheckArgs
CheckArgs -->|None| ListAll[List All Files]
CheckArgs -->|--filename| SearchName[Search<br/>Names]
CheckArgs -->|--filecontents| SearchContent[Search<br/>Content]
CheckArgs -->|Both| SearchBoth[Search<br/>Both]
ListAll --> Display[Table<br/>Display]
SearchName --> Display
SearchContent --> ShowContent{Show<br/>Contents?}
SearchBoth --> ShowContent
ShowContent -->|Yes| Syntax[Syntax<br/>Highlight]
ShowContent -->|No| Display
Syntax --> DisplayPanel[Colored<br/>Panel]
DisplayPanel --> Done([Done β])
Display --> Done
classDef startEnd fill:#27AE60,stroke:#229954,stroke-width:4px,color:#fff
classDef decision fill:#3498DB,stroke:#2874A6,stroke-width:4px,color:#fff
classDef process fill:#9B59B6,stroke:#7D3C98,stroke-width:4px,color:#fff
classDef search fill:#E67E22,stroke:#CA6F1E,stroke-width:4px,color:#fff
classDef output fill:#E74C3C,stroke:#C0392B,stroke-width:4px,color:#fff
class Start,Done startEnd
class CheckMode,CheckArgs,ShowContent decision
class Parse,FullMode,NormalMode,Syntax process
class ListAll,SearchName,SearchContent,SearchBoth search
class Display,DisplayPanel output

