# BareCode **Schlanker, modularer Code-Editor für Web-Entwickler** Version 1.1.0 — von **Dany Thinnes** | [Projekt Hirnfrei](https://www.projekt-hirnfrei.de) | [Discord](https://discord.projekt-hirnfrei.de) Entwickelt mit **C++17**, **Qt6** und **CMake**. Kompiliert auf **Linux**, **Windows** und **Haiku**. --- ## Installation ### Arch Linux / Manjaro (AUR) ```bash # Mit yay yay -S barecode # Mit paru paru -S barecode # Immer aktuellster Git-Stand yay -S barecode-git ``` ### Aus dem Quellcode bauen Siehe Abschnitt **Bauen** weiter unten. --- ## Features ### Editor | Feature | Details | |---|---| | Syntax-Highlighting | HTML, PHP, CSS, C/C++ — inkl. mehrzeiliger Kommentare | | Tabs | Mehrere Dateien gleichzeitig, verschiebbar und schließbar | | Änderungsindikator | ● im Tab-Titel bei ungespeicherten Änderungen | | Zeilennummern | Eigener Gutter, aktuelle Zeile hervorgehoben | | Einrück-Führungslinien | Vertikale Linien wie in VS Code | | Auto-Indent | Einrückungstiefe wird bei Enter übernommen | | Tab / Shift+Tab | Ein- und Ausrücken, auch für mehrere Zeilen gleichzeitig | | Smart Backspace | Springt zur vorherigen Tab-Stop-Position | | Farbvorschau | CSS-Farbwerte (#hex, rgb, hsl) werden inline angezeigt | | Farbauswahl | Klick auf das Farbquadrat öffnet einen Farbauswahl-Dialog | | Funktionssignatur | Tooltip mit Parametern beim Tippen von PHP-Funktionen | ### Navigation | Feature | Details | |---|---| | Projektbaum | Linkes Panel — zeigt nur das gewählte Projektverzeichnis | | Neue Datei / Ordner | Rechtsklick im Dateibaum | | Doppelklick-Navigation | Doppelklick auf einen Funktionsnamen springt zur Definition | | Suchen & Ersetzen | Einzeln, Alle, In Auswahl, Regex, Live-Hervorhebung (Strg+F) | | In Dateien suchen | Rekursive Projektsuche mit Ergebnisliste (Strg+Shift+F) | ### Projektanalyse | Feature | Details | |---|---| | Projektfunktionen | Alle definierten Funktionen als durchsuchbare Liste (Strg+Shift+P) | | Tote Funktionen | Analyse ungenutzter Funktionen mit Exclude-Verzeichnissen (Strg+Shift+T) | | Export | Analyseergebnisse als TXT exportieren | ### Allgemein | Feature | Details | |---|---| | Speichern | Speichern, Speichern unter, Alles speichern | | Dark / Light Mode | Umschaltbar (Strg+Shift+D), wird gespeichert | | Session | Geöffnete Dateien und aktiver Tab werden wiederhergestellt | --- ## Tastaturkürzel | Aktion | Kürzel | |---|---| | Datei öffnen | Strg+O | | Neue Datei | Strg+N | | Projekt öffnen | Strg+Shift+O | | Speichern | Strg+S | | Speichern unter | Strg+Shift+A | | Alles speichern | Strg+Shift+S | | Suchen / Ersetzen | Strg+F | | In Dateien suchen | Strg+Shift+F | | Projektfunktionen | Strg+Shift+P | | Tote Funktionen | Strg+Shift+T | | Dark Mode | Strg+Shift+D | --- ## Projektstruktur ``` BareCode/ ├── CMakeLists.txt ├── main.cpp ├── LICENSE ├── PKGBUILD # Stabiles AUR-Paket ├── PKGBUILD-git # AUR-Paket (Git-Stand) ├── BareCode.desktop # Linux-Anwendungsmenü ├── resources/ │ ├── resources.qrc │ ├── icon_*.png │ └── php_functions.json └── src/ ├── core/ # MainWindow, ProjectManager, Settings, │ # ThemeManager, AboutDialog, IPlugin ├── editor/ # EditorPanel, EditorTab, CodeEditor, │ # SearchPanel, FileSearchPanel, │ # ColorIndicator, SignatureHelper, │ # FunctionScanner, FunctionIndex, │ # FunctionListPanel, FunctionListDialog, │ # DeadCodeAnalyzer, DeadCodeDialog ├── filetree/ # FileTreePanel └── highlighter/ # SyntaxHighlighter, HighlighterFactory ``` Jedes Unterverzeichnis kompiliert als eigene statische Bibliothek — Komponenten lassen sich unabhängig austauschen und erweitern. --- ## Abhängigkeiten & Bauen ### Linux **Ubuntu / Debian:** ```bash sudo apt install cmake ninja-build qt6-base-dev qt6-base-dev-tools ``` **Arch / Manjaro:** ```bash sudo pacman -S cmake ninja qt6-base ``` **Bauen:** ```bash cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build ./build/BareCode ``` **Installieren:** ```bash sudo cmake --install build ``` --- ### Windows **Abhängigkeiten:** - [Qt6](https://www.qt.io/download) — Komponenten: Qt6 Base, Qt6 Concurrent - CMake ≥ 3.16 - Visual Studio 2019 oder neuer ```bat cmake -B build -G "Visual Studio 17 2022" -A x64 cmake --build build --config Release ``` **Installer erstellen** (mit [Inno Setup](https://jrsoftware.org/isinfo.php)): ```bat windeployqt --release build\Release\BareCode.exe ``` --- ### Haiku ```bash pkgman install qt6_base qt6_base_devel cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j$(nproc) ./build/BareCode ``` > Getestet auf Haiku R1/beta5. `qt6_base_devel` enthält auf Haiku > sowohl die Header als auch die Build-Tools. --- ## Neue Sprache hinzufügen 1. Subklasse von `SyntaxHighlighter` in `src/highlighter/` erstellen 2. `m_rules` im Konstruktor befüllen (siehe `CppHighlighter` als Vorlage) 3. Dateiendung in `HighlighterFactory.cpp` registrieren Keine weiteren Dateien müssen geändert werden. --- ## Lizenz MIT License — Copyright (c) 2025 Dany Thinnes / Projekt Hirnfrei --- ## Links - Website: [www.projekt-hirnfrei.de](https://www.projekt-hirnfrei.de) - Discord: [discord.projekt-hirnfrei.de](https://discord.projekt-hirnfrei.de) - Quellcode: [git.projekt-hirnfrei.de/diabolus/BareCode](https://git.projekt-hirnfrei.de/diabolus/BareCode) - AUR: [aur.archlinux.org/packages/barecode](https://aur.archlinux.org/packages/barecode)