¿Existe un modo para actualizar automáticamente los años de copyright en los archivos?


21

Por lo general, en esta época del año, las personas comienzan a darse cuenta de que su año de copyright está desactualizado en sus archivos. Esto es particularmente molesto si desea colocar los derechos de autor en cada archivo fuente. Me preguntaba si emacs podría ayudar aquí.

¿Hay un modo que actualice automáticamente el año de copyright en un archivo? Idealmente, configuraría el modo con mi nombre y afiliaciones, de modo que solo actualice los derechos de autor de esos. También solo actualizaría los derechos de autor automáticamente cuando se realiza un cambio (aunque sería bueno tener también una manera fácil de hacer un cambio masivo a un proyecto).


No importaría mucho en qué año escriba, ya que los derechos de autor de la convención de Berna son de al menos 50 años de vida en todo el mundo.
mathreadler

Respuestas:


24

Puedes usar la copyright-updatefunción. Leería los documentos para la función. y otros dentro copyright.elpara obtener más información, pero como un simple ejemplo, si tengo:

;; Copyright (C) 2014, Jordon Biondo

en un archivo y se ejecuta copyright-updatedesde el minibúfer, actualiza la línea para decir

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

Puede hacer que la función elimine el año anterior si lo desea.

Para manejar las actualizaciones automáticas, puede agregar la función a la before-save-hooklista.

Para hacer una actualización por lotes, use el comando copyright-update-directory.

La biblioteca de derechos de autor tiene muchas características y formas de personalizarla, sugeriría abrir la biblioteca para comenzar a ver cómo puede adaptarla a sus necesidades.


3
Estos son los momentos en los que me asombra Emacs.
PythonNut

6

Esto es lo que uso:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.