# 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)