turbo-editors/turbo-jspublic Fork 0
main
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-js.git
git clone ssh://git@rickub.com/turbo-editors/turbo-js.git

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

menus.md · 171 lines · 10.9 KBmarkdown Blame HistoryRaw
📦 Turbo JS 91999d1 k33g 13h ago1# Référence : menus
2
3> Liste complète des entrées de la barre de menus, avec leurs raccourcis et les conditions dans lesquelles elles peuvent être choisies.
4
5Une entrée marquée **fichier requis** est grisée quand aucune fenêtre n'est ouverte.
6
7La barre porte toujours File, Edit, Search, Run, Code, Options, Window, Snippets, Agent, JavaScript et Help, dans cet ordre :
8
9```
10 File Edit Search Run Code Options Window Snippets Agent JavaScript Help
11```
12
13Le fichier d'outils d'un projet peut y ajouter ses propres menus, entre JavaScript et Help ; ils sont décrits sous [Menus du projet](#menus-du-projet) plus bas.
14
15## File
16
17| Entrée | Raccourci | Fichier requis | Effet |
18| --- | --- | --- | --- |
19| New | `F4` | | Ouvrir une fenêtre vide sans titre |
20| Open… | `F3` | | Ouvrir l'explorateur de fichiers et ouvrir ce qui est choisi |
21| Save | `F2` | oui | Écrire le fichier ; demande un nom s'il n'en a pas |
22| Save as… | | oui | Demander un nom et écrire dedans, en adoptant ce chemin |
23| Close | `Ctrl-W` | oui | Fermer la fenêtre courante, en proposant d'enregistrer d'abord |
24| Exit | `Alt-X` | | Quitter l'éditeur, en proposant d'enregistrer chaque fichier modifié |
25
26## Edit
27
28| Entrée | Raccourci | Fichier requis | Effet |
29| --- | --- | --- | --- |
30| Undo | `Ctrl-Z` | oui | Annuler la dernière modification |
31| Redo | `Ctrl-R` | oui | Rétablir la dernière modification annulée. **`Ctrl-Y` le faisait avant** ; il supprime désormais une ligne, comme dans Turbo C. |
32| Insert line | `Ctrl-N` | oui | Ouvrir une ligne vide au-dessus du curseur, en laissant le curseur sur son propre texte |
33| Delete line | `Ctrl-Y` | oui | Supprimer la ligne où est le curseur. Le curseur reste au même numéro de ligne : maintenir la touche en supprime une série. |
34| Cut | `Maj-Suppr` | oui | Copier la sélection dans le presse-papier et la supprimer |
35| Copy | `Ctrl-Inser` | oui | Copier la sélection dans le presse-papier |
36| Paste | `Maj-Inser` | oui | Insérer le presse-papier, en remplaçant la sélection |
37| Select all | `Ctrl-A` | oui | Sélectionner tout le fichier |
38
39Le presse-papier est partagé entre toutes les fenêtres d'une même session.
40
41## Search
42
43| Entrée | Raccourci | Fichier requis | Effet |
44| --- | --- | --- | --- |
45| Find… | `Ctrl-F` | oui | Demander un texte et des options, puis aller à la première occurrence |
46| Find next | `F7` | oui | Aller à l'occurrence suivante, en bouclant en fin de fichier |
47| Find previous | `Maj-F7` | oui | Aller à l'occurrence précédente, en bouclant en début de fichier |
48| Go to line… | `Ctrl-G` | oui | Demander un numéro de ligne, à partir de un |
49
50## Run
51
52| Entrée | Raccourci | Fichier requis | Effet |
53| --- | --- | --- | --- |
54| Completion | `Ctrl-Espace` | oui | Ouvrir la liste de complétion au curseur |
55| Language server status | | | Indiquer si un serveur de langage tourne, et ce qu'il fait |
56
57## Code
58
59Tout ce que l'éditeur demande au serveur de langage à propos du symbole **sous le curseur**. Rien ici n'exige de sélection : presque toutes les requêtes du protocole prennent une position et non une plage, il n'y a donc rien de plus à dire en sélectionnant d'abord.
60
61Sa touche chaude est `Alt-C`.
62
63Le serveur de Turbo JS est `typescript-language-server`, une enveloppe autour de tsserver, le moteur de TypeScript, qui sert aussi le JavaScript ordinaire. Il répond aux huit entrées ci-dessous et publie les problèmes de lui-même ; la colonne **Avec `typescript-language-server`** dit ce qu'il advient de chacune.
64
65| Entrée | Raccourci | Fichier requis | Effet | Avec `typescript-language-server` |
66| --- | --- | --- | --- | --- |
67| Describe symbol | `F1` | oui | Montre ce que le serveur de langage sait du symbole sous le curseur | Fonctionne : signature et documentation ; pour une fonction du fichier, le commentaire JSDoc écrit juste au-dessus |
68| Go to definition | `F12` | oui | Où le symbole est déclaré. Une seule réponse l'ouvre ; plusieurs proposent la liste. | Fonctionne |
69| Go to type definition | | oui | Où le *type* du symbole est déclaré, ce qui est une autre question | Fonctionne : `const shape = new Circle()` mène à la classe `Circle` |
70| Find implementations… | | oui | Ce qui l'implémente | Fonctionne : les sous-classes d'une classe |
71| Find references… | `Shift-F12` | oui | Où il est utilisé, sa déclaration comprise | Fonctionne : la déclaration et chaque appel |
72| Symbol in file… | | oui | Le plan du fichier, indenté, avec la sorte de chaque symbole. En choisir un y va. | Fonctionne : fonctions et classes |
73| Symbol in project… | `Ctrl-T` | non | Demande un nom et cherche dans tout le projet | Fonctionne |
74| Problems… | | non | Tous les problèmes signalés par le serveur, pour tous les fichiers dont il a parlé | Fonctionne : les erreurs de syntaxe, sans qu'on les demande ; une erreur de type n'est signalée qu'avec `// @ts-check` en tête du fichier ou `checkJs` dans un `jsconfig.json` |
75
76Une liste de lieux montre le fichier, la ligne, et le texte de cette ligne — douze entrées affichant `shapes.js:42` ne disent rien de celle qu'on veut. Le texte vient d'une fenêtre ouverte quand il y en a une : un fichier modifié et non enregistré est donc listé tel qu'il se lit maintenant.
77
78Trois réponses sont distinguées, et la différence compte : **rien trouvé** le dit avec les mots de la question (`No references found`), **le serveur n'est pas prêt** montre ce qu'il est en train de faire, et **une seule réponse** vous y emmène sans dialogue.
79
80*Symbol in file* n'a pas de raccourci, à dessein. Le raccourci évident serait `Ctrl-Shift-O`, et un terminal ne sait pas le distinguer de `Ctrl-O` — la touche Maj est perdue avant que l'éditeur ne la voie.
81
82## Options
83
84| Entrée | Fichier requis | Effet |
85| --- | --- | --- |
86| Theme… | | Lister tous les thèmes chargeables et appliquer immédiatement celui choisi. Si un fichier de réglages de projet existe, y écrit aussi le choix. |
87| Line numbers | oui | Afficher ou masquer la gouttière dans la fenêtre courante |
88| Create project settings | | Écrire `.turbo-js/settings.toml` avec le thème en cours, et l'ouvrir. **Grisée dès que le projet en a un.** |
89| Project settings… | | Ouvrir `.turbo-js/settings.toml`. **Grisée tant que le projet n'en a pas.** |
90
91## Window
92
93| Entrée | Raccourci | Fichier requis | Effet |
94| --- | --- | --- | --- |
95| Next | `F6` | oui | Passer au premier plan la fenêtre située derrière |
96| New terminal | `F8` | non | Ouvrir une fenêtre exécutant un shell, dans le dossier du fichier au premier plan |
97| Project tree | `F9` | non | Ouvrir une fenêtre montrant les fichiers du projet ; ramène l'existante au premier plan s'il y en a une |
98| Tile | | oui | Disposer toutes les fenêtres en grille, sans recouvrement |
99| Cascade | | oui | Empiler les fenêtres décalées, tous les titres visibles |
100| Maximise | | oui | Donner tout le bureau à la fenêtre courante, ou la remettre où elle était si elle l'a déjà. Le même bascule que la case `[■]` sur le cadre de la fenêtre. |
101| List… | `Alt-0` | oui | Lister les fenêtres ouvertes et passer la choisie au premier plan |
102
103## Snippets
104
105Construit depuis `.turbo-js/snippets.toml` et votre propre fichier à chaque ouverture. Sa touche chaude est `Alt-N`, parce que Search répond déjà au S.
106
107| Entrée | Fichier requis | Effet |
108| --- | --- | --- |
109| Un sous-menu par groupe | | Insérer le snippet choisi au curseur ; les entrées exigent un fichier ouvert |
110| Create snippets file | non | Écrire `.turbo-js/snippets.toml` avec des exemples travaillés, puis l'ouvrir. **Grisée dès que le projet en a un.** |
111| Open snippets file | non | Ouvrir `.turbo-js/snippets.toml`. **Grisée tant que le projet n'en a pas.** Toujours le fichier du projet, jamais le vôtre. |
112
113Voir [Snippets](snippets.md).
114
115## Agent
116
117Construit depuis `.turbo-js/acp.toml` et votre propre fichier. Sa touche chaude est `Alt-A`.
118
119| Entrée | Effet |
120| --- | --- |
121| Une ligne par agent, par son nom | Démarrer cet agent et ouvrir une fenêtre dessus |
122| Create agents file | Écrire `.turbo-js/acp.toml` avec un exemple, puis l'ouvrir. **Grisée dès que le projet en a un.** |
123| Cancel turn | Annuler le tour en cours dans la fenêtre de devant |
124| Agent status | Ce qui a été chargé, la ligne de commande de chacun, et ce qui a échoué |
125
126Voir [Agents et ACP](acp.md).
127
128## JavaScript
129
130Construit depuis `.turbo-js/tools.toml` à chaque ouverture. Sa touche chaude est `Alt-J` : les menus fixes prennent F, E, S, R, C, O, W, N, A et H, et la première lettre du langage était libre.
131
132| Entrée | Effet |
133| --- | --- |
134| Une ligne par outil ne nommant aucun `menu` | Lancer cette commande, en montrant sa sortie là où l'outil le demande : une popup, une fenêtre terminal, ou une fenêtre d'édition |
135| Create tools file | Écrire `.turbo-js/tools.toml` avec les six commandes Node.js — installer, formater, vérifier, tester, exécuter un script, démarrer — et un exemple de menu à part, puis l'ouvrir. **Grisée dès que le projet en a un.** |
136| Open tools file | Ouvrir `.turbo-js/tools.toml`. **Grisée tant que le projet n'en a pas.** |
137
138Voir [Outils JavaScript](javascript-tools.md).
139
140## Menus du projet
141
142Non fixes : un menu par nom de `menu` dans `.turbo-js/tools.toml`, dans l'ordre où les noms y apparaissent pour la première fois, entre JavaScript et Help. Un projet sans fichier d'outils, ou dont tous les outils restent dans JavaScript, n'en a aucun. Le fichier de départ en crée un, **Tools**, qui contient un seul `echo` : c'est l'exemple du mécanisme.
143
144| Entrée | Effet |
145| --- | --- |
146| Une ligne par outil nommant ce menu | Lancer cette commande, en montrant sa sortie là où l'outil le demande |
147
148Leurs touches chaudes sont attribuées et non fixées, pour qu'un nom venu d'un fichier ne puisse jamais prendre une lettre à laquelle un des menus ci-dessus répond déjà. Les règles sont dans [Outils JavaScript](javascript-tools.md#touches-daccès).
149
150## Help
151
152| Entrée | Effet |
153| --- | --- |
154| Keyboard | Afficher les touches à connaître |
155| About | Afficher la version, le commit et la date de build quand le build les a enregistrés, et le thème courant. Voir [le numéro de version](versioning.md). |
156
157## Barre d'état
158
159Les indices du bas sont cliquables et exécutent les mêmes actions.
160
161| Indice | Action |
162| --- | --- |
163| `F1 Describe` | Code ▸ Describe symbol |
164| `F2 Save` | File ▸ Save |
165| `F3 Open` | File ▸ Open… |
166| `F6 Window` | Window ▸ Next |
167| `F7 Next` | Search ▸ Find next |
168| `F10 Menu` | Ouvrir la barre de menus |
169| `Alt-X Exit` | File ▸ Exit |
170
171L'extrémité droite affiche, dans cet ordre : le curseur sous la forme `ligne:colonne`, puis soit la première erreur signalée par le serveur de langage pour ce fichier (précédée de `⚠`), soit l'état du serveur de langage — `LSP: ready` quand `typescript-language-server` tourne, `LSP: off` quand aucun serveur n'a été demandé, et `LSP: no typescript-language-server — npm install -g typescript-language-server typescript@6` quand il n'a pas été trouvé.