একটি বড় মোড লেখার সময়, এটি প্রায়শই জানা দরকারী যে 'স্ট্রিংয়ের বিন্দুটি?' 'একটি মন্তব্যে বিন্দু?'
বেশিরভাগ প্রধান মোডগুলি প্রোগ্রামিং ভাষার পার্স করার চেষ্টা করছে বলে মনে হয়। উদাহরণ স্বরূপ:
python-syntax-content
কলsyntax-ppss
haskell-fill-paragraph
কলsyntax-ppss
এবংre-search-forward
c-in-comment-line-prefix-p
চারপাশে এবং কল কল সরানlooking-at
sp-point-in-comment
কল করেsyntax-ppss
কিন্তু এটি কোনও মন্তব্য ডেলিমেটারে রয়েছে কিনা তাও পরীক্ষা করে
তবে এটি কিছু ক্ষেত্রে কার্যকর হয় না। Org- মোড বাফারগুলিতে, সোর্স ব্লকের মন্তব্যগুলি এই পদ্ধতির দ্বারা সঠিকভাবে সনাক্ত করা যায় না।
এটিও অর্থহীন বলে মনে হচ্ছে, যেহেতু বাফার ইতিমধ্যে হাইলাইট করা মন্তব্যগুলি দেখাচ্ছে ।
পরিবর্তে, আপনি কেবল বিন্দুতে মুখগুলি পরীক্ষা করতে পারবেন:
(defun wh--get-faces (pos)
"Get all the font faces at POS."
(remq nil
(list
(get-char-property pos 'read-face-name)
(get-char-property pos 'face)
(plist-get (text-properties-at pos) 'face))))
(defun wh-string-p (pos)
"Return non-nil if POS is inside a string."
(memq 'font-lock-string-face (wh--get-faces pos)))
প্রধান মোডগুলি কেন এটি করে না? বাফারটি ইতিমধ্যে স্বীকৃত, তাই আমি এটি দ্রুত, আরও শক্তিশালী এবং কম কোডের প্রয়োজন হবে বলে আশা করব।
font-lock-mode
? (এমন নয় যে আমার মনে হয় আপনার উচিত।)