README.md aktualisiert
This commit is contained in:
264
README.md
264
README.md
@@ -1,130 +1,76 @@
|
||||
# BareCode
|
||||
|
||||
**BareCode – Schlanker Code-Editor für Web-Entwickler**
|
||||
Version 1.1.0
|
||||
**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)
|
||||
|
||||
Kompiliert sauber auf **Linux**, **Windows** und **Haiku**.
|
||||
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 |
|
||||
|---|---|
|
||||
| Projektbaum | Linkes Panel — zeigt nur das gewählte Projektverzeichnis |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| Dark / Light Mode | Umschaltbar (Strg+Shift+D), 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 |
|
||||
@@ -137,13 +83,105 @@ cmake --install build
|
||||
| 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 |
|
||||
|
||||
---
|
||||
|
||||
## Erweitern
|
||||
## Projektstruktur
|
||||
|
||||
### Neuen Highlighter hinzufügen
|
||||
```
|
||||
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)
|
||||
@@ -151,17 +189,11 @@ cmake --install build
|
||||
|
||||
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
|
||||
## Lizenz
|
||||
|
||||
Allman-Klammerstil, C++17 durchgehend.
|
||||
MIT License — Copyright (c) 2025 Dany Thinnes / Projekt Hirnfrei
|
||||
|
||||
---
|
||||
|
||||
@@ -169,3 +201,5 @@ Allman-Klammerstil, C++17 durchgehend.
|
||||
|
||||
- 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)
|
||||
|
||||
Reference in New Issue
Block a user