Apakah ada mode untuk secara otomatis memperbarui tahun hak cipta dalam file?


21

Biasanya sekitar waktu sepanjang tahun ini orang mulai menyadari bahwa tahun hak cipta mereka sudah ketinggalan zaman dalam file mereka. Ini sangat menjengkelkan jika Anda ingin meletakkan hak cipta di setiap file sumber. Saya bertanya-tanya apakah emacs dapat membantu di sini.

Apakah ada mode yang secara otomatis memperbarui tahun hak cipta dalam file? Idealnya, saya akan mengatur mode dengan nama dan afiliasi saya, sehingga hanya memperbarui hak cipta untuk itu. Itu juga hanya akan memperbarui hak cipta secara otomatis ketika perubahan dilakukan (walaupun alangkah baiknya juga memiliki cara mudah untuk melakukan perubahan massal ke suatu proyek).


Tidak masalah berapa tahun Anda menulis karena hak cipta oleh konvensi Berne setidaknya 50 tahun di seluruh dunia.
mathreadler

Jawaban:


24

Anda dapat menggunakan copyright-updatefungsi ini. Saya akan membaca dokumen untuk fungsi ini. dan lainnya di dalam copyright.eluntuk info lebih lanjut, tetapi sebagai contoh sederhana, Jika saya punya:

;; Copyright (C) 2014, Jordon Biondo

dalam file dan dijalankan copyright-updatedari minibuffer, itu memperbarui baris untuk mengatakan

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

Anda dapat memiliki fungsi menghapus tahun yang lama jika Anda mau.

Untuk menangani pembaruan otomatis, Anda dapat menambahkan fungsi ke before-save-hookdaftar.

Untuk melakukan pembaruan batch, gunakan perintah copyright-update-directory.

Perpustakaan hak cipta memiliki banyak fitur dan cara untuk menyesuaikannya, saya sarankan membuka perpustakaan untuk mulai melihat bagaimana Anda dapat menyesuaikannya dengan kebutuhan Anda.


3
Ini adalah saat-saat yang membuat saya kagum pada Emacs.
PythonNut

6

Inilah yang saya gunakan:

(when (fboundp 'copyright-update)
  (setq copyright-names-regexp "Monnier\\|Free Software")
  (add-hook 'before-save-hook #'copyright-update))
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.