जहां तक मैं emacs में जानता हूं, सी ++ में टेम्पलेट सूची के समापन '>' चरित्र के इंडेंटेशन स्तर को अनुकूलित करने का कोई तरीका नहीं है।सी ++ टेम्पलेट्स और एमएक्स: इंडेंटेशन को अनुकूलित करना
template <
typename T1,
typename T2,
typename T3
>
class X;
कुछ इस तरह मैं क्या चाहते हैं:: वर्तमान में मेरी Emacs खरोज योजना करता
template <
typename T1,
typename T2,
typename T3
>
class X;
मांगपत्र चर टेम्पलेट आर्ग-शेष भाग शून्य करने के लिए '>' चरित्र ठीक से इंडेंट होगा स्थापना, लेकिन टेम्पलेट तर्क सूची के वास्तविक निकाय को अनइंडेंट करने की लागत पर।
वहां emacs गुरुओं से कोई सुझाव?
संपादित करें:
मैं इसे कुछ निम्नलिखित हैक के साथ काम मिल गया:
(defun indent-templates (elem)
(c-langelem-col elem t)
(let ((current-line
(buffer-substring-no-properties
(point-at-bol) (point-at-eol))))
(if (string-match-p "^\\s-*>" current-line)
0
'+)))
और फिर टेम्पलेट आर्ग-शेष भाग की स्थापना इंडेंट-टेम्पलेट्स के लिए अपने कस्टम विषय में, आला:
(c-add-style "my-style"
'("stroustrup"
;; ... Other stuff ...
(template-args-cont . indent-templates))))
लेकिन यह अभी भी बहुत छोटी है। यह ज्यादातर समय काम करता है, लेकिन कभी-कभी emacs भ्रमित हो जाता है यह सोचता है कि एक टेम्पलेट सूची एक arglist है, और फिर Hilarity ensues।
मुझे यकीन नहीं है कि यह संभव है, लेकिन यदि आप इस पृष्ठ पर जानकारी पा सकते हैं: http://www.gnu.org/software/emacs/manual/html_mono/ccmode.html#Customizing- इंडेंटेशन – rve
असल में , मुझे लगता है कि यदि आप अपना खुद का लाइन-अप फ़ंक्शन लिखते हैं तो यह संभव हो सकता है। मेरी पिछली टिप्पणी से दस्तावेज़ इस पर अधिक जानकारी देता है। – rve
ध्यान दें कि Emacs C++ - मोड समय-समय पर टेम्पलेट तर्कों के बारे में उलझन में पड़ता है, इसलिए यह वास्तव में आपके कोड में कोई समस्या नहीं हो सकती है ... [निष्पक्ष होने के लिए, वास्तव में सही होने के लिए यह बहुत मुश्किल है, क्योंकि कई अर्थों के कारण '<' and '>' सी ++ में (कभी-कभी एक संतुलित डिलीमीटर के रूप में, कभी-कभी ऑपरेटर के रूप में), जब तक कि आप सी ++ से अधिक वास्तविक पार्सिंग नहीं करते हैं - मोड करता है ...] – snogglethorpe