यदि आप C / C ++ / Java / Emacs Lisp / Python लिख रहे हैं, तो सिमेंटिक-स्टिकी-फंक-मोड वही करेगा जो आप चाहते हैं।
नोट : ऐसा लगता है कि GED से CEDET के साथ काम कर रहा है, वर्तमान में Emacs 24.4 में CEDET का स्टॉक नहीं है। Git से Emacs प्राप्त करने के लिए:
git क्लोन http://git.code.sf.net/p/cedet/git cedet
और CEDET को अपनी init फाइल में अन्य सभी चीजों से पहले लोड करें:
(load-file (concat user-emacs-directory "/cedet/cedet-devel-load.el"))
(add-to-list 'load-path (concat user-emacs-directory "cedet/contrib"))
(load-file (concat user-emacs-directory "cedet/contrib/cedet-contrib-load.el"))
जब सक्षम होता है, तो यह मोड दिखाता है कि फ़ंक्शन बिंदु वर्तमान में वर्तमान बफर की पहली पंक्ति में है। यह तब उपयोगी होता है जब आपके पास एक बहुत लंबा कार्य होता है जो स्क्रीन से अधिक फैलता है, और आपको फ़ंक्शन का नाम पढ़ने के लिए स्क्रॉल नहीं करना पड़ता है और फिर मूल स्थिति तक नीचे स्क्रॉल करना पड़ता है।
यह पूर्ण फ़ंक्शन इंटरफ़ेस (रिटर्न प्रकार, फ़ंक्शन नाम और पैरामीटर) प्रदर्शित करता है , न कि केवल फ़ंक्शन नाम।
इसे सक्षम करने के लिए, इस कोड को अपनी इनिट फ़ाइल में डालें:
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
अद्यतन : वर्तमान के साथ एक समस्या semantic-stickyfunc-mode
यह है कि यह सभी मापदंडों को प्रदर्शित नहीं करता है जो कई लाइनों पर बिखरे हुए हैं। इस समस्या को हल करने के लिए, मैंने पैकेज चिपचिपा-वृद्धि का पैकेज बनाया ।
डेमो :
यहाँ C में एक डेमो है:
यहाँ Emacs लिस्प में एक डेमो है:
UPDATE : वैकल्पिक रूप से, आप helm-semantic-or-imenu का उपयोग कर सकते हैं । जब आप किसी फ़ंक्शन के अंदर होते हैं और कमांड चलाते हैं, तो कर्सर को सूची में फ़ंक्शन पर सही स्थान पर रखा जाता है, जिससे आप हमेशा पूर्ण फ़ंक्शन इंटरफ़ेस देख सकते हैं। डेमो:
सबसे पहले, मैं helm-semantic-or-imenu
फंक्शन में जाने के लिए helm-define-key-with-subkeys
और वहां पॉइंट को स्थानांतरित करने के लिए उपयोग करता हूं ।
फिर, मैं फिर helm-semantic-or-imenu
से शुरू करता हूं और helm-define-key-with-subkeys
पूर्व-चयनित हूं ।
फिर, मैं चर हेलम-मैप को इंगित करता हूं और helm-semantic-or-imenu
दो फ़ंक्शन पर फिर से निष्पादित करता हूं : हेल्म-नेक्स्ट-सोर्स और हेल्म-पिछले-सोर्स। इस बार, मैं वर्तमान शब्दार्थ टैग को दिखा रहा हूँ, जो (जो कि helm-map है) में चल रहा है, यह Helm Semantic बफर में अन्य दो टैग दिखाता है। ऐसा इसलिए है क्योंकि मैंने कमांड चलाने से पहले एक उपसर्ग तर्क दिया।
इसके अलावा यह डेमो Emacs Lisp में है, यह C / C ++ के लिए भी काम करता है और यह अधिक लचीला है यदि आपको वास्तव में लंबा फंक्शन इंटरफ़ेस मिला है।