পাইথন ডকস্ট্রিং-এ পূর্ণ অনুচ্ছেদে ট্রিপল-কোটগুলি পৃথক লাইনে ছেড়ে যান


16

আমি এক লাইনে সমস্ত অজগরকে এইভাবে টাইপ করি:

"""
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.
"""

এবং তারপরে আমি এমকিউ ( fill-paragraph) -কে আঘাত করি এবং আমি এটি পেয়েছি:

"""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.

"""

এর সাথে আমার দুটি সমস্যা আছে:

  1. ডক্ট্রিংটি একই লাইনে শুরু হয় """- আমি ট্রিপল-কোটের নিজস্ব লাইনে থাকতে চাই।
  2. (অনেক নিম্ন অগ্রাধিকার।) ডক্ট্রাস্টিংটি ফাঁকা রেখার সাথে শেষ হয়।

উপরের উদাহরণটি রূপান্তরিত, তবে আমি প্রায়শই এটির মধ্যে উপস্থিত হই বিশেষত বিদ্যমান ডকাস্ট্রিংগুলিতে সম্পাদনা করার সময় যেখানে আমি কেবল চাই M-qএবং পুরো প্যারাটি পুনরায় সাজাতে চাই।

উত্তর:


15

python-fill-docstring-styleসেই অনুযায়ী কাস্টমাইজ করুন , অনুমান করে যে আপনি ইম্যাক্স 24.4 এ বিল্ট-ইন পাইথন মোড ব্যবহার করছেন। ডিফল্টটি হ'ল pep-257যা আপনি পর্যবেক্ষণ করা স্টাইলের দিকে নিয়ে যান, অর্থাত্ শুরুর দিকে কোনও নিউলাইন এবং একটি ডকাস্ট্রিং শেষ হওয়ার আগে দুটি নতুন লাইন।

পাইথন মোডটি আপনার পছন্দসই স্টাইলটি মেনে চলার জন্য এই পরিবর্তনশীলটি পরিবর্তন করুন symmetricবা djangoডাস্ট্রিংয়ের শুরুতে একটি নতুন লাইন এবং শেষের আগে একটি নতুন লাইন:

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

বিকল্পভাবে, প্রতিটি প্রকল্পের জন্য স্বতন্ত্রভাবে ডকস্ট্রিং স্টাইলটি কনফিগার করতে ডিরেক্টরি ভেরিয়েবলগুলির মাধ্যমে সেট করুন ।

symmetricএবং djangoবিভিন্ন একক লাইন ডকোস্ট্রিং বিভিন্ন। প্রাক্তন একই লাইনে ট্রিপল উদ্ধৃতি রাখে যদি কোনও ডাস্ট্রিং একটি লাইনের সাথে ফিট করে, তবে পরেরটি এই ক্ষেত্রে পৃথক লাইনে ট্রিপল কোট রাখে।

সমস্ত উপলভ্য বিকল্প দেখতে ডাস্ট্রিংয়েরpython-fill-docstring-style দিকে একবার দেখুন ।


-1

শেষে খালি লাইনটি লিখুন, এটি একটি সরল বাগের মতো দেখাচ্ছে, দয়া করে এটির প্রতিবেদন করুন M-x report-emacs-bug। তবে প্রথম উপাদানটির জন্য, আমি নিশ্চিত নই যে এটি কোনও বাগ বা কোনও বৈশিষ্ট্য কিনা, তাই আপনি এটি আপনার বাগের প্রতিবেদনে উল্লেখ করতে চাইতে পারেন, তবে সম্ভবত উত্তরটি হ'ল এটি কেবল "পিইপি-এনএনএন" কনভেনশন অনুসরণ করছে।

এটি বলেছে, আপনি নিম্নলিখিতগুলির সাথে প্রথম সমস্যাটি সমাধান করতে সক্ষম হতে পারেন:

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

1
এটি কোনও ত্রুটি নয়, আপনার কোনও পরিবর্তন করার দরকার নেই paragraph-separate। এর ডক্ট্রিং স্টাইলটি python.elঅনুকূলিতাপূর্ণ।
লুনারিওর

বাহ, আমি কখনই অনুমান করিনি যে ডক্টরসিংয়ের শেষে অতিরিক্ত খালি লাইনটি কোনও মানক দ্বারা প্রয়োগ করা হতে পারে।
স্টিফান

1
মানক (পিইপি 257) আসলে এটি প্রয়োগ করে না, এটি এটির (সাধারণ) ব্যাখ্যা। এ গিয়ে Emacs এছাড়াও, একটি trailing সম্পর্কে newline ছাড়া বৈকল্পিক সমর্থন যেমন pep-257-nnমধ্যে python-fill-docstring-style
লুনারিওর

1
হাস্যকরভাবে, ফাঁকা লিঙ্কটির কারণ হ'ল: সম্পূর্ণ ডকস্ট্রিং একটি লাইনে ফিট না হলে ক্লোজিং কোটগুলি নিজেরাই একটি লাইনে রাখুন। এইভাবে, ইমাক্সের ফিল-প্যারাগ্রাফ কমান্ডটি এতে ব্যবহার করা যেতে পারে।
ফিলিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.