আমি একটি ফাংশনটির একটি কার্যকারী উদাহরণ বেত্রাঘাত করেছি যা একটি স্ট্রিং নেয় এবং অস্থায়ীভাবে বাফার পাঠ্যের পরে টাইম আউট দিয়ে প্রদর্শন করে:
(defun my-momentarily-display-after-buffer-end (string &optional timeout)
(let ((ov (make-overlay (point-max) (point-max))))
(overlay-put ov 'after-string
(concat (propertize " " 'display
'(space :align-to (+ left-fringe 10)))
(propertize string 'display
'(raise -1))
"\n\n"))
(sit-for (or timeout 5))
(delete-overlay ov)))
নিম্নলিখিত জ্বলনের ফলে আপনার নিম্ন লাল বাক্সের উদাহরণ দেখা যাবে:
(my-momentarily-display-after-buffer-end "Nothing to see here...")
এটি কাজ করার কারণ হ'ল ওভারলেগুলি চিহ্নিতকারীদের মধ্যে অবস্থানের হিসাবে প্রদর্শিত হয়। দূরতম অবস্থান শুরু ও আস্তরণ শেষ হিসাবে আপনি পাঠ্য প্রদর্শন করতে সক্ষম হবেন ব্যবহার পর ব্যবহার করে এটি after-string
সম্পত্তি। যেহেতু ওভারলেগুলিতে যথাযথ পাঠ্য থাকতে পারে, তাই আমি এটিকে ইন্ডেন্ট করা এবং তার চারপাশের সাদা স্থানের জন্য এটি সেট আপ করেছি।
অন্য উদাহরণটি একই ধারণাটি লাইন শেষ হওয়ার পরে পাঠ্য প্রদর্শন করতে ব্যবহার করতে পারে:
(defun my-momentarily-display-after-line-end (string &optional timeout)
(let ((ov (make-overlay (line-end-position) (line-end-position))))
(overlay-put
ov 'after-string
(concat (propertize " " 'display
`(space :align-to (- right-fringe
,(1+ (length string)))))
string))
(sit-for (or timeout 5))
(delete-overlay ov)))
নিম্নলিখিত অনুরোধটি আপনার ডান পাশের লাল বাক্সের উদাহরণ হিসাবে দেখাবে:
(my-momentarily-display-after-line-end "annotation")
আপনি আরও বেশি পাগল হয়ে যেতে পারেন এবং বাফার পাঠ্য থেকে এই ওভারলেগুলি পৃথক করতে মুখগুলি যুক্ত করতে পারেন, একটি টাইমআউটের চেয়ে এগুলি আরও দীর্ঘ প্রদর্শন করতে পারেন, তাদের অবস্থানটি সামঞ্জস্য করতে পারেন, খালি জায়গা নেই কিনা তা সনাক্ত করুন এবং যথাযথ পাঠ্যের সাধারণ ওভারলেগুলি ব্যবহার করুন ইত্যাদি I সংস্থা-মোডের উত্স কোড
কারণ এটি খুব পাঠযোগ্য এবং প্রস্তাবিত বৈশিষ্ট্যগুলি সহ একটি নমনীয় পপআপ মেনু তৈরি করতে ওভারলেগুলির আরও বিস্তৃত (এবং বেশিরভাগ বাগফ্রি) ব্যবহার প্রদর্শন করে।