ওভারলে কি?
প্রথমত, এগুলি এলিস্প অবজেক্ট। এটি পরে প্রাসঙ্গিক হবে।
যেমন আপনি নিজে বলেছিলেন, এগুলি স্তরগুলির প্রতিনিধিত্ব করে যা বাফারের অঞ্চলগুলির উপরে প্রযোজ্য। বাফারের আসল পাঠ্যের মতো এই স্তরগুলিরও পাঠ্য বৈশিষ্ট্য রয়েছে। ওভারলে থাকা যে কোনও নিয়মিত সম্পত্তি এটির নীচের পাঠ্যে প্রযোজ্য। যাইহোক, কিছু বৈশিষ্ট্য রয়েছে যা ওভারলেগুলির জন্য বিশেষ (তারা যদি পাঠ্যের উপর প্রয়োগ করা হয় তবে তারা কিছুই করে না)।
কেন তারা দরকারী?
দুটি কারণে আমি উপরের দিকে ইঙ্গিত করেছি:
তারা বস্তু
এর অর্থ আপনি এগুলিকে তালিকায় সঞ্চয় করতে পারেন এবং সহজেই তাদের পরিচালনা করতে পারেন। এখনই তারা কোথায় তা ট্র্যাক না করেই আপনি তাদের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন। আরও ভাল, আপনি বাফারগুলিতে জিনিসগুলি কোথায় রয়েছে সে সম্পর্কে নজর রাখতে আপনি এগুলি ব্যবহার করতে পারেন ।
স্টেফানের এই উত্তরটি বাফার অঞ্চলগুলি ট্র্যাক রাখতে ওভারলেগুলির একটি ভাল উদাহরণ। এটির একটি সংক্ষিপ্ত স্নিপেট এখানে।
(let ((ol (make-overlay beg end)))
(overlay-put ol 'evaporate t)
(overlay-put ol 'my--auto-align-regexp regexp)
(push ol my--auto-align-overlays))
কোন অঞ্চলগুলিকে সারিবদ্ধ করতে হবে এবং তাদের প্রতিটিটিতে কোনটি regexp ব্যবহার করবে তা রেকর্ড করতে এটি ওভারলেগুলি ব্যবহার করে। my--auto-align-overlays
হয়
ওভারলেগুলি সংরক্ষিত রয়েছে এমন একটি তালিকা এবং এই তালিকাটি দেখে তারা সুবিধামত অ্যাক্সেস করতে পারে।
বিপরীতে, আমরা যদি এর জন্য পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করতাম (যা সম্ভব) তবে আমাদের কাছে তাদের অ্যাক্সেসের কোনও সহজ উপায় নেই। পাঠ্যের বৈশিষ্ট্য অনুসন্ধান করতে আপনাকে বাফারটি বিশ্লেষণ করতে হবে।
তারা কিছুটা বেশি শক্তিশালী
কয়েকটি পাঠ্য-বৈশিষ্ট্য রয়েছে যা কেবল ওভারলেগুলিতে প্রভাব ফেলে। ম্যানুয়ালটিতে আপনি পুরো তালিকাটি খুঁজে পেতে পারেন
। এটি এখানে অন্তর্ভুক্ত করা খুব বড়, কিন্তু এখানে একটি সংক্ষিপ্ত হাইলাইট।
পূর্ব-স্ট্রিং
এই সম্পত্তিটির মান ওভারলে এর শুরুতে প্রদর্শনগুলিতে যুক্ত করার জন্য একটি স্ট্রিং। স্ট্রিংটি কোনও অর্থে বাফারে প্রদর্শিত হবে না - কেবল স্ক্রিনে।
লাইন উপসর্গ
এই সম্পত্তি প্রদর্শন সময় প্রতিটি অ-ধারাবাহিকতা লাইন প্রিপেন্ড করতে একটি ডিসপ্লে বিশেষ নির্দিষ্ট করে। কাটা দেখুন।
মোড়ানো-উপসর্গ
এই সম্পত্তি প্রদর্শন সময় প্রতিটি ধারাবাহিকতা রেখার জন্য preend করতে একটি প্রদর্শন নির্দিষ্ট নির্দিষ্ট করে। কাটা দেখুন।
বিশেষত, before-string
সম্পত্তি আপনাকে 0 প্রস্থের ওভারলে দিয়েও বাফারের প্রদর্শনকে প্রভাবিত করতে দেয়। কোনটি এমন কিছু যা আপনি পাঠ্য সম্পত্তি নিয়ে করতে পারবেন না। আপনি পাঠ্য বৈশিষ্ট্যগুলির সাথে যা কিছু করেন তা হয় বিদ্যমান পাঠ্য (যা এই পাঠ্যটি আড়াল করতে পারে) এর উপর দিয়ে যেতে হবে বা আপনি সন্নিবেশ করা পাঠ্যের একটি নতুন স্ট্রিংয়ের উপরে যেতে হবে (যা বাফারের আসল বিষয়বস্তুগুলিকে পরিবর্তন করে )।
সে সম্পর্কে এখানে একটি উদাহরণ স্নিপেট। এটি একটি অস্থায়ী বাফারে মূল্যায়ন করুন।
(overlay-put (make-overlay (point) (point)) 'before-string "Hi there!")
এরা কখন খারাপ?
ওভারলেগুলি পাঠ্যের বৈশিষ্ট্যের তুলনায় অনেক বেশি চাহিদা (প্রক্রিয়াকরণ বুদ্ধিমান) are কিছু প্রাসঙ্গিক ক্রিয়াকলাপ (যেমন পাঠ্য সন্নিবেশ, যদি আমার ভুল হয় না) একটি বাফারের ওভারলে সংখ্যার সাথে আনুপাতিক সময় নেয়। যে কারণে, যখন আপনার প্রচুর সংখ্যক প্রয়োজন হয় তখন এগুলি অনুপযুক্ত। এই ক্ষেত্রে আপনার পাঠ্য বৈশিষ্ট্য থেকে পদত্যাগ করা উচিত।
i text properties
।