| 📦 Turbo JS 91999d1 k33g 11h ago | 1 | # Référence : ligne de commande |
| 2 | |
| 3 | > Description neutre de la commande `turbo-js`, de ses options et de l'environnement qu'elle lit. |
| 4 | |
| 5 | ## Synopsis |
| 6 | |
| 7 | ``` |
| 8 | turbo-js [options] [fichier...] |
| 9 | ``` |
| 10 | |
| 11 | Chaque `fichier` est ouvert dans sa propre fenêtre. Un fichier qui n'existe pas encore est ouvert comme un tampon vide associé à ce chemin. Sans aucun fichier, une seule fenêtre vide sans titre est ouverte. |
| 12 | |
| 13 | ## Options |
| 14 | |
| 15 | | Option | Type | Défaut | Description | |
| 16 | | --- | --- | --- | --- | |
| 17 | | `-theme <nom>` | chaîne | celui du projet, sinon `turbo-classic` | Thème de démarrage, l'emportant sur celui du projet. Un nom inconnu retombe sur le thème par défaut sans erreur. | |
| 18 | | `-list-themes` | booléen | `false` | Affiche chaque thème chargeable avec sa description, puis le répertoire de thèmes utilisateur, et quitte. | |
| 19 | | `-no-lsp` | booléen | `false` | Ne démarre pas de serveur de langage. La coloration et l'édition sont inchangées. | |
| 20 | | `-version` | booléen | `false` | Affiche `Turbo JS <version>` sur une ligne, avec le commit et la date de build quand le build les a enregistrés, puis quitte. Voir [le numéro de version](versioning.md). | |
| 21 | | `-h`, `-help` | booléen | `false` | Affiche la liste des options et quitte. | |
| 22 | |
| 23 | ## Environnement |
| 24 | |
| 25 | | Variable | Lue par | Effet | |
| 26 | | --- | --- | --- | |
| 27 | | `TURBO_JS_DIR` | répertoire utilisateur | Remplace `~/.config/turbo-js` : les thèmes sont alors lus dans `$TURBO_JS_DIR/themes`, et vos snippets dans `$TURBO_JS_DIR/snippets.toml`. | |
| 28 | | `TURBO_JS_THEME_DIR` | chargement des thèmes | Répertoire des thèmes utilisateur, à la place de `<répertoire utilisateur>/themes`. | |
| 29 | | `TURBO_JS_SNIPPET_DIR` | chargement des snippets | Répertoire contenant votre `snippets.toml`, à la place du répertoire utilisateur. | |
| 30 | | `PATH` | recherche de `typescript-language-server` | Consulté en premier ; viennent ensuite `$NVM_BIN`, `$NPM_CONFIG_PREFIX/bin` ou `~/.npm-global/bin`, `$PNPM_HOME`, `$VOLTA_HOME/bin` ou `~/.volta/bin`, `/usr/local/bin` et `/opt/homebrew/bin`, même s'ils n'y figurent pas. | |
| 31 | | `NVM_BIN`, `NPM_CONFIG_PREFIX`, `PNPM_HOME`, `VOLTA_HOME` | recherche de `typescript-language-server` | Nomment les répertoires regardés après le `PATH`, quand elles sont définies ; une variable vide n'ajoute rien. | |
| 32 | | `TERM` | tcell | Description de terminal à utiliser. | |
| 33 | | `SHELL` | fenêtres terminal | Le shell qu'ouvre `F8` ; `/bin/sh` si elle est absente. | |
| 34 | |
| 35 | ## Fichiers |
| 36 | |
| 37 | | Chemin | Rôle | |
| 38 | | --- | --- | |
| 39 | | `./.turbo-js/settings.toml` | Les réglages de ce projet, lus au démarrage puis à chaque enregistrement. Voir [réglages de projet](project-settings.md). | |
| 40 | | `./.turbo-js/snippets.toml` | Les snippets de ce projet. Voir [snippets](snippets.md). | |
| 41 | | `./.turbo-js/tools.toml` | Les outils du menu JavaScript. Voir [outils JavaScript](javascript-tools.md). | |
| 42 | | `~/.config/turbo-js/themes/*.toml` | Thèmes utilisateur sous Linux (`os.UserConfigDir`). | |
| 43 | | `~/Library/Application Support/turbo-js/themes/*.toml` | Thèmes utilisateur sous macOS. | |
| 44 | | `~/.config/turbo-js/snippets.toml` | Vos snippets, partagés entre projets. | |
| 45 | | `$TURBO_JS_THEME_DIR/*.toml` | Thèmes utilisateur, quand la variable est définie. | |
| 46 | | `<projet>/package.json` | Trouvé en remontant depuis le fichier ouvert ; son répertoire devient la racine du serveur de langage. | |
| 47 | | `$NVM_BIN/typescript-language-server`, `~/.npm-global/bin/…`, `$PNPM_HOME/…`, `~/.volta/bin/…`, `/usr/local/bin/…`, `/opt/homebrew/bin/…` | Le serveur de langage, quand `typescript-language-server` n'est pas dans le `PATH`. | |
| 48 | |
| 49 | Le serveur de langage reçoit comme racine le dossier le plus proche, au niveau du fichier ouvert ou au-dessus, qui contient un `package.json` : c'est le seul fichier marqueur, et dans un monorepo le plus proche l'emporte. Sans `package.json` nulle part, la racine est le répertoire de travail. |
| 50 | |
| 51 | ## Code de sortie |
| 52 | |
| 53 | | Code | Signification | |
| 54 | | --- | --- | |
| 55 | | `0` | L'éditeur s'est terminé normalement, ou une option d'information a été utilisée. | |
| 56 | | `1` | Le terminal n'a pas pu être ouvert ou initialisé. La raison est écrite sur la sortie d'erreur. | |
| 57 | |
| 58 | ## Cibles make |
| 59 | |
| 60 | À exécuter depuis un clone. |
| 61 | |
| 62 | | Cible | Ce qu'elle lance | |
| 63 | | --- | --- | |
| 64 | | `make help` | Liste les cibles. C'est la cible par défaut. | |
| 65 | | `make test` | `go test ./...` | |
| 66 | | `make test-verbose` | `go test -v ./...` | |
| 67 | | `make cover` | `go test -cover ./...` | |
| 68 | | `make build` | `go build` estampillé dans `bin/turbo-js`, puis `scripts/check-version.sh` sur le résultat | |
| 69 | | `make version` | Affiche la version que ce clone estampillerait, sans construire | |
| 70 | | `make ldflags` | Affiche les options d'édition de liens d'un build estampillé | |
| 71 | | `make install` | `scripts/install.sh` — compile et installe dans le PATH | |
| 72 | | `make uninstall` | `scripts/install.sh --uninstall` | |
| 73 | | `make run FILE=x.js` | `make build`, puis `./bin/turbo-js x.js` | |
| 74 | | `make fmt` | `go fmt ./...` | |
| 75 | | `make vet` | `go vet ./...` | |
| 76 | | `make check` | `fmt`, puis `vet`, puis `test` | |
| 77 | | `make clean` | Supprime `bin/` | |
| 78 | |
| 79 | ## Exemples |
| 80 | |
| 81 | ```bash |
| 82 | turbo-js # une fenêtre vide |
| 83 | turbo-js main.js README.md # deux fenêtres |
| 84 | turbo-js -theme turbo-dark main.js # un autre thème |
| 85 | turbo-js -no-lsp main.js # sans serveur de langage |
| 86 | turbo-js -list-themes # quels thèmes existent |
| 87 | ``` |
| 88 | |
| 89 | ## Installateur |
| 90 | |
| 91 | `scripts/install.sh`, également accessible via `make install`. |
| 92 | |
| 93 | | Option | Description | |
| 94 | | --- | --- | |
| 95 | | `-p`, `--prefix RÉP` | Installer dans `RÉP` au lieu de `$GOBIN` ou `$GOPATH/bin`. | |
| 96 | | `--with-server` | Installer aussi le serveur de langage — `npm install -g typescript-language-server typescript@6` — s'il n'est pas déjà présent ; sa présence est vérifiée en lançant `typescript-language-server --version`. | |
| 97 | | `--uninstall` | Retirer un `turbo-js` installé, puis s'arrêter. | |
| 98 | | `-h`, `--help` | Afficher les options, puis s'arrêter. | |
| 99 | |
| 100 | | Code de sortie | Signification | |
| 101 | | --- | --- | |
| 102 | | `0` | Installé, retiré, ou aide affichée. | |
| 103 | | `1` | Go absent ou trop ancien, échec de compilation, destination non accessible en écriture, ou `npm` absent alors que `--with-server` est demandé. Rien n'est installé et une installation existante reste intacte. | |
| 104 | |
| 105 | ## Erreurs |
| 106 | |
| 107 | | Message | Cause | |
| 108 | | --- | --- | |
| 109 | | `turbo-js: opening the terminal: …` | tcell n'a pas pu ouvrir le terminal ; en général `TERM` est absent ou inconnu. | |
| 110 | | `turbo-js: initialising the terminal: …` | Le terminal a été ouvert mais n'a pas pu être mis en mode brut. | |
| 111 | | `Cannot open` (dans une boîte) | Le chemin est un répertoire, ou n'est pas lisible. | |
| 112 | | `Cannot save` (dans une boîte) | Le répertoire n'existe pas, ou n'est pas accessible en écriture. | |
| 113 | | `LSP: no typescript-language-server — npm install -g typescript-language-server typescript@6` (barre d'état) | Le serveur n'a été trouvé ni dans le `PATH` ni dans les répertoires listés plus haut. | |