turbo-editors/turbo-corepublic Fork 0
v1.0.3
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-core.git
git clone ssh://git@rickub.com/turbo-editors/turbo-core.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

packages.md · 61 lines · 4.3 KBmarkdown Blame HistoryRaw
🛟 Updated. 28d5985 k33g yesterday1# Référence : les paquets
2
3> Description neutre et exhaustive de ce que contient turbo-core.
4
📦 Turbo Core — files rewritten outside reload into their windows; the agent window wraps what you type and keeps a long paste aside as a token (#28); configrepo fetches a shared .turbo-<slug> from a forge URL (#25) fe23288 k33g 3h ago5Dix-neuf paquets. Les dépendances vont strictement vers le bas ; il n'y a ni cycle ni indirection par interface pour en empêcher un.
🛟 Updated. 28d5985 k33g yesterday6
7```
8app → {editor, ui, lsp, buffer, terminal, filetree, settings, snippets, tools, syntax, theme, profile, version}
9 editor → {buffer, syntax, ui, theme}
10 terminal → {ui, theme, tcell, golang.org/x/sys}
11 filetree → {ui, theme, tcell}
12 snippets → {toml, projectfile, profile}
13 settings → {toml, projectfile, profile}
14 tools → {toml, projectfile, profile}
📦 Turbo Core — files rewritten outside reload into their windows; the agent window wraps what you type and keeps a long paste aside as a token (#28); configrepo fetches a shared .turbo-<slug> from a forge URL (#25) fe23288 k33g 3h ago15 configrepo → {projectfile, profile} ← lance la commande git
🛟 Updated. 28d5985 k33g yesterday16 syntax → theme
17 ui → theme
18 theme → {sans profile ; reçoit un répertoire}, tcell, toml
19 lsp → profile
20```
21
22| Paquet | Ce qu'il contient | Dépend de |
23| --- | --- | --- |
24| `profile` | L'identité de l'éditeur : nom, slug, serveur de langage, modèles de départ, et les chemins qui en dérivent | **bibliothèque standard seule** |
25| `buffer` | Le texte d'un fichier : lignes de runes, curseur, sélection, annulation, recherche, chargement et sauvegarde | **bibliothèque standard seule** |
26| `projectfile` | Écritures atomiques des fichiers TOML qu'un projet garde dans le répertoire de l'éditeur | **bibliothèque standard seule** |
📦 Turbo Core — files rewritten outside reload into their windows; the agent window wraps what you type and keeps a long paste aside as a token (#28); configrepo fetches a shared .turbo-<slug> from a forge URL (#25) fe23288 k33g 3h ago27| `configrepo` | Un répertoire de configuration partagé, rapporté depuis l'URL d'une forge (rickub, GitHub, GitLab, Codeberg) par un clone git superficiel, pour le `-load-config` d'un éditeur | `projectfile`, `profile`, la commande `git` |
🛟 Updated. 28d5985 k33g yesterday28| `version` | De quelle construction de lui-même un binaire est issu : marquage par l'éditeur de liens, puis informations de build Go | **bibliothèque standard seule** |
29| `jsonrpc` | JSON-RPC 2.0 sur un flux cadré : appels, notifications, requêtes entrantes auxquelles on peut répondre plus tard | **bibliothèque standard seule** |
30| `lsp` | Le cadrage LSP, les méthodes, et le processus fils | `jsonrpc`, `profile` |
31| `theme` | Du TOML vers des styles tcell ; onze thèmes embarqués plus ceux de l'utilisateur ; deux sortes d'héritage | `tcell`, `toml` |
32| `syntax` | La coloration : huit langages intégrés, le registre où un éditeur ajoute le sien, et la boîte à outils d'analyse | `theme` |
33| `settings` | Le `settings.toml` d'un projet : charger, créer, réécrire une clé sur place | `toml`, `projectfile`, `profile` |
34| `snippets` | Les textes réutilisables du `snippets.toml` d'un projet et de celui de l'utilisateur, groupés pour un menu | `toml`, `projectfile`, `profile` |
35| `tools` | Les commandes qu'un projet lance sur lui-même, et dans quel menu chacune se trouve | `toml`, `projectfile`, `profile` |
36| `ui` | Les composants Turbo Vision : peintre, bureau, fenêtre, menu, dialogue, contrôles, barre d'état | `theme`, `tcell` |
37| `editor` | Le composant d'édition : cadrage, défilement, touches, souris, insertion d'extraits | `buffer`, `syntax`, `theme`, `ui` |
38| `terminal` | Un shell dans une fenêtre : pseudo-terminal, émulateur VT/ANSI, grille d'écran, le composant | `theme`, `ui`, `tcell`, `golang.org/x/sys` |
39| `filetree` | Les fichiers d'un projet en arborescence dépliable, et la fenêtre qui l'affiche | `theme`, `ui`, `tcell` |
40| `acp` | Un agent de code dans une fenêtre : l'Agent Client Protocol, la conversation, le widget | `jsonrpc`, `profile`, `projectfile`, `syntax`, `theme`, `ui`, `tcell`, `toml` |
41| `app` | L'assemblage : menus, dialogues, routage des événements, popup de complétion, cycle de vie du serveur de langage | tout ce qui précède |
42
43## Dépendances externes
44
45Trois, et seulement trois :
46
47| Module | Pourquoi |
48| --- | --- |
49| `github.com/gdamore/tcell/v2` | le terminal |
50| `github.com/BurntSushi/toml` | tous les fichiers de configuration que l'éditeur lit |
51| `golang.org/x/sys` | les ioctls du pseudo-terminal sous Linux et macOS ; les appels de pseudo-console, de processus et de job object sous Windows |
52
53L'analyseur lexical, le client JSON-RPC, le cadrage LSP et l'émulateur VT/ANSI sont écrits à la main.
54
55## Le diagramme
56
57`docs/diagrams/packages.drawio` contient le même graphe au format draw.io, vérifié contre `go list -deps`.
58
59## Voir aussi
60
61- Pourquoi le graphe a cette forme : [architecture](../explanation/architecture.md)