Emacs Lisp yorum kuralları


17

Emacs Lisp Başvuru Kılavuzu'nun Ek D.7'sinde bazı yorum ipuçlarından bahsedilmektedir:

  • ;Satır içi yorumlar için tek noktalı virgül ( ) kullanılmalıdır.
  • ;;Satır yorumları için çift ​​noktalı virgül ( ) kullanılmalıdır.
  • Üçlü noktalı virgül ( ;;;) "Anahat küçük modu tarafından başlık olarak görülmesi gereken yorumlar" için kullanılmalıdır.
  • ;;;;Bir programın ana bölümlerinin başlıkları için dörtlü noktalı virgül ( ) kullanılmalıdır.

Tek ve çift noktalı virgül kullanım durumları açıktır, ancak üçlü ve dörtlü noktalı virgüller arasında keskin bir tanımlama yoktur.

Özellikle, Emacs paketleri için sağlanan standart dokümantasyon auto-insert, dosya adı ve ana bölümler gibi en üst düzey başlıklar için bile, hiçbir zaman dört noktalı virgül kullanmaz, hiçbir zaman dört noktalı virgül kullanmaz. Aşağıdaki örneğe bakın:

;;; test.el --- A test file.                         -*- lexical-binding: t; -*-

;; Copyright (C) 2016

;; Author:  John Smith
;; Keywords: 

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:

;; 

;;; Code:



(provide 'test)
;;; test.el ends here

Üçlü ve dörtlü noktalı virgül için en iyi uygulamalar nelerdir?

Güncelleme

Stefan'ın cevabı sayesinde bir hata raporu hazırladım ve aşağıdaki öneride bulundum:

Üç noktalı virgül için açıklamanın şu şekilde değiştirilmesini öneririm:

Comments that start with three semicolons, ‘;;;’, are considered
top-level headings by Outline minor mode.

Four or more semicolons can be used as subheadings in hierarchical
fashion. E.g.

;;; Main heading
;;;; Sub heading
;;;;; Sub sub heading
;;;; Another sub heading
;;; Next main heading

These comments should be used to break Emacs Lisp code into sections.

Emacs kılavuzundaki "Küçük modu özetle" bağlantısı faydalı olacaktır: https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html

Dört noktalı virgül için bölüm seçilebilir.


grep -r '^;;;; ' lispİlham almak için Emacs kaynaklarına ( ) bakın.
sds

@sds standart olmayan birkaç uygulama ortaya çıkarır ;;;; kanonik kaynaklarda;)
Tyler

Demek istediğim bu - bu 4 noktalı virgül önerisi çok ciddiye alınamaz, OTOH, dosya zaman damgasına da bakmalı - bu standart olmayan şeyler eski olabilir.
sds

Yanıtlar:


13

Aslında, 3 ve daha fazla noktalı virgül, başlıkların kısaltmasıdır; daha fazla noktalı virgül, başlığın iç içe yerleşmesini daha derine koyarsınız. Yani böyle görünmeli

;;; Main heading
;;;; Sub heading
;;;;; Sub sub heading
;;;; Another sub heading
;;; Next main heading

Bu yaygın bir uygulama gibi görünmektedir, ancak soruyla bağlantılı Elisp kılavuzunda listelenen sözleşmelerden farklıdır. Bu kılavuzdaki bir hata mı?
Tyler

3
Bu sadece bir pratik meselesi değil. Bu şekilde emacs-lisp-modeyapılandırılır outline-minor-mode. Bunu bir dokümantasyon hatası olarak rapor etmenizi öneririm (dokümanın yanlıştan daha belirsiz olduğunu düşünüyorum, ancak sonuç aynıdır).
Stefan

Bir hata raporu gönderdim ve belgeleri başka bir şeye değiştirmek için bir öneri sundum. Kılavuz için TexInfo kaynağını alabilirim; klonlayıp karşı talepte bulunabileceğim bir depo var mı?
Tianxiang Xiong

@TianxiangXiong: Tabii ki, doktor Emacs'ın kaynak kodunun bir parçası, bu yüzden klonlayıp git://git.sv.gnu.org/emacs.gitbir yama gönderebilirsiniz M-x report-emacs-bug.
Stefan

Referans olarak, burada Common Lisp sözleşmeleri verilmiştir . Emacs Lisp bir başlık için gerçekten 3 noktalı virgül, ancak daha az belirgin bir başlık için 4 noktalı virgül kullanırsa, bu mantıksız ve CL ve diğer lisps'lerde gördüğümün aksine görünüyor. Belki de org-mode stil başlıkları için daha iyi bir seçimdir, bu yüzden elisp için de gittiler.
Lassi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.