2015-07-20 3 views
10

मेरा सेटअप Emacs 24.4.1 है, लिनक्स, पाइथन स्रोत कोड एक बफर में खुला है, पायथन मोड 0.24.4 (Emacs के साथ आता है), भरने-कॉलम 70 तक सेट, पायथन-भर-डॉकस्ट्रिंग-शैली सेट पर शून्य। मैं डॉकस्ट्रिंग को पुन: प्रारूपित करने के लिए क्लास विधि डॉकस्ट्रिंग के भीतर से भरने-अनुच्छेद (एम-क्यू) को कॉल करता हूं जैसे कि कोई पंक्ति 70 वर्णों से अधिक नहीं है। लेकिन डॉकस्ट्रिंग की पहली पंक्ति हमेशा लंबी होती है। ऐसा लगता है कि इंडेंटेशन (8 रिक्त स्थान) लाइन लंबाई गणना में शामिल नहीं है। लाइन की लंबाई 70 तक सीमित करने के लिए मैं क्या कर सकता हूं? क्या मुझे इसके बजाय पायथन-मोड.ल का उपयोग करना चाहिए?इमेक्स में भरने-अनुच्छेद के दौरान पाइथन डॉकस्ट्रिंग में अधिकतम पंक्ति लंबाई तक पहली पंक्ति को कैसे सीमित करें?

उदाहरण:

class MyClass(object): 
    def my_method(self): 
     """Some long line with more than 70 characters in the docstring. Some more text.""" 

docstring यह ऐसा दिखाई देगा में एम क्यू के बाद। पहली विधि docstring लाइन स्तंभ 78 पर समाप्त होता है (और दूसरी पंक्ति इंडेंट नहीं है, लेकिन है कि एक अलग मुद्दा है):

class MyClass(object): 
    def my_method(self): 
     """Some long line with more than 70 characters in the docstring. Some 
more text.""" 

लेकिन 70 की एक पंक्ति लंबाई के साथ इसे इस तरह होना चाहिए:

class MyClass(object): 
    def my_method(self): 
     """Some long line with more than 70 characters in the 
     docstring. Some more text.""" 
+0

Emacs 24.5.1 और पायथन मोड 0.24.5 के साथ समान समस्या। एक बग रिपोर्ट है: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20860। – holger

उत्तर

0

अजगर-mode.el, r1993, और डिफ़ॉल्ट शैली की वर्तमान ट्रंक के साथ साथ pep-257-nn यह Mq पैदावार

class MyClass(object): 
    def my_method(self): 
     """Some long line with more than 70 characters in the docstring. 

     Some more text. 
     """ 
+0

मैंने https://launchpad.net/python-mode से python-mode.el 6.2.0 स्थापित किया है। 'Py-docstring-fill-column 'के साथ 70 पर सेट होने पर यह खाली रेखा के बाद" docstring "शब्द को ले जाता है। यह वह नहीं है जो मैं चाहता हूं। – holger

+0

@holger py-docstring-fill-column अनुकूलन योग्य है। पहली पंक्ति के बाद एक खाली रेखा होने के बाद लागू सभी शैलियों पर सहमति है। –

+0

सबसे पहले मैंने सोचा कि मैं 'py-docstring-style' को शून्य (सामान्य स्ट्रिंग की तरह डॉकस्ट्रिंग) सेट कर सकता हूं। लेकिन फिर मुझे एहसास हुआ कि खाली रेखा सभी तारों में डाली गई है, न केवल डॉकस्ट्रिंग्स। किसी भी स्ट्रिंग में रिक्त रेखा के लिए औचित्य क्या है? क्या अतिरिक्त खाली लाइनों के बिना शैली का अनुरोध करना समझदारी होगी? – holger

2

मेरा जवाब consi दो भागों के एसटीएस:

  1. यह python.el में एक बग है जो Emacs के साथ जहाजों। जीएनयू टिकट #20860 और #21254 देखें। वर्कअराउंड मैन्युअल रूप से डॉकस्ट्रिंग को प्रारूपित करना है।
  2. पहली पंक्ति एक वाक्य होनी चाहिए जो अधिकतम रेखा लंबाई से अधिक नहीं है, इसके बाद खाली रेखा होनी चाहिए। सभी कार्यान्वित डॉकस्ट्रिंग शैलियों (डीजेंगो, ओनेटो, पेप -257, पेप -257-एनएन, सममित) उस नियम का पालन करें। पहली वाक्य को उस मामले में लपेटने की आवश्यकता नहीं है और पहली पंक्ति परिभाषा के अनुसार बहुत लंबी नहीं हो सकती है।
संबंधित मुद्दे