Есть ли режим автоматического обновления авторских прав в файлах?

21

Обычно в это время года люди начинают понимать, что их год авторского права устарел в их файлах. Это особенно раздражает, если вы хотите поместить авторские права в каждый исходный файл. Мне было интересно, может ли Emacs помочь здесь.

Существует ли режим, который автоматически обновляет год авторского права в файле? В идеале я бы настроил режим с моим именем и принадлежностью, чтобы он обновлял только авторские права на них. Он также автоматически обновляет авторские права только после внесения изменений (хотя было бы неплохо также иметь простой способ внесения массовых изменений в проект).

asmeurer
источник
Не имеет большого значения, в каком году вы пишете, поскольку авторское право по Бернской конвенции составляет, по крайней мере, жизнь +50 лет во всем мире.
mathreadler

Ответы:

24

Вы можете использовать copyright-updateфункцию. Я хотел бы прочитать документы для функции. и другие внутри copyright.elдля получения дополнительной информации, но в качестве простого примера, если у меня есть:

;; Copyright (C) 2014, Jordon Biondo

в файле и запустить copyright-updateиз минибуфера, он обновляет строку, чтобы сказать

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

Вы можете иметь функцию удаления старого года, если хотите.

Для обработки автоматических обновлений вы можете добавить функцию в before-save-hookсписок.

Чтобы выполнить пакетное обновление, используйте команду copyright-update-directory.

Библиотека авторских прав имеет множество функций и способов ее настройки, я бы посоветовал открыть библиотеку, чтобы узнать, как вы можете адаптировать ее к вашим потребностям.

Джордон Биондо
источник
3
Это время, когда я в восторге от Emacs.
PythonNut
6

Вот что я использую:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Стефан
источник