Créer un éditeur externe – comment cela fonctionne-t-il?

Quelle est la conception typique d’un programme (tel qu’un utilitaire de ligne de commande) pour générer un éditeur externe et relire les modifications apscopes au fichier? De nombreux utilitaires de ligne de commande le font. Par exemple, svn commit lance un éditeur externe pour obtenir le commentaire s’il est exécuté sans -c .

Certaines options que j’ai considérées sont:

  • Interrogez un fichier de fichier temporaire en attendant que l’horodatage change, mais cela se limiterait à une seule sauvegarde.
  • Inscrivez-vous au système d’exploitation pour être informé des modifications apscopes à un fichier temporaire, mais cela dépend de la plate-forme, ce que je voudrais éviter.
  • Surveillez le processus généré en attendant qu’il se termine, mais je ne sais pas comment cela fonctionnerait pour les éditeurs tels que TextMate et TextWrangler qui ont généralement des processus de longue durée.
  • Interagissez avec le processus généré par stdin et stdout, mais je ne sais pas exactement comment / si cela peut fonctionner.

Espérons que la solution est indépendante de la plate-forme. Pour mémoire, ma plate-forme est la JVM sur OS X.

PS Des conseils sur les tags appropriés pour cette question?

Si vous lancez un processus via Java (Runtime.exec), vous récupérez un object Process, qui dispose d’une méthode waitFor () qui vous indiquera quand le processus est terminé.

Il suffit de lancer vi ou nano ou autre via ça, et une fois qu’il est terminé, vous pouvez lire le fichier.