Python docstring'de doldurma paragrafı üç satırdan ayrı satırda bırakın


16

Ben böyle bir satırda bir python docstring yazın:

"""
This is a long docstring. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis.
"""

ve sonra Mq ( fill-paragraph) tuşuna basıyorum ve bunu alıyorum:

"""This is a long docstring. Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Donec a diam lectus. Sed sit amet ipsum
mauris. Maecenas congue ligula ac quam viverra nec consectetur ante
hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas
mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem
lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non
tortor. Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed,
adipiscing id dolor. Pellentesque auctor nisi id magna consequat
sagittis.

"""

Bununla iki problemim var:

  1. Öğretiyle aynı satırda başlıyor """- Üçlü alıntıyı kendi satırında tutmayı tercih ederim.
  2. (Çok daha düşük öncelik.) Öğreti boş bir satırla biter.

Yukarıdaki örnek kabul edilir, ancak özellikle basitçe M-qve tüm parayı yeniden akıtmak istediğim mevcut docstring'leri düzenlerken sık sık karşılaşıyorum .

Yanıtlar:


15

python-fill-docstring-styleEmacs 24.4'te yerleşik Python Modunu kullandığınızı varsayarak buna göre özelleştirin . Varsayılan değer pep-257, gözlemlediğiniz stile götürür, yani başlangıçta yeni satır ve doktrin bitmeden iki satır sonra.

Bu değişkeni değiştirin symmetricveya djangotercih ettiğiniz stilde docstringe başında, yani yeni satır ve sonundan önce bir satır itaat Python Modu olması:

(setq python-fill-docstring-style 'django)

Alternatif olarak, docstring stilini proje başına ayrı ayrı yapılandırmak için Dizin Değişkenleri aracılığıyla ayarlayın .

symmetricve djangofarklı wrt tek satır öğretileri vardır. Birincisi, bir öğreti bir çizgiye uyuyorsa üçlü tırnakları aynı satıra koyarken, ikincisi bu durumda üçlü tırnakları ayrı satırlara koyar.

Mevcut tüm seçenekleri görmek için doktorapython-fill-docstring-style bakın.


-1

Sonunda boş satır, düz bir hata gibi görünüyor, lütfen ile bildirin M-x report-emacs-bug. Ama ilk öğe için, bunun bir hata veya özellik olup olmadığından emin değilim, bu yüzden hata raporunuzda bahsetmek isteyebilirsiniz, ancak belki de cevap sadece "PEP-NNN" kuralını izlemesi olacaktır.

Bu, ilk sorunu aşağıdakilerle düzeltebileceğinizi söyledi:

(add-hook 'python-mode-hook
          (lambda ()
            (set (make-local-variable 'paragraph-separate)
                 (concat paragraph-separate "\\|^[ \t]*\"\"\"[ \t]*$"))))

1
Ne bir hata ne de değiştirmen gerek paragraph-separate. Docstring tarzı python.elözelleştirilebilir.
lunaryorn

Vay canına, öğretimin sonundaki fazladan boş bir çizginin bir standart tarafından zorlanan bir şey olabileceğini asla tahmin edemezdim.
Stefan

1
Standart (PEP 257) bunu gerçekten zorlamıyor, sadece (ortak) bir yorumudur. Emacs aynı zamanda, bir arka yeni satır olmayan varyant destekler pep-257-nniçinde python-fill-docstring-style.
lunaryorn

1
İronik olarak, boş bağlantının nedeni şudur: Tüm doktrin bir çizgiye sığmazsa, kapanış tekliflerini kendi başına bir çizgiye yerleştirin. Bu yolla Emacs'ın doldurma paragraf komutu kullanılabilir.
Felipe
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.