Recettes par langage
Des recettes qui marchent pour les suspects habituels : quoi installer
pour le serveur et les formateurs de chaque langage, et la
configuration qui les relie. Chaque extrait va dans config.json
(voir Configuration) ou, de façon équivalente,
dans Réglages ▸ Serveurs de langage — les formes éditées à la main
sont montrées ici parce qu'elles se copient plus facilement. Les
serveurs listés correspondent au registre intégré : installer l'outil
suffit en général ; les entrées lsp ci-dessous ne servent que pour
choisir un serveur différent de celui par défaut.
Les lignes d'installation supposent Homebrew sur macOS ; sous Linux, le gestionnaire de paquets ou l'installateur du langage font le même travail.
Python
brew install pyright ruff black
(ou npm install -g pyright, pip install ruff black.)
Pyright est le serveur par défaut. Ruff corrige et Black formate à chaque sauvegarde :
{
"preprocessors": {
"defaults": { "python": ["ruff check --fix-only -", "black -"] }
}
}
Vous préférez python-lsp-server ? Installez-le
(pip install python-lsp-server) et pointez le langage dessus :
{ "lsp": { "defaults": { "python": "pylsp" } } }
Go
brew install go gopls
gopls est trouvé automatiquement. gofmt vient avec Go lui-même :
{ "preprocessors": { "defaults": { "go": ["gofmt"] } } }
Passez à goimports
(go install golang.org/x/tools/cmd/goimports@latest) pour gérer
aussi les imports à la sauvegarde.
Rust
rustup component add rust-analyzer rustfmt
rust-analyzer est le serveur par défaut. rustfmt lit stdin quand
on l'appelle sans arguments :
{ "preprocessors": { "defaults": { "rust": ["rustfmt"] } } }
JavaScript
npm install -g typescript typescript-language-server prettier
typescript-language-server est le serveur par défaut. Prettier
choisit son parseur d'après le nom du fichier, donnez-lui donc le vrai —
{filename} se développe en lui :
{
"preprocessors": {
"defaults": { "javascript": ["prettier --stdin-filepath {filename}"] }
}
}
C
brew install llvm
clangd et clang-format viennent tous deux avec LLVM (les outils en
ligne de commande de Xcode embarquent aussi un clangd).
clang-format lit stdin par défaut et respecte le .clang-format du
projet :
{ "preprocessors": { "defaults": { "c": ["clang-format"] } } }
Swift
sourcekit-lsp vient avec Xcode et est trouvé automatiquement.
swift-format accompagne les toolchains récentes :
{ "preprocessors": { "defaults": { "swift": ["swift format"] } } }
Shell
brew install bash-language-server shfmt shellcheck
{ "preprocessors": { "defaults": { "bash": ["shfmt"] } } }
JSON / YAML / Markdown
Prettier couvre les trois ; Markdown a en plus l'aperçu intégré et la correction orthographique de la prose sans rien configurer :
{
"preprocessors": {
"defaults": {
"json": ["prettier --stdin-filepath {filename}"],
"yaml": ["prettier --stdin-filepath {filename}"],
"markdown": ["prettier --stdin-filepath {filename}"]
}
}
}
Vérifier une recette
Ouvrez un fichier du langage et regardez le sous-titre de la fenêtre :
les compteurs de problèmes apparaissent quand le serveur répond. Si
rien ne se passe, la page
Serveurs de langage couvre le journal de
débogage (~/Library/Logs/Textchum/lsp.log), les règles de PATH et le
recours à ctags pour les projets sans serveur. Un échec de
préprocesseur s'affiche toujours en alerte avec la commande et son
stderr — une chaîne ne peut jamais avaler une sauvegarde en silence.