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

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

📦 Turbo MoonBit cc1f595 · on v1.0.3 · k33g · yesterday
getting-started.md · 217 lines · 7.5 KBmarkdown
Blame HistoryOpen raw

Tutoriel : votre premier programme MoonBit dans Turbo MoonBit

À la fin de ce tutoriel, vous aurez écrit, formaté, lancé et cassé un petit programme MoonBit sans quitter l'éditeur — et vu l'éditeur vous dire où était l'erreur.

Aucune connaissance préalable de Turbo MoonBit n'est nécessaire. Il vous faut Go 1.26 ou plus récent pour compiler l'éditeur, et la chaîne d'outils MoonBit pour compiler le programme.

Prérequis

Vérifiez Go :

go version

Vous devriez voir quelque chose comme :

go version go1.26.5 linux/arm64

Vérifiez la chaîne d'outils MoonBit :

moon version --all

Vous devriez voir trois lignes, chacune se terminant par un chemin :

moon 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moon
moonc v0.10.12+1634b282e (2026-09-07) ~/.moon/bin/moonc
moonrun 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moonrun

Si la commande est introuvable, installez d'abord la chaîne d'outils — une seule commande suffit.

Étape 1 — Installer l'éditeur

git clone https://rickub.com/turbo-editors/turbo-moonbit.git
cd turbo-moonbit
make install

L'installeur compile, installe, puis vérifie ce qu'il a installé. Les dernières lignes sont :

==> Checking the language server
  ✓ moon-lsp at ~/.moon/bin/moon-lsp

==> Ready

Nous avons maintenant une commande turbo-moonbit.

Étape 2 — Créer un projet

cd /tmp
moon new hello
cd hello
Created username/hello at hello

moon new écrit un moon.mod, un moon.pkg, un fichier de bibliothèque, quelques fichiers de test, et un cmd/main/main.mbt contenant un hello-world. C'est moon.mod que Turbo MoonBit cherche pour trouver la racine d'un projet, et c'est le dossier dans lequel moon-lsp sera lancé.

Étape 3 — Ouvrir le fichier

turbo-moonbit cmd/main/main.mbt

L'écran se remplit. En haut :

 File  Edit  Search  Run  Code  Options  Window  Snippets  MoonBit  Help

Dix menus, et le neuvième porte le nom du langage. En bas, à droite, vous devriez voir :

1:1  LSP: ready

LSP: ready signifie que moon-lsp a démarré dans ce dossier. Nous nous en servirons à l'étape 8.

Étape 4 — Écrire le programme

Sélectionnez tout avec Ctrl-A et appuyez sur Suppr, puis tapez ceci. Tapez-le exactement ; nous allons regarder les couleurs juste après.

///|
struct Greeting {
  name : String
  times : Int
}

///|
fn greet(g : Greeting) -> Unit {
  for i in 0..<g.times {
    println("Hello, \{g.name}! (\{i + 1})")
  }
}

///|
fn main {
  greet({ name: "MoonBit", times: 3 })
}

Appuyez sur F2 pour enregistrer. L'étoile à côté de main.mbt dans le titre de la fenêtre disparaît.

Étape 5 — Lire les couleurs

Regardez ce que vous venez de taper. Dans le thème par défaut turbo-classic :

Quoi Couleur
struct, fn, for, in blanc vif, gras — mots-clés
Greeting, String, Int, Unit cyan vif — types
greet, là où il est déclaré comme là où il est appelé jaune vif, gras — fonctions
println cyan vif, gras — un nom fourni par le langage
name, times, g, i jaune vif — noms ordinaires
"Hello, \{g.name}! (\{i + 1})" vert, en entier — une seule chaîne
0, 1, 3 magenta — nombres
///| gris — un commentaire

Deux de ces lignes méritent un second regard.

Greeting est cyan et greet est jaune, et personne n'a dit à l'éditeur lequel des deux est un type. C'est la règle propre à MoonBit qui tranche : un nom commençant par une majuscule ne peut être qu'un type, un trait ou un constructeur.

La chaîne est verte du premier guillemet au dernier, interpolations comprises. Le \{g.name} qu'elle contient n'est pas coloré comme du code — et c'est délibéré.

Étape 6 — Donner ses outils au projet

Appuyez sur F10 pour ouvrir la barre de menus, puis sur huit fois pour atteindre MoonBit — après Edit, Search, Run, Code, Options, Window et Snippets. Plus rapide : Alt-M.

Le menu contient deux entrées, et une seule est disponible :

┌───────────────────┐
│ Create tools file │
│ Open tools file   │   ← grisée ; il n'y a pas encore de fichier à ouvrir
└───────────────────┘

Choisissez Create tools file.

Une seconde fenêtre s'ouvre sur le fichier qui vient d'être écrit, .turbo-moonbit/tools.toml. Lisez-le si vous voulez — il explique chacune de ses clés — puis fermez-le avec Ctrl-W.

Rouvrez le menu MoonBit. Il contient maintenant neuf commandes, et les deux entrées ont échangé leurs rôles : Create tools file est grisée, et c'est Open tools file qui est choisissable.

Étape 7 — Le formater, et le lancer

Appuyez sur Alt-M et choisissez Format.

Une boîte de dialogue s'ouvre, se remplit, et affiche — exit 0. Appuyez sur Échap.

Regardez la dernière ligne de votre fonction main. Elle a changé :

  greet({ name: "MoonBit", times: 3, })

moon fmt a ajouté une virgule finale, et l'éditeur a rechargé le fichier dont on venait de lui dire qu'il avait changé sous ses pieds.

Maintenant Alt-M, puis Run. Une boîte demande une valeur avant de lancer la commande :

┌──────────────── Run ────────────────┐
│  package, e.g. cmd/main             │
│  [                               ]  │
└─────────────────────────────────────┘

Tapez cmd/main et appuyez sur Entrée. Une fenêtre de terminal s'ouvre et le programme s'y exécute :

Hello, MoonBit! (1)
Hello, MoonBit! (2)
Hello, MoonBit! (3)

Un terminal plutôt qu'une boîte de dialogue, parce qu'un programme qui lit le clavier doit pouvoir recevoir une réponse. Le programme est terminé, la fenêtre a donc cessé de se comporter comme un terminal et toutes les touches reviennent à l'éditeur : appuyez sur Ctrl-W pour la fermer.

Étape 8 — Le casser, et voir où

Allez sur la ligne du println et remplacez g.name par g.nam. Appuyez sur F2 pour enregistrer.

En une seconde ou deux, deux choses se produisent. Un × rouge apparaît dans la gouttière, juste à gauche du numéro de cette ligne. Et la barre d'état affiche :

⚠ The value identifier nam is unbound.

Personne ne l'a demandé. moon-lsp le publie de lui-même chaque fois qu'il relit le fichier.

Remettez le e et enregistrez de nouveau ; la marque et le message disparaissent tous les deux.

Étape 9 — Changer de thème

F10, puis cinq fois pour atteindre Options — après Edit, Search, Run et Code. Choisissez Theme….

Une liste s'ouvre sur le thème dans lequel vous êtes. Appuyez sur jusqu'à cobalt puis Entrée. Tout l'écran change, en gardant la même forme.

Appuyez sur Alt-X pour quitter. L'éditeur pose d'abord la question des fichiers non enregistrés, s'il y en a.

Et maintenant ?

Vous avez créé un projet MoonBit, écrit un programme dans l'éditeur, formaté, lancé, cassé, et vu l'éditeur dire où. Pour aller plus loin :

  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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# Tutoriel : votre premier programme MoonBit dans Turbo MoonBit

À la fin de ce tutoriel, vous aurez écrit, formaté, lancé et cassé un petit programme MoonBit sans quitter l'éditeur — et vu l'éditeur vous dire où était l'erreur.

Aucune connaissance préalable de Turbo MoonBit n'est nécessaire. Il vous faut Go 1.26 ou plus récent pour compiler l'éditeur, et la chaîne d'outils MoonBit pour compiler le programme.

## Prérequis

Vérifiez Go :

```bash
go version
```

Vous devriez voir quelque chose comme :

```
go version go1.26.5 linux/arm64
```

Vérifiez la chaîne d'outils MoonBit :

```bash
moon version --all
```

Vous devriez voir trois lignes, chacune se terminant par un chemin :

```
moon 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moon
moonc v0.10.12+1634b282e (2026-09-07) ~/.moon/bin/moonc
moonrun 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moonrun
```

Si la commande est introuvable, installez d'abord la chaîne d'outils — [une seule commande suffit](../how-to/install-the-moonbit-toolchain.md).

## Étape 1 — Installer l'éditeur

```bash
git clone https://rickub.com/turbo-editors/turbo-moonbit.git
cd turbo-moonbit
make install
```

L'installeur compile, installe, puis vérifie ce qu'il a installé. Les dernières lignes sont :

```
==> Checking the language server
  ✓ moon-lsp at ~/.moon/bin/moon-lsp

==> Ready
```

Nous avons maintenant une commande `turbo-moonbit`.

## Étape 2 — Créer un projet

```bash
cd /tmp
moon new hello
cd hello
```

```
Created username/hello at hello
```

`moon new` écrit un `moon.mod`, un `moon.pkg`, un fichier de bibliothèque, quelques fichiers de test, et un `cmd/main/main.mbt` contenant un hello-world. **C'est `moon.mod` que Turbo MoonBit cherche** pour trouver la racine d'un projet, et c'est le dossier dans lequel `moon-lsp` sera lancé.

## Étape 3 — Ouvrir le fichier

```bash
turbo-moonbit cmd/main/main.mbt
```

L'écran se remplit. En haut :

```
 File  Edit  Search  Run  Code  Options  Window  Snippets  MoonBit  Help
```

Dix menus, et le neuvième porte le nom du langage. En bas, à droite, vous devriez voir :

```
1:1  LSP: ready
```

`LSP: ready` signifie que `moon-lsp` a démarré dans ce dossier. Nous nous en servirons à l'étape 8.

## Étape 4 — Écrire le programme

Sélectionnez tout avec `Ctrl-A` et appuyez sur `Suppr`, puis tapez ceci. Tapez-le exactement ; nous allons regarder les couleurs juste après.

```moonbit
///|
struct Greeting {
  name : String
  times : Int
}

///|
fn greet(g : Greeting) -> Unit {
  for i in 0..<g.times {
    println("Hello, \{g.name}! (\{i + 1})")
  }
}

///|
fn main {
  greet({ name: "MoonBit", times: 3 })
}
```

Appuyez sur `F2` pour enregistrer. L'étoile à côté de `main.mbt` dans le titre de la fenêtre disparaît.

## Étape 5 — Lire les couleurs

Regardez ce que vous venez de taper. Dans le thème par défaut `turbo-classic` :

| Quoi | Couleur |
| --- | --- |
| `struct`, `fn`, `for`, `in` | blanc vif, gras — mots-clés |
| `Greeting`, `String`, `Int`, `Unit` | cyan vif — types |
| `greet`, là où il est déclaré comme là où il est appelé | jaune vif, gras — fonctions |
| `println` | cyan vif, gras — un nom fourni par le langage |
| `name`, `times`, `g`, `i` | jaune vif — noms ordinaires |
| `"Hello, \{g.name}! (\{i + 1})"` | vert, **en entier** — une seule chaîne |
| `0`, `1`, `3` | magenta — nombres |
| `///\|` | gris — un commentaire |

Deux de ces lignes méritent un second regard.

**`Greeting` est cyan et `greet` est jaune**, et personne n'a dit à l'éditeur lequel des deux est un type. C'est la règle propre à MoonBit qui tranche : un nom commençant par une majuscule ne peut être qu'un type, un trait ou un constructeur.

**La chaîne est verte du premier guillemet au dernier**, interpolations comprises. Le `\{g.name}` qu'elle contient n'est pas coloré comme du code — [et c'est délibéré](../explanation/colouring-and-completion.md).

## Étape 6 — Donner ses outils au projet

Appuyez sur `F10` pour ouvrir la barre de menus, puis sur `→` **huit fois** pour atteindre **MoonBit** — après Edit, Search, Run, Code, Options, Window et Snippets. Plus rapide : `Alt-M`.

Le menu contient deux entrées, et une seule est disponible :

```
┌───────────────────┐
│ Create tools file │
│ Open tools file   │   ← grisée ; il n'y a pas encore de fichier à ouvrir
└───────────────────┘
```

Choisissez **Create tools file**.

Une seconde fenêtre s'ouvre sur le fichier qui vient d'être écrit, `.turbo-moonbit/tools.toml`. Lisez-le si vous voulez — il explique chacune de ses clés — puis fermez-le avec `Ctrl-W`.

Rouvrez le menu MoonBit. Il contient maintenant neuf commandes, et les deux entrées ont échangé leurs rôles : `Create tools file` est grisée, et c'est `Open tools file` qui est choisissable.

## Étape 7 — Le formater, et le lancer

Appuyez sur `Alt-M` et choisissez **Format**.

Une boîte de dialogue s'ouvre, se remplit, et affiche `— exit 0`. Appuyez sur `Échap`.

Regardez la dernière ligne de votre fonction `main`. Elle a changé :

```moonbit
  greet({ name: "MoonBit", times: 3, })
```

`moon fmt` a ajouté une virgule finale, et l'éditeur a rechargé le fichier dont on venait de lui dire qu'il avait changé sous ses pieds.

Maintenant `Alt-M`, puis **Run**. Une boîte demande une valeur avant de lancer la commande :

```
┌──────────────── Run ────────────────┐
│  package, e.g. cmd/main             │
│  [                               ]  │
└─────────────────────────────────────┘
```

Tapez `cmd/main` et appuyez sur `Entrée`. Une fenêtre de terminal s'ouvre et le programme s'y exécute :

```
Hello, MoonBit! (1)
Hello, MoonBit! (2)
Hello, MoonBit! (3)
```

Un terminal plutôt qu'une boîte de dialogue, parce qu'un programme qui lit le clavier doit pouvoir recevoir une réponse. Le programme est terminé, la fenêtre a donc cessé de se comporter comme un terminal et toutes les touches reviennent à l'éditeur : appuyez sur `Ctrl-W` pour la fermer.

## Étape 8 — Le casser, et voir où

Allez sur la ligne du `println` et remplacez `g.name` par `g.nam`. Appuyez sur `F2` pour enregistrer.

En une seconde ou deux, deux choses se produisent. Un `×` rouge apparaît dans la gouttière, juste à gauche du numéro de cette ligne. Et la barre d'état affiche :

```
⚠ The value identifier nam is unbound.
```

Personne ne l'a demandé. `moon-lsp` le publie de lui-même chaque fois qu'il relit le fichier.

Remettez le `e` et enregistrez de nouveau ; la marque et le message disparaissent tous les deux.

## Étape 9 — Changer de thème

`F10`, puis `→` **cinq fois** pour atteindre **Options** — après Edit, Search, Run et Code. Choisissez **Theme…**.

Une liste s'ouvre sur le thème dans lequel vous êtes. Appuyez sur `↓` jusqu'à `cobalt` puis `Entrée`. Tout l'écran change, en gardant la même forme.

Appuyez sur `Alt-X` pour quitter. L'éditeur pose d'abord la question des fichiers non enregistrés, s'il y en a.

## Et maintenant ?

Vous avez créé un projet MoonBit, écrit un programme dans l'éditeur, formaté, lancé, cassé, et vu l'éditeur dire où. Pour aller plus loin :

- Pour faire des choses précises → les [guides pratiques](../how-to/)
- Pour savoir exactement ce qui est coloré et comment → [langages colorés](../reference/languages.md)
- Pour comprendre pourquoi l'éditeur est bâti ainsi → les [explications](../explanation/)