turbo-editors/turbo-jspublic Fork 0
v1.0.1
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.

📦 Turbo JS 91999d1 · on v1.0.1 · k33g · 11h ago
cli.md · 113 lines · 6.8 KBmarkdown
Blame HistoryOpen raw

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 <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.
-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 <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.
-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 <répertoire utilisateur>/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.
./.turbo-js/snippets.toml Les snippets de ce projet. Voir snippets.
./.turbo-js/tools.toml Les outils du menu JavaScript. Voir outils JavaScript.
~/.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.
<projet>/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

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.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# 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 <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. |
| `-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 <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). |
| `-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 `<répertoire utilisateur>/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. |
| `<projet>/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. |