ইমাক্সে সমস্ত সংকলন ত্রুটিগুলি বিশেষত হ্যাসেল-মোডে হাইলাইট করার জন্য কি কোনও ভাল উপায় আছে?
ফাংশন next-error
( C-x `) কেবলমাত্র একটি ত্রুটি হাইলাইট করে, তবে এটি match-data
ত্রুটিটিতে সেট করে না , অন্তত এর haskell-mode
সাথে haskell-interactive-mode-next-error
। এমনকি কম সহায়কভাবে, এটি (error "No more errors")
শেষ ত্রুটিতে কল করে, তাই আমি মনে করি এটি কেবল ইন্টারেক্টিভভাবে বলা হবে।
প্রতিটি সংকলনের ত্রুটিতে হাইলাইট ওভারলেগুলি তৈরি করার জন্য আমি নিম্নলিখিতটি করেছি, তবে এটি সত্যিই আটকানো এবং অবিশ্বস্ত। next-error-function
সংকলন মোড ( haskell-interaction-mode
আমার ক্ষেত্রে) দ্বারা সংজ্ঞায়িত বলে মনে করা হয় ; রিটার্নে ম্যাচ-ডেটা কিছু স্ট্রিংয়ের দিকে নির্দেশ করে। আমি compilation-highlight-overlay
পরবর্তীটি ত্রুটি তৈরি করে ওভারলেটি পেতে ভেরিয়েবলটি ব্যবহার করি ।
(let (buf (just-started t) errors overlays)
;; Ask next-error to create all the highlighting overlays, save
;; their locations, then delete them, use the locations to
;; create our own overlays.
(ignore-errors
(when (setq buf (next-error-find-buffer))
(save-match-data
(save-excursion
(dotimes (max-iter 10)
(with-current-buffer buf
(funcall next-error-function 1 just-started)
(setq just-started nil)
(let* ((o compilation-highlight-overlay)
(start (overlay-start o)) (end (overlay-end o)))
;; (message "Found (%s,%s)" start end)
(push (cons start end) errors)
(push o overlays))))))))
(mapc 'delete-overlay overlays)
(dolist (err errors)
(let ((o (make-overlay (car err) (cdr err))))
(overlay-put o 'category 'error-highlight))))
এটি করার কোনও প্রকার প্রৌ ?় উপায় আছে?