Existe um modo para atualizar automaticamente os anos de direitos autorais em arquivos?


21

Geralmente, nessa época do ano, as pessoas começam a perceber que seu ano de direitos autorais está desatualizado em seus arquivos. Isso é particularmente irritante se você quiser colocar os direitos autorais em todos os arquivos de origem. Eu queria saber se o emacs poderia ajudar aqui.

Existe um modo que atualize automaticamente o ano dos direitos autorais em um arquivo? Idealmente, eu configuraria o modo com meu nome e afiliações, para que ele atualize apenas os direitos autorais. Também atualizaria os direitos autorais automaticamente apenas quando uma alteração fosse feita (embora seria bom também ter uma maneira fácil de fazer uma alteração em massa em um projeto).


Não importa muito em que ano você escreve, já que os direitos autorais da Convenção de Berna têm pelo menos mais de 50 anos de vida em todo o mundo.
mathreadler

Respostas:


24

Você pode usar a copyright-updatefunção Eu leria os documentos para a função. e outros dentro copyright.elpara obter mais informações, mas como um exemplo simples, se eu tiver:

;; Copyright (C) 2014, Jordon Biondo

em um arquivo e executado a copyright-updatepartir do minibuffer, ele atualiza a linha para dizer

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

Você pode ter a função remover o ano antigo, se desejar.

Para lidar com atualizações automáticas, você pode adicionar a função à before-save-hooklista.

Para fazer uma atualização em lote, use o comando copyright-update-directory.

A biblioteca de direitos autorais possui muitos recursos e maneiras de personalizá-la. Sugiro que você abra a biblioteca para começar a ver como você pode adaptá-la às suas necessidades.


3
Estes são os momentos em que assombro o Emacs.
precisa saber é o seguinte

6

Aqui está o que eu uso:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.