Le plugin VScode officiel pour Rescript

Vous devez avoir Rescript> = 9.1 installé localement dans votre projet, via l'installation habituelle de NPM ou de fil. Les versions plus anciennes ne sont pas garanties pour fonctionner.
Notre mise en évidence fonctionne bien avec les thèmes VScode les plus populaires, tels que:
Les 2 seuls thèmes que nous ne soutenons pas (et ne pouvons pas), en raison de leur manque de coloration, sont:
Remarque Si votre thème personnalisé ne semble pas mettre en évidence beaucoup (par exemple, pas de couleurs pour la balise JSX de cas supérieure, aucune distinction entre le module et la variante), essayez l'un des thèmes recommandés pour voir si c'est le problème. Pour plus d'informations, consultez cet article.
.res , .resi , rescript.json et le fichier de configuration hérité bsconfig.json .external telles que @bs.module et @bs.valtry , for , etc.//#region et //#endregion . Lancez vs code Quick Open ( Ctrl+P ), collez la commande suivante et appuyez sur Entrée.
ext install chenglou92.rescript-vscode
Le plugin s'active sur des fichiers .res et .resi . Si vous avez déjà installé des raisons de raisonnement, il est possible que ce dernier ait pris la priorité sur celui-ci. Assurez-vous que vous utilisez ce plugin ("Syntaxe de Rescript") plutôt que pour le serveur de raisons de raisonnement ("Syntaxe BuckleScript").
Il existe un canal de pré-libération disponible. Il est destiné à tester les fonctionnalités nouvelles et peut-être instables. Vous pouvez l'activer en cliquant sur le bouton "Passer à la version prédépendante" sur la page d'extension rescript-vscode dans VScode. À partir de ce moment, les versions de pré-libération auront toujours une version étrange mineure (1.5.x, 1.7.x, 2.1.x, etc.) tandis que les versions stables ont même des numéros mineurs de version (1.4.x, 1.6.x, 2.0.0, etc.).
Même si la chaîne de pré-libération vous semble trop expérimentale, nous vous suggérons toujours d'essayer de soumettre tous les problèmes que vous rencontrez. À long terme, cela nous donnera une meilleure expérience de l'éditeur dans son ensemble.
| Commande | Description |
|---|---|
| Rescript: Créez un fichier d'interface pour ce fichier d'implémentation | Crée un fichier d'interface ( .resi ) pour le fichier .res actuel, remplissant automatiquement tous les types et valeurs dans le fichier actuel. |
| Rescript: ouvrez le fichier JS compilé pour ce fichier d'implémentation | Ouvre le fichier JS compilé pour le fichier Rescript actuel. |
| Rescript: Switch Implémentation / Interface | Bascules entre le fichier d'implémentation et d'interface. Si vous êtes dans un fichier .res , la commande ouvrira le fichier .resi correspondant (s'il existe), et si vous êtes dans un fichier .resi , la commande ouvrira le fichier .res correspondant. Cela peut également être déclenché avec l' Alt+O . |
| Rescript: Démarrer l'analyseur de code | Cela démarrera l'analyse de code dans le projet Rescript du fichier à partir de la commande. |
Vous trouverez tous les paramètres spécifiques à Rescript sous la SPOPE rescript.settings .
| Paramètre | Description |
|---|---|
| Invite pour commencer la construction | S'il n'y a pas de build Rescript en cours d'exécution dans le projet ouvert, l'extension vous invitera et vous demandera si vous souhaitez démarrer automatiquement une version. Vous pouvez désactiver cette invite automatique via le paramètre rescript.settings.askToStartBuild . |
| Chemin binaire de rescrip | L'extension recherchera l'existence d'un fichier node_modules/.bin/rescript et utilise son répertoire comme binaryPath . S'il ne le trouve pas à la racine du projet (où réside le rescript.json le plus proche), il augmente les dossiers dans le système de fichiers récursivement jusqu'à ce qu'il le trouve (souvent le cas dans Monorepos) ou atteint le niveau supérieur. Pour remplacer ce processus de recherche, le chemin peut être configuré explicitement à l'aide du paramètre rescript.settings.binaryPath |
| Chemin de plate-forme Rescript | L'extension recherchera l'existence d'un répertoire node_modules/rescript et utilisera le sous-répertoire correspondant à la plate-forme actuelle comme platformPath . S'il ne le trouve pas à la racine du projet (où réside le rescript.json le plus proche), il augmente les dossiers dans le système de fichiers récursivement jusqu'à ce qu'il le trouve (souvent le cas dans Monorepos) ou atteint le niveau supérieur. Pour remplacer ce processus de recherche, le chemin peut être configuré explicitement à l'aide du paramètre rescript.settings.platformPath |
| Incrustations indices (expérimentales) | Cela permet à un éditeur de placer des annotations en ligne avec du texte pour afficher des conseils de type. Activer l'utilisation rescript.settings.inlayHints.enable: true |
| Code Lens (expérimental) | Cela indique à l'éditeur d'ajouter des objectifs de code aux définitions de fonction, montrant son type complet au-dessus de la définition. Activer l'utilisation rescript.settings.codeLens: true |
| Aide à la signature | Cela indique à l'éditeur d'afficher une aide de signature lorsque vous écrivez des appels de fonction. Activer l'utilisation de rescript.settings.signatureHelp.enabled: true |
Paramètres par défaut:
// Whether you want the extension to prompt for autostarting a ReScript build if a project is opened with no build running
"rescript.settings.askToStartBuild" : true ,
// Path to the directory where cross-platform ReScript binaries are. You can use it if you haven't or don't want to use the installed ReScript from node_modules in your project.
"rescript.settings.binaryPath" : null
// Path to the directory where platform-specific ReScript binaries are. You can use it if you haven't or don't want to use the installed ReScript from node_modules in your project.
"rescript.settings.platformPath" : null
// Enable (experimental) inlay hints.
"rescript.settings.inlayHints.enable" : true
// Maximum length of character for inlay hints. Set to null to have an unlimited length. Inlay hints that exceed the maximum length will not be shown
"rescript.settings.inlayHints.maxLength" : 25
// Enable (experimental) code lens for function definitions.
"rescript.settings.codeLens" : true L'analyseur de code est un mode dans l'extension qui exécute une analyse de code supplémentaire dans votre projet. L'analyse vous aide à trouver du code mort à un niveau granulaire, à trouver des exceptions non gérées, et plus encore.
L'analyseur de code utilise Reanalyze, qui est intégré à l'extension, vous n'avez donc pas besoin d'installer quoi que ce soit de plus pour l'exécuter.
Vous devrez configurer l'analyse de code que vous souhaitez exécuter et les répertoires (le cas échéant) que vous souhaitez ignorer. La configuration se fait via l'ajout reanalyze dans rescript.json . Vous obtiendrez une saisie semi-automatique pour les options de configuration valides. Vous pouvez également lire tout sur la configuration reanalyze ici.
Ouvrez la palette de commande et exécutez ReScript: Start Code Analyzer . Cela démarrera l'analyse de code dans le projet Rescript du fichier à partir de la commande.
Dead Code est mis en évidence dans l'éditeur et les actions de code pour supprimer les avertissements de code morts sont disponibles dans la plupart des cas.
Une fois terminé, arrêtez le mode d'analyse de code en cliquant sur le bouton d' Stop Code Analyzer dans la barre d'état de l'éditeur. Cela effacera tous les avertissements d'analyse signalés.
Actuellement, ne fonctionne pas pour l'analyse complète du code mort Monorepo (bien qu'elle devrait fonctionner individuellement pour chaque package Monorepo).
Vous pouvez configurer VScode pour effondrer les fichiers JavaScript que Rescript génère dans son fichier Source Rescript. Cela "masquer" les fichiers générés dans l'explorateur de fichiers VScode, mais les laissant toujours accessibles en élargissant le fichier de rescript source auquel ils appartiennent.
Ouvrez vos paramètres VScode et tapez:
"explorer.fileNesting.enabled" : true ,
"explorer.fileNesting.patterns" : {
"*.res" : "${capture}.mjs, ${capture}.js, ${capture}.cmi, ${capture}.cmt, ${capture}.cmj" ,
"*.resi" : "${capture}.res"
} ,Cela niche des implémentations sous interfaces si elles sont présentes et niche tous des fichiers générés dans le fichier Rescript principal. S'adapter et ajuster à votre goût.
Une capture d'écran du résultat:

Voir Changelog
Lisez notre guide de contribution
Voir le fichier de licence pour plus de détails.