ফ্লাইস্পেল-মোড এবং ফ্লাইস্পেল-বাফারে কীভাবে {{{…}} exc কে বাদ দেবেন?


11

আমি আমার ইম্যাকগুলিতে মইনমাইনউইকি পৃষ্ঠাগুলি অনেকগুলি সম্পাদনা করি এবং এটি পছন্দ করি flyspell-mode{{{...}}}(একাধিক লাইনে) প্রিফর্ম্যাটড স্টাফ পাশাপাশি "ব্যাকটিক টেক্সট ব্যাকটিক" এ সাধারণত প্রোগ্রামিং কোডের স্নিপেট থাকে যা বানান চেক করার কোনও মানে করে না।

আমি কি প্রোগ্রামিং কোডটি অন্তর্ভুক্ত করতে ispell/ কনফিগার করতে পারি flyspell?

উদাহরণ:

Bla bla lorem ipsum die Standardcontainer wie `vector` eine
''Methode'' haben, die ein einzelnes Argument nimmt, also
`vector<T>::swap(vector<T)>&)`. Bla bla und diese `swap`-Methoden sind
von dieser Sorte. Warum das so ist, sehen wir gleich. Bla bla
was '''kanonisch''' ist bla bla Template-Funktion<<tlitref(stdswap)>>

{{{#!highlight c++ title="Man könnte 'std::swap@LT@@GT@' spezialisieren"
namespace std {
  template<> // wir können durchaus im namespace std spezialisieren
  void swap<Thing>(Thing&, Thing&) {
    // ...hier swappen...
  }
}
}}}

Nun, das würde sicherlich in diesem Fall helfen, doch es bleibt ein
größeres Problem: Eine teilweise Spezialisierung lorem ipsum bla bla

উত্তর:


15

ভেরিয়েবল ispell-skip-region-alistআপনি বাফারটি পরীক্ষা করে যখন বাফারটি চান তা করেন তবে ফ্লাইস্পেলের জন্য নয়। যেমন একটি এন্ট্রি যোগ করুন

(add-to-list 'ispell-skip-region-alist
             '("^{{{" . "^}}}"))

দুর্ভাগ্যক্রমে, নির্দিষ্ট অঞ্চলগুলিকে উপেক্ষা করার জন্য ফ্লাইস্পেল পাওয়া এত সহজ নয়। আপনাকে flyspell-generic-check-word-predicateএকটি ফাংশন যা ব্যবহার করতে হবে । বেশ কয়েকটি মোড ইতিমধ্যে এটি সংজ্ঞায়িত করেছে যাতে আপনাকে সেই ফাংশনগুলির জন্য পরামর্শ হিসাবে নিম্নলিখিতটি যুক্ত করতে হবে। আমি সরলতার জন্য ধরে নিব যদিও আপনি এমন একটি মোড ব্যবহার করছেন (আমি text-modeনীচে ব্যবহার করেছি ) যার সংজ্ঞা দেওয়া হয়নি। তারপরে আপনি আপনার .emacs এ নিম্নলিখিতগুলি যুক্ত করতে পারেন:

(defun flyspell-ignore-verbatim ()
  "Function used for `flyspell-generic-check-word-predicate' to ignore {{{ }}} blocks."
  (save-excursion
    (widen)
    (let ((p (point))
          (count 0))
      (not (or (and (re-search-backward "^{{{" nil t)
                    (> p (point))
                    ;; If there is no closing }}} then assume we're still in it
                    (or (not (re-search-forward "^}}}" nil t))
                        (< p (point))))
               (eq 1 (progn (while (re-search-backward "`" (line-beginning-position) t)
                              (setq count (1+ count)))
                            (- count (* 2 (/ count 2))))))))))
(put 'text-mode 'flyspell-mode-predicate 'flyspell-ignore-verbatim)

পারফেক্ট! আমার মোড-লাইন ড (Fundamental Fly)। এটি হুকিং flyspell-modeকাজ করে না, fundamental-modeপরিবর্তে text-modeসূক্ষ্ম বলে মনে হচ্ছে।
তোয়াই

হুম ... আমি কিভাবে এটা হ্যান্ডেল করলাম উভয়: ^{{{... ^}}}Regex এবং ব্যাকটিক-শব্দ-ব্যাকটিক এক?
তোয়াই

আমি ব্যাকটিক-পাঠ্য-ব্যাকটিকের জন্য সমর্থন যুক্ত করেছি। এটি ধরে নেওয়া হয় যে এই জাতীয় বিবৃতিগুলি কেবল একটি লাইনে প্রদর্শিত হবে — এটির আগে লাইনটিতে একটি বা বিচিত্র সংখ্যক ব্যাকটিক রয়েছে কিনা তা গণনা করে।
ইভান অ্যান্ডরাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.