// Documentation Singularity
L'éditeur de code
Ouvrez, modifiez et enregistrez les fichiers de vos projets sans quitter Singularity. L'éditeur repose sur CodeMirror 6 et chaque fichier occupe un onglet unique dans le deck.
Ouvrir un fichier
Cliquez sur un fichier dans la vue Code du navigateur. Aperture et les résultats qui pointent vers une ligne peuvent aussi ouvrir directement le fichier au bon endroit. Depuis une comparaison Git, le diff s'ouvre dans un onglet dédié : sa copie de travail, à droite, est modifiable.
Un fichier correspond à un onglet file:<chemin> du deck. Si vous ouvrez de nouveau le même chemin, Singularity remet l'onglet existant au premier plan au lieu de le dupliquer. Les onglets et les brouillons non enregistrés sont restaurés entre les sessions.

L'éditeur
CodeMirror 6 fournit la coloration syntaxique selon l'extension, les numéros de ligne, le repliage, les guides d'indentation, la correspondance et la fermeture automatique des parenthèses, ainsi que la mise en évidence des occurrences d'un mot. L'éditeur prend notamment en charge JavaScript et TypeScript, HTML, CSS, JSON, Python, Markdown, Go et Rust.
La sélection multiple et les curseurs multiples ne sont pas disponibles. Les fonctions dépendantes d'un serveur de langage sont décrites séparément dans la documentation LSP.
Enregistrer
Appuyez sur Cmd+S sur macOS ou Ctrl+S sous Windows et Linux. Une modification marque l'onglet comme non enregistré ; l'indicateur disparaît après l'écriture réussie. Le brouillon est aussi conservé dans la session tant qu'il diffère du contenu sur disque.
La surveillance du navigateur actualise l'arborescence quand le disque change et l'éditeur détecte qu'un fichier ouvert a été supprimé lors du retour au premier plan. En revanche, il ne fusionne pas et ne recharge pas automatiquement le contenu d'un fichier ouvert modifié par un autre programme : enregistrer écrit le tampon courant. Vérifiez le changement externe avant d'écraser le fichier.
La barre d'état et l'inspecteur
La barre au-dessus du contenu affiche le fil espace de travail › projet › dossiers › fichier, puis les symboles courants lorsqu'un serveur de langage les fournit. L'inspecteur de l'éditeur complète ces informations avec la position ligne/colonne du curseur, le langage détecté, le nombre de lignes, la taille et l'encodage affiché, actuellement UTF-8.
L'encodage est informatif : il n'existe pas encore de sélecteur pour le modifier.
Rechercher et remplacer dans le fichier
Cmd/Ctrl+F ouvre la recherche dans le fichier actif ; Cmd/Ctrl+H ouvre directement le remplacement. La barre propose la casse sensible, le mot entier et les expressions régulières, affiche le nombre de correspondances et permet de passer au résultat précédent ou suivant.
Cette commande reste limitée au fichier actif. Pour chercher dans tout le projet, utilisez la recherche globale ; le remplacement multi-fichiers n'est pas disponible.
Éditer côté revue
Un fichier ouvert depuis l'onglet Revue est modifiable lorsque le run possède encore un chemin de worktree enregistré : vos changements s'appliquent alors à cette copie de travail isolée. Sans chemin de worktree exploitable, le fichier est présenté en lecture seule pour éviter d'écrire dans un emplacement ambigu.
Le parcours d'approbation, de demande de changements et de rejet est détaillé dans La revue de code des runs.
Limites connues
- Pas de vue scindée de l'éditeur, de minimap, de blame Git en ligne ni de fil d'Ariane de chemin cliquable.
- Pas de curseurs multiples, de sélection multiple par Cmd+clic, de sticky scroll ni de bascule du retour à la ligne au clavier.
- Pas de palette Cmd/Ctrl+P dédiée aux fichiers ; utilisez Aperture, le navigateur ou la recherche globale.
- Les fichiers de plus de 5 Mo sont lus par blocs et restent en lecture seule.
- Pas de sélection d'encodage, de remplacement multi-fichiers ni de résolution de conflit avec une modification externe.