| 🛟 Updated. 28d5985 k33g 19h ago | 1 | # Référence : profile |
| 2 | |
| 📦 Turbo Core f3ade8d k33g 11h ago | 3 | > Description neutre et exhaustive de `rickub.com/turbo-editors/turbo-core/profile`. |
| 🛟 Updated. 28d5985 k33g 19h ago | 4 | |
| 5 | `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. |
| 6 | |
| 7 | ## Profile |
| 8 | |
| 9 | | Champ | Type | Défaut | Description | |
| 10 | | --- | --- | --- | --- | |
| 11 | | `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. | |
| 12 | | `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. | |
| 13 | | `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. | |
| 14 | | `ToolsMenu` | `string` | `""` | L'étiquette du menu de la chaîne d'outils, avec sa touche rapide entre tildes. `"~G~o"`, `"Rus~t~"`. | |
| 15 | | `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. | |
| 16 | | `Server` | `Server` | valeur nulle | Le serveur de langage. La valeur nulle signifie que l'éditeur fonctionne sans. | |
| 17 | | `Templates` | `Templates` | valeur nulle | Les fichiers de départ que l'éditeur propose d'écrire. | |
| 18 | |
| 19 | ### Valeurs dérivées |
| 20 | |
| 21 | | Méthode | Renvoie | Exemple pour `Slug: "turbo-go"` | |
| 22 | | --- | --- | --- | |
| 23 | | `ProjectDir()` | `string` | `".turbo-go"` | |
| 24 | | `UserDir()` | `string` | `"~/.config/turbo-go"`, ou `""` si le système n'a pas de répertoire de configuration | |
| 25 | | `ThemeDir()` | `string` | `"~/.config/turbo-go/themes"`, ou `""` | |
| 26 | | `DirEnvVar()` | `string` | `"TURBO_GO_DIR"` | |
| 27 | | `ThemeDirEnvVar()` | `string` | `"TURBO_GO_THEME_DIR"` | |
| 28 | | `SnippetDirEnvVar()` | `string` | `"TURBO_GO_SNIPPET_DIR"` | |
| 29 | |
| 30 | `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. |
| 31 | |
| 32 | Les tirets d'un slug deviennent des soulignés dans un nom de variable d'environnement : `turbo-rust` donne `TURBO_RUST_THEME_DIR`. |
| 33 | |
| 34 | ## Server |
| 35 | |
| 36 | | Champ | Type | Défaut | Description | |
| 37 | | --- | --- | --- | --- | |
| 38 | | `Command` | `string` | `""` | Le nom de l'exécutable, cherché d'abord dans PATH. `"gopls"`, `"rust-analyzer"`. | |
| 39 | | `Args` | `[]string` | `nil` | Les arguments de démarrage. gopls prend `["serve"]` ; rust-analyzer n'en prend aucun. | |
| 40 | | `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. | |
| 41 | | `Dirs` | `[]string` | `nil` | Répertoires supplémentaires fouillés après PATH, dans l'ordre. Les chaînes vides sont ignorées. | |
| 42 | |
| 43 | ### Exemple |
| 44 | |
| 45 | ```go |
| 46 | profile.Server{ |
| 47 | Command: "gopls", |
| 48 | Args: []string{"serve"}, |
| 49 | InstallHint: "go install golang.org/x/tools/gopls@latest", |
| 50 | Dirs: []string{goBinDir()}, |
| 51 | } |
| 52 | ``` |
| 53 | |
| 54 | ## Templates |
| 55 | |
| 56 | | Champ | Type | Arguments de formatage, dans l'ordre | |
| 57 | | --- | --- | --- | |
| 58 | | `Settings` | `string` | le nom du thème (`%q`), le délai de sauvegarde automatique (`%q`) | |
| 59 | | `Snippets` | `string` | le nom du groupe sans nom (`%s`), le chemin des extraits de l'utilisateur (`%s`) | |
| 60 | | `Tools` | `string` | aucun | |
| 61 | |
| 62 | 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. |
| 63 | |
| 64 | ### Exemple |
| 65 | |
| 66 | ```go |
| 67 | const settingsTemplate = `# turbo-go project settings. |
| 68 | |
| 69 | [editor] |
| 70 | |
| 71 | theme = %q |
| 72 | autosave = false |
| 73 | autosave_delay = %q |
| 74 | ` |
| 75 | ``` |
| 76 | |
| 77 | ## Erreurs |
| 78 | |
| 79 | `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. |
| 80 | |
| 81 | ## Voir aussi |
| 82 | |
| 83 | - [Dialoguer avec un serveur de langage](../how-to/talk-to-a-language-server.md) |
| 84 | - [Écrire les fichiers de départ](../how-to/write-the-starter-files.md) |