कंपनी-मोड के साथ प्रलेखन बफर पर जाएं


10

मैंने हाल ही में स्विच किया auto-complete-modeहै company-modeऔर मुझे मज़ा आ रहा है। हाल ही में मुझे कुछ Emacs Lisp कोड लिखना पड़ा। मैं अपने कार्य को टाइप करना शुरू करता हूं, पूरा होने वाले उम्मीदवारों को दिखाया जाता है, मैं दबाता हूं F1और दस्तावेज दूसरे बफर में खुलता है। मैं प्रलेखन बफर में कूदना चाहूंगा , लेकिन, जैसा कि मैं लिखता हूं C-x oकि यह बंद हो जाता है। कोई संकेत?

जवाबों:


8

मुझे ऐसा करने के लिए कंपनी-मोड में बनाया गया तरीका नहीं दिखता है, लेकिन आप अपनी खुद की कुंजी को जोड़ सकते हैं company-active-map

एक त्वरित प्रयोग के रूप में मैंने company-show-doc-bufferकार्यान्वयन लिया और बस company--electric-doआवरण हटा दिया :

(defun my/company-show-doc-buffer ()
  "Temporarily show the documentation buffer for the selection."
  (interactive)
  (let* ((selected (nth company-selection company-candidates))
         (doc-buffer (or (company-call-backend 'doc-buffer selected)
                         (error "No documentation available"))))
    (with-current-buffer doc-buffer
      (goto-char (point-min)))
    (display-buffer doc-buffer t)))

आप इसे दूसरी कुंजी से बांध सकते हैं, उदाहरण के लिए C-F1, "स्थायी रूप से" डॉक्टर बफर खोलें:

    (define-key company-active-map (kbd "C-<f1>") #'my/company-show-doc-buffer)

बस पूर्णता के लिए: यहाँ मैं GitHub परियोजना के भंडार पर खोला गया मुद्दा है, और उन्होंने इस रास्ते पर जाने का सुझाव दिया।
पेट्रूक्स

यदि आप चाहते हैं कि इस विंडो को भी चयनित किया जाए, तो मैं अपना छोटा सा ट्वीक पोस्ट करना चाहता था (डिफॉन माय-कंपनी-शो-डॉक्स-बफर) "अस्थायी रूप से चयन के लिए डॉक्यूमेंटेशन बफर दिखाओ।" (इंटरेक्टिव) (लेट * ((चयनित) (nth कंपनी-चयन कंपनी-उम्मीदवार)) (doc-बफर (या (कंपनी-कॉल-बैकेंड doc-बफर चयनित)) (त्रुटि "कोई दस्तावेज उपलब्ध नहीं है"))) (साथ-वर्तमान-बफर doc- बफर (गोटो) -चर (बिंदु-मिनट))) (चयन-विंडो (प्रदर्शन-बफर डॉक्टर-बफर टी)))
सैंड्रिक

4

कंपनी-मोड की ऑटो-पूर्ण से तुलना करने वाले पृष्ठ पर लेखक की टिप्पणी :

जब आप कंपनी मोड में F1 दबाते हैं तो क्या होता है

यह मदद बफर को प्रदर्शित करने के लिए पॉप-टू-विंडो का उपयोग करता है, लेकिन इसे अगले कमांड से पहले छुपाता है (जब तक कि यह कमांड स्क्रॉल-अन्य-विंडो या स्क्रॉल-अन्य-विंडो-डाउन नहीं है)।

उसके आधार पर, आप केवल दस्तावेज़ी बफर को स्क्रॉल कर सकते हैं, उस पर कूद नहीं सकते।

लेकिन, के लिए कोड को देखते हुए company-show-doc-buffer, मैंने देखा कि यह उपयोग करता है company--electric-do, जो कि अंतःक्रियात्मक रूप से किसी भी कमांड को कॉल करेगा company--electric-commands। आम तौर पर, इसमें केवल scroll-other-windowऔर होता है scroll-other-window-down, लेकिन शायद आप other-windowउस सूची में जोड़ सकते हैं ।


मैंने सिर्फ इस तरह का परीक्षण किया है: (defvar company--electric-commands '(scroll-other-window scroll-other-window-down other-window) "List of Commands that won't break out of electric commands.")लेकिन यह काम नहीं करता है। जैसे ही मैं C-...मदद बफ़र बंद करता हूं टाइप करता हूं । वही (add-to-list 'company--electric-commands 'other-window)मेरी इनिट फ़ाइल में डाल रहा है।
पेट्रोक्स 14

हाँ, कंपनी की तरह दिखता है - save-window-excursionविंडो कॉन्फ़िगरेशन को बचाने / पुनर्स्थापित करने के लिए इलेक्ट्रिक-डू का उपयोग करता है, इसलिए यह काम नहीं करेगा। आप अपने 'शो डॉक्टर' कमांड को एक कुंजी में बांधने से बेहतर हो सकते हैं company-active-map
ग्लूकोज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.