Return Sorter
Fini les return { ... } en vrac dans vos hooks et composants.
Return Sorter range les propriétés des objets retournés par nature, puis
du plus petit au plus grand, en un raccourci ou à chaque enregistrement.
- 💡 Les objets mal triés sont soulignés, correction en
Ctrl+.
- 💾 Tri automatique à l'enregistrement, compatible Prettier et ESLint
- 🔗 Les paires
useState (open / setOpen) restent ensemble
- 🛡️ Sans risque : spreads, commentaires et clés en double sont respectés
- ⚡ JavaScript, TypeScript, JSX et TSX
Exemple
Avant :
return {
referenceInterneInput,
open,
setOpen,
firstNameInput,
lastNameInput,
phoneInput,
mobileMoneyInput,
typeIdInput,
specialtyIdInput,
photoInput,
isLoading: isSubmitting || mutation.isPending,
onSubmit: handleSubmit((data) => mutation.mutate(buildFormData(data)))
}
Après :
return {
open,
setOpen,
phoneInput,
photoInput,
typeIdInput,
lastNameInput,
firstNameInput,
mobileMoneyInput,
specialtyIdInput,
referenceInterneInput,
isLoading: isSubmitting || mutation.isPending,
onSubmit: handleSubmit((data) => mutation.mutate(buildFormData(data)))
}
Les natures (groupes)
| Groupe |
Exemple |
shorthand |
open, |
property |
isLoading: isSubmitting, onSubmit: handleSubmit(...) |
function |
onClick: () => {}, onSave() {} |
Dans chaque groupe, les propriétés sont triées par longueur de texte (à égalité : ordre alphabétique).
Paires useState : open est toujours suivi de setOpen (pareil pour isOpen / setIsOpen,
value / setValue…), même si le tri par taille les aurait séparés.
Règles de sécurité :
- un objet déjà dans le bon ordre n'est jamais reformaté ;
- les
...spread ne bougent jamais (déplacer un spread change le résultat) ; le tri se fait de part et d'autre ;
- un objet avec des clés en double n'est pas touché ;
- les commentaires restent attachés à leur propriété.
Utilisation
L'ampoule 💡 : les return non triés sont soulignés. Place le curseur dessus et
fais Ctrl+. (Cmd+. sur Mac) → « Trier cet objet return » ou
« Trier tous les objets return du fichier ».
À l'enregistrement (recommandé), dans settings.json :
"editor.codeActionsOnSave": {
"source.sortReturns": "explicit"
}
Ça s'enchaîne avec Prettier, ESLint et « Organiser les imports » comme n'importe quelle action d'enregistrement.
Commandes :
- Clic droit → « Trier l'objet return sous le curseur », ou
Ctrl+Alt+O (Cmd+Alt+O sur Mac).
Avec une sélection, tous les return { ... } de la sélection sont triés.
- Palette de commandes (
Ctrl+Shift+P) → « Return Sorter : Trier tous les objets return du fichier ».
Fonctionne avec JavaScript, TypeScript, JSX et TSX. Les retours implicites
() => ({ ... }) sont aussi pris en charge.
Réglages
| Réglage |
Défaut |
Description |
returnSorter.groupOrder |
["shorthand", "property", "function"] |
Ordre des groupes |
returnSorter.direction |
"asc" |
asc = du plus petit au plus grand, desc = inverse |
returnSorter.keepPairs |
true |
Garder x / setX ensemble |
returnSorter.diagnostics |
"information" |
Soulignement : off, hint, information, warning |
returnSorter.multiline |
"always" |
preserve garde les objets courts sur une ligne |
returnSorter.sortOnSave |
false |
Trier à l'enregistrement (alternative à codeActionsOnSave) |
Installer
Dans VS Code : panneau Extensions (Ctrl+Shift+X) → rechercher Return Sorter → Installer.
Ou en ligne de commande :
code --install-extension ibrahima036.return-sorter
Développement
cd vscode-return-sorter
npm install
npm test # tests du tri
npx vsce package --allow-missing-repository # crée le fichier .vsix
Pour tester sans installer : ouvrir le dossier vscode-return-sorter dans VS Code et appuyer sur F5.
English
Return Sorter sorts the properties of returned objects (return { ... } and () => ({ ... }))
by kind (shorthand → key: value → functions), then by length, shortest first.
useState pairs such as open / setOpen stay together. Unsorted objects are underlined
with a quick fix (Ctrl+.), and the source.sortReturns action can run on save via
editor.codeActionsOnSave. Spreads, comments and duplicate keys are handled safely.
Créateur
Créé par ibrahima036. Licence MIT.