Files
BareCode/README.md
2026-08-10 09:28:12 +02:00

172 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BareCode
**BareCode Schlanker Code-Editor für Web-Entwickler**
Version 1.1.0
Kompiliert sauber auf **Linux**, **Windows** und **Haiku**.
---
## Features
| Feature | Details |
|---|---|
| Projektbaum | Linkes Panel — zeigt nur das gewählte Projektverzeichnis |
| Tabs | Mehrere Dateien gleichzeitig, verschiebbar und schließbar |
| Änderungsindikator | ● im Tab-Titel bei ungespeicherten Änderungen |
| Syntax-Highlighting | HTML, PHP, CSS, C/C++ inkl. mehrzeiliger Kommentare |
| 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 |
| Speichern | Speichern, Speichern unter, Alles speichern |
| Suchen & Ersetzen | Einzeln, Alle, In Auswahl, Regex, Live-Hervorhebung |
| In Dateien suchen | Rekursive Projektsuche mit Ergebnisliste, direkt zur Zeile |
| Dark / Light Mode | Umschaltbar, wird gespeichert |
| Session | Geöffnete Dateien und aktiver Tab werden wiederhergestellt |
---
## Projektstruktur
```
BareCode/
├── CMakeLists.txt
├── main.cpp
├── resources/
│ ├── resources.qrc
│ └── icon_*.png
└── src/
├── core/ # MainWindow, ProjectManager, Settings, ThemeManager, IPlugin
├── editor/ # EditorPanel, EditorTab, CodeEditor, SearchPanel, FileSearchPanel
├── filetree/ # FileTreePanel
└── highlighter/ # SyntaxHighlighter, HighlighterFactory
```
Jedes Unterverzeichnis kompiliert als eigene statische Bibliothek.
---
## Abhängigkeiten & Bauen
### Linux
**Abhängigkeiten (Beispiel Ubuntu/Debian):**
```bash
sudo apt install cmake qt6-base-dev qt6-base-dev-tools libqt6concurrent6
```
**Abhängigkeiten (Arch/Manjaro):**
```bash
sudo pacman -S cmake qt6-base
```
**Bauen:**
```bash
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/BareCode
```
**Installieren:**
```bash
sudo cmake --install build
```
---
### Windows (Visual Studio)
**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
build\Release\BareCode.exe
```
**Windows Installer erstellen** (mit [Inno Setup](https://jrsoftware.org/isinfo.php)):
```bat
windeployqt --release build\Release\BareCode.exe
```
Danach das Inno Setup Skript ausführen.
---
### Haiku
**Abhängigkeiten:**
```bash
pkgman install qt6_base qt6_base_devel
```
> **Hinweis:** `qt6_base_devel` enthält auf Haiku sowohl die Header als auch
> die Build-Tools (`moc`, `rcc`, `qmake`). Getestet auf Haiku R1/beta5.
**Bauen:**
```bash
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/BareCode
```
**Installieren:**
```bash
cmake --install build
```
> Nach der Installation wird `mimeset` automatisch aufgerufen um den
> MIME-Typ zu registrieren, damit BareCode im Haiku Tracker korrekt
> als Anwendung erkannt wird.
---
## 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 |
| Dark Mode | Strg+Shift+D |
---
## Erweitern
### Neuen Highlighter 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.
### Neues Panel / Plugin hinzufügen
1. `IPlugin`-Interface aus `src/core/IPlugin.h` implementieren
2. `QWidget`-Subklasse für die UI erstellen
3. In `MainWindow` instanziieren und verdrahten
---
## Code-Stil
Allman-Klammerstil, C++17 durchgehend.
---
## Links
- Website: [www.projekt-hirnfrei.de](https://www.projekt-hirnfrei.de)
- Discord: [discord.projekt-hirnfrei.de](https://discord.projekt-hirnfrei.de)