# Référence : ligne de commande > Description neutre de la commande `turbo-js`, de ses options et de l'environnement qu'elle lit. ## Synopsis ``` turbo-js [options] [fichier...] ``` 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. ## Options | Option | Type | Défaut | Description | | --- | --- | --- | --- | | `-theme ` | 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. | | `-list-themes` | booléen | `false` | Affiche chaque thème chargeable avec sa description, puis le répertoire de thèmes utilisateur, et quitte. | | `-no-lsp` | booléen | `false` | Ne démarre pas de serveur de langage. La coloration et l'édition sont inchangées. | | `-version` | booléen | `false` | Affiche `Turbo JS ` 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). | | `-h`, `-help` | booléen | `false` | Affiche la liste des options et quitte. | ## Environnement | Variable | Lue par | Effet | | --- | --- | --- | | `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`. | | `TURBO_JS_THEME_DIR` | chargement des thèmes | Répertoire des thèmes utilisateur, à la place de `/themes`. | | `TURBO_JS_SNIPPET_DIR` | chargement des snippets | Répertoire contenant votre `snippets.toml`, à la place du répertoire utilisateur. | | `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. | | `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. | | `TERM` | tcell | Description de terminal à utiliser. | | `SHELL` | fenêtres terminal | Le shell qu'ouvre `F8` ; `/bin/sh` si elle est absente. | ## Fichiers | Chemin | Rôle | | --- | --- | | `./.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). | | `./.turbo-js/snippets.toml` | Les snippets de ce projet. Voir [snippets](snippets.md). | | `./.turbo-js/tools.toml` | Les outils du menu JavaScript. Voir [outils JavaScript](javascript-tools.md). | | `~/.config/turbo-js/themes/*.toml` | Thèmes utilisateur sous Linux (`os.UserConfigDir`). | | `~/Library/Application Support/turbo-js/themes/*.toml` | Thèmes utilisateur sous macOS. | | `~/.config/turbo-js/snippets.toml` | Vos snippets, partagés entre projets. | | `$TURBO_JS_THEME_DIR/*.toml` | Thèmes utilisateur, quand la variable est définie. | | `/package.json` | Trouvé en remontant depuis le fichier ouvert ; son répertoire devient la racine du serveur de langage. | | `$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`. | 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. ## Code de sortie | Code | Signification | | --- | --- | | `0` | L'éditeur s'est terminé normalement, ou une option d'information a été utilisée. | | `1` | Le terminal n'a pas pu être ouvert ou initialisé. La raison est écrite sur la sortie d'erreur. | ## Cibles make À exécuter depuis un clone. | Cible | Ce qu'elle lance | | --- | --- | | `make help` | Liste les cibles. C'est la cible par défaut. | | `make test` | `go test ./...` | | `make test-verbose` | `go test -v ./...` | | `make cover` | `go test -cover ./...` | | `make build` | `go build` estampillé dans `bin/turbo-js`, puis `scripts/check-version.sh` sur le résultat | | `make version` | Affiche la version que ce clone estampillerait, sans construire | | `make ldflags` | Affiche les options d'édition de liens d'un build estampillé | | `make install` | `scripts/install.sh` — compile et installe dans le PATH | | `make uninstall` | `scripts/install.sh --uninstall` | | `make run FILE=x.js` | `make build`, puis `./bin/turbo-js x.js` | | `make fmt` | `go fmt ./...` | | `make vet` | `go vet ./...` | | `make check` | `fmt`, puis `vet`, puis `test` | | `make clean` | Supprime `bin/` | ## Exemples ```bash turbo-js # une fenêtre vide turbo-js main.js README.md # deux fenêtres turbo-js -theme turbo-dark main.js # un autre thème turbo-js -no-lsp main.js # sans serveur de langage turbo-js -list-themes # quels thèmes existent ``` ## Installateur `scripts/install.sh`, également accessible via `make install`. | Option | Description | | --- | --- | | `-p`, `--prefix RÉP` | Installer dans `RÉP` au lieu de `$GOBIN` ou `$GOPATH/bin`. | | `--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`. | | `--uninstall` | Retirer un `turbo-js` installé, puis s'arrêter. | | `-h`, `--help` | Afficher les options, puis s'arrêter. | | Code de sortie | Signification | | --- | --- | | `0` | Installé, retiré, ou aide affichée. | | `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. | ## Erreurs | Message | Cause | | --- | --- | | `turbo-js: opening the terminal: …` | tcell n'a pas pu ouvrir le terminal ; en général `TERM` est absent ou inconnu. | | `turbo-js: initialising the terminal: …` | Le terminal a été ouvert mais n'a pas pu être mis en mode brut. | | `Cannot open` (dans une boîte) | Le chemin est un répertoire, ou n'est pas lisible. | | `Cannot save` (dans une boîte) | Le répertoire n'existe pas, ou n'est pas accessible en écriture. | | `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. |