Existe-t-il un mode pour mettre à jour automatiquement les années de copyright dans les fichiers?

21

Habituellement, à cette époque de l'année, les gens commencent à se rendre compte que leur année de droit d'auteur est obsolète dans leurs fichiers. Ceci est particulièrement gênant si vous souhaitez mettre le copyright dans chaque fichier source. Je me demandais si emacs pouvait aider ici.

Existe-t-il un mode qui mettrait automatiquement à jour l'année du droit d'auteur dans un fichier? Idéalement, je configurerais le mode avec mon nom et mes affiliations, afin qu'il ne mette à jour que les droits d'auteur de ceux-ci. Il ne mettrait également à jour le droit d'auteur que automatiquement lorsqu'une modification est apportée (même si ce serait bien d'avoir également un moyen facile d'effectuer une modification en masse d'un projet).

asmeurer
la source
Peu importe l'année que vous écrivez, car le droit d'auteur par la convention de Berne est d'au moins 50 ans dans le monde.
mathreadler

Réponses:

24

Vous pouvez utiliser la copyright-updatefonction. Je voudrais lire les documents de la fonction. et d'autres à l'intérieur copyright.elpour plus d'informations, mais comme exemple simple, si j'ai:

;; Copyright (C) 2014, Jordon Biondo

dans un fichier et exécuté à copyright-updatepartir du mini-tampon, il met à jour la ligne pour dire

;; Copyright (C) 2014, 2015, Jordon Biondo

Vous pouvez demander à la fonction de supprimer l'ancienne année si vous le souhaitez.

Pour gérer les mises à jour automatiques, vous pouvez ajouter la fonction à la before-save-hookliste.

Pour effectuer une mise à jour par lots, utilisez la commande copyright-update-directory.

La bibliothèque de droits d'auteur a beaucoup de fonctionnalités et de façons de la personnaliser, je suggère d'ouvrir la bibliothèque pour commencer à voir comment l'adapter à vos besoins.

Jordon Biondo
la source
3
Ce sont les moments où je suis impressionné par Emacs.
PythonNut
6

Voici ce que j'utilise:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Stefan
la source