HeadlinesBriefing favicon HeadlinesBriefing.com

শূন্য থেকে কাস্টম টেক্সট এডিটর তৈরি করা

Hacker News •
×

আধুনিক সফটওয়্যার গুণমানের নিরাশা এবং 'They don't make 'em like Sublime Text anymore' এর অনুভূতিতে অনুপ্রাণিত, লেখকটি একটি কাস্টম টেক্সট এডিটর তৈরি করার যাত্রা শুরু করেছেন। যাত্রাটি <canvas>, contenteditable এবং <textarea> তিনটি রেন্ডারিং পদ্ধতির অন্বেষণ করে।

<canvas> এর প্রাথমিক পরীক্ষা 60–120 FPS রেন্ডারিং অর্জন করেছিল কিন্তু নেটিভ ইন্টারঅ্যাকশন की कमी ছিল। কার্সর পজিশনিং, টাইপিং এবং লাইন হাইলাইটিং जैसी মৌলিক বৈশিষ্ট্যগুলো বাস্তবায়ন করলে প্রয়োজনীয় উপাদানগুলো অনুপস্থিত পেল: টেক্সট সিলেকশন, undo/redo, এবং ওভারফ্লো স্ক্রোলিং। একটি হাইব্রিড সমাধান যেখানে নেটিভ স্ক্রোল গণনা জন্য লুকানো <div> ব্যবহার করা হয়েছিল, স্ক্রোলিং উন্নত করেছিল কিন্তু <canvas> মৌলিকভাবে অপ্রাপ্য ছিল।

contenteditable="plaintext-only"-এ स्विच করার ফলে নেটিভ সিলেকশন, undo ইতিহাস এবং বিনামূল্যে অ্যাক্সেসিবিলিটি পাওয়া গেল। Selection API ने कस्टम कर्सर রেন্ডারিং সক্ষম করা, যদিও বড় ফাইলগুলে অপ্রত্যাশিতভাবে কর্মক্ষমতা কমে গেল, বিশেষ করে Chromium-এ।

শেষে, <textarea> পদ্ধতির দীর্ঘ টেক্সটের জন্য অনেক বেশি কর্মক্ষমতা সাবूत হয়েছিল। সিনট্যাক্স হাইলাইটিংকে Micro Lighter ব্যবহার করে তৃতীয় স্তর যোগ করে যোগ করা হয়েছিল, যদিও নতুন Opaque Range API নেটিভ হাইলাইট সক্ষম করতে পারে। লেখক উল্লেখ করেছেন যে Tree-sitter এবং ভার্চুয়ালাইজড স্ক্রোলিং রোবস্টনেস উন্নত করতে পারে, কিন্তু স্বীকার করেছেন যে বর্তমান ডেমো "90% টেক্সট এডিটর, 1% ফিচার" প্রতিনিধিত্ব করে।

মुख্য entidades: কোম্পানিগুলো: Apple, Chromium, Web Kit, Firefox