turbo-editors/turbo-corepublic Fork 0
v1.0.1
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-core.git
git clone ssh://git@rickub.com/turbo-editors/turbo-core.git

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

📦 Turbo Core f3ade8d · on v1.0.1 · k33g · 12h ago
profile.md · 84 lines · 4.1 KBmarkdown
Blame HistoryOpen raw

Référence : profile

Description neutre et exhaustive de rickub.com/turbo-editors/turbo-core/profile.

Profile est la valeur par laquelle diffère un éditeur bâti sur turbo-core. Tout champ qui serait sinon un nom, un chemin ou une commande en dur se trouve ici.

Profile

Champ Type Défaut Description
Name string "" Le nom que l'éditeur se donne, dans les titres de fenêtres et la boîte À propos. "Turbo Go". Également envoyé au serveur de langage comme nom du client.
Slug string "" Son nom en un mot. "turbo-go". Le binaire, le répertoire de projet, le répertoire utilisateur et les variables d'environnement en dérivent tous.
Language string "" Ce pour quoi l'éditeur existe, en prose destinée à être lue. "Go", "Rust". Apparaît dans les messages et dans la boîte À propos, pas dans les formats de fichier.
ToolsMenu string "" L'étiquette du menu de la chaîne d'outils, avec sa touche rapide entre tildes. "~G~o", "Rus~t~".
RootMarkers []string nil Les fichiers qui marquent la racine d'un projet, dans l'ordre où ils sont cherchés. ["go.mod"], ["Cargo.toml"]. Vide signifie qu'on ne remonte pas.
Server Server valeur nulle Le serveur de langage. La valeur nulle signifie que l'éditeur fonctionne sans.
Templates Templates valeur nulle Les fichiers de départ que l'éditeur propose d'écrire.

Valeurs dérivées

Méthode Renvoie Exemple pour Slug: "turbo-go"
ProjectDir() string ".turbo-go"
UserDir() string "~/.config/turbo-go", ou "" si le système n'a pas de répertoire de configuration
ThemeDir() string "~/.config/turbo-go/themes", ou ""
DirEnvVar() string "TURBO_GO_DIR"
ThemeDirEnvVar() string "TURBO_GO_THEME_DIR"
SnippetDirEnvVar() string "TURBO_GO_SNIPPET_DIR"

UserDir renvoie la valeur de DirEnvVar quand elle est définie. ThemeDir renvoie la valeur de ThemeDirEnvVar quand elle est définie, et cette variable nomme le répertoire des thèmes lui-même, pas celui qui le contient.

Les tirets d'un slug deviennent des soulignés dans un nom de variable d'environnement : turbo-rust donne TURBO_RUST_THEME_DIR.

Server

Champ Type Défaut Description
Command string "" Le nom de l'exécutable, cherché d'abord dans PATH. "gopls", "rust-analyzer".
Args []string nil Les arguments de démarrage. gopls prend ["serve"] ; rust-analyzer n'en prend aucun.
InstallHint string "" Une commande que l'utilisateur peut copier quand le serveur manque. Affichée sur la barre d'état, donc elle doit tenir sur une ligne.
Dirs []string nil Répertoires supplémentaires fouillés après PATH, dans l'ordre. Les chaînes vides sont ignorées.

Exemple

profile.Server{
	Command:     "gopls",
	Args:        []string{"serve"},
	InstallHint: "go install golang.org/x/tools/gopls@latest",
	Dirs:        []string{goBinDir()},
}

Templates

Champ Type Arguments de formatage, dans l'ordre
Settings string le nom du thème (%q), le délai de sauvegarde automatique (%q)
Snippets string le nom du groupe sans nom (%s), le chemin des extraits de l'utilisateur (%s)
Tools string aucun

Un modèle avec le mauvais nombre de verbes produit %!s(MISSING) ou %!(EXTRA …) dans le fichier écrit ; rien ne le vérifie à votre place.

Exemple

const settingsTemplate = `# turbo-go project settings.

[editor]

theme = %q
autosave = false
autosave_delay = %q
`

Erreurs

profile ne renvoie aucune erreur. Un Profile dont le Slug est vide produit un répertoire de projet nommé "." et des variables d'environnement nommées _DIR ; rien ne le refuse.

Voir aussi

 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
# Référence : profile

> Description neutre et exhaustive de `rickub.com/turbo-editors/turbo-core/profile`.

`Profile` est la valeur par laquelle diffère un éditeur bâti sur turbo-core. Tout champ qui serait sinon un nom, un chemin ou une commande en dur se trouve ici.

## Profile

| Champ | Type | Défaut | Description |
| --- | --- | --- | --- |
| `Name` | `string` | `""` | Le nom que l'éditeur se donne, dans les titres de fenêtres et la boîte À propos. `"Turbo Go"`. Également envoyé au serveur de langage comme nom du client. |
| `Slug` | `string` | `""` | Son nom en un mot. `"turbo-go"`. Le binaire, le répertoire de projet, le répertoire utilisateur et les variables d'environnement en dérivent tous. |
| `Language` | `string` | `""` | Ce pour quoi l'éditeur existe, en prose destinée à être lue. `"Go"`, `"Rust"`. Apparaît dans les messages et dans la boîte À propos, pas dans les formats de fichier. |
| `ToolsMenu` | `string` | `""` | L'étiquette du menu de la chaîne d'outils, avec sa touche rapide entre tildes. `"~G~o"`, `"Rus~t~"`. |
| `RootMarkers` | `[]string` | `nil` | Les fichiers qui marquent la racine d'un projet, dans l'ordre où ils sont cherchés. `["go.mod"]`, `["Cargo.toml"]`. Vide signifie qu'on ne remonte pas. |
| `Server` | `Server` | valeur nulle | Le serveur de langage. La valeur nulle signifie que l'éditeur fonctionne sans. |
| `Templates` | `Templates` | valeur nulle | Les fichiers de départ que l'éditeur propose d'écrire. |

### Valeurs dérivées

| Méthode | Renvoie | Exemple pour `Slug: "turbo-go"` |
| --- | --- | --- |
| `ProjectDir()` | `string` | `".turbo-go"` |
| `UserDir()` | `string` | `"~/.config/turbo-go"`, ou `""` si le système n'a pas de répertoire de configuration |
| `ThemeDir()` | `string` | `"~/.config/turbo-go/themes"`, ou `""` |
| `DirEnvVar()` | `string` | `"TURBO_GO_DIR"` |
| `ThemeDirEnvVar()` | `string` | `"TURBO_GO_THEME_DIR"` |
| `SnippetDirEnvVar()` | `string` | `"TURBO_GO_SNIPPET_DIR"` |

`UserDir` renvoie la valeur de `DirEnvVar` quand elle est définie. `ThemeDir` renvoie la valeur de `ThemeDirEnvVar` quand elle est définie, et cette variable nomme le répertoire des thèmes lui-même, pas celui qui le contient.

Les tirets d'un slug deviennent des soulignés dans un nom de variable d'environnement : `turbo-rust` donne `TURBO_RUST_THEME_DIR`.

## Server

| Champ | Type | Défaut | Description |
| --- | --- | --- | --- |
| `Command` | `string` | `""` | Le nom de l'exécutable, cherché d'abord dans PATH. `"gopls"`, `"rust-analyzer"`. |
| `Args` | `[]string` | `nil` | Les arguments de démarrage. gopls prend `["serve"]` ; rust-analyzer n'en prend aucun. |
| `InstallHint` | `string` | `""` | Une commande que l'utilisateur peut copier quand le serveur manque. Affichée sur la barre d'état, donc elle doit tenir sur une ligne. |
| `Dirs` | `[]string` | `nil` | Répertoires supplémentaires fouillés après PATH, dans l'ordre. Les chaînes vides sont ignorées. |

### Exemple

```go
profile.Server{
	Command:     "gopls",
	Args:        []string{"serve"},
	InstallHint: "go install golang.org/x/tools/gopls@latest",
	Dirs:        []string{goBinDir()},
}
```

## Templates

| Champ | Type | Arguments de formatage, dans l'ordre |
| --- | --- | --- |
| `Settings` | `string` | le nom du thème (`%q`), le délai de sauvegarde automatique (`%q`) |
| `Snippets` | `string` | le nom du groupe sans nom (`%s`), le chemin des extraits de l'utilisateur (`%s`) |
| `Tools` | `string` | aucun |

Un modèle avec le mauvais nombre de verbes produit `%!s(MISSING)` ou `%!(EXTRA …)` dans le fichier écrit ; rien ne le vérifie à votre place.

### Exemple

```go
const settingsTemplate = `# turbo-go project settings.

[editor]

theme = %q
autosave = false
autosave_delay = %q
`
```

## Erreurs

`profile` ne renvoie aucune erreur. Un `Profile` dont le `Slug` est vide produit un répertoire de projet nommé `"."` et des variables d'environnement nommées `_DIR` ; rien ne le refuse.

## Voir aussi

- [Dialoguer avec un serveur de langage](../how-to/talk-to-a-language-server.md)
- [Écrire les fichiers de départ](../how-to/write-the-starter-files.md)