Czy istnieje tryb automatycznej aktualizacji lat praw autorskich w plikach?


21

Zwykle mniej więcej o tej porze roku ludzie zaczynają zdawać sobie sprawę, że ich prawa autorskie są nieaktualne w swoich plikach. Jest to szczególnie denerwujące, jeśli chcesz umieścić prawa autorskie w każdym pliku źródłowym. Zastanawiałem się, czy emacs może tu pomóc.

Czy istnieje tryb, który automatycznie aktualizuje rok praw autorskich w pliku? Idealnie byłoby ustawić tryb z moim imieniem i przynależnością, aby aktualizował tylko prawa autorskie do nich. Aktualizowałoby to również prawa autorskie automatycznie tylko po dokonaniu zmiany (chociaż byłoby miło mieć również łatwy sposób na dokonanie dużej zmiany w projekcie).


Nie ma znaczenia, który rok napiszesz, ponieważ prawa autorskie wynikające z konwencji berneńskiej to przynajmniej życie + 50 lat na całym świecie.
Mathreadler

Odpowiedzi:


24

Możesz użyć tej copyright-updatefunkcji. Przeczytałbym dokumenty dotyczące funkcji. i inni w środku, copyright.elaby uzyskać więcej informacji, ale jako prosty przykład, jeśli mam:

;; Copyright (C) 2014, Jordon Biondo

w pliku i uruchamiany copyright-updatez minibufora, aktualizuje wiersz, aby powiedzieć

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

Możesz mieć funkcję usuwania starego roku, jeśli chcesz.

Aby obsługiwać automatyczne aktualizacje, możesz dodać funkcję do before-save-hooklisty.

Aby wykonać aktualizację wsadową, użyj polecenia copyright-update-directory.

Biblioteka praw autorskich ma wiele funkcji i sposobów jej dostosowania. Sugerowałbym otwarcie biblioteki, aby zobaczyć, jak dostosować ją do swoich potrzeb.


3
To są czasy, w których jestem pod wrażeniem Emacsa.
PythonNut,

6

Oto, czego używam:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.