From: "ioquatix (Samuel Williams)" <noreply@...> Date: 2022-09-23T07:42:14+00:00 Subject: [ruby-core:110038] [Ruby master Feature#18296] Custom exception formatting should override `Exception#full_message`. Issue #18296 has been updated by ioquatix (Samuel Williams). Status changed from Open to Closed I'm satisfied that this has been fully addressed and the design is much better. Thanks everyone. ---------------------------------------- Feature #18296: Custom exception formatting should override `Exception#full_message`. https://bugs.ruby-lang.org/issues/18296#change-99289 * Author: ioquatix (Samuel Williams) * Status: Closed * Priority: Normal ---------------------------------------- After discussing with @eregon, we came to the conclusion that the current implementation of `did_you_mean` and `error_highlight` could avoid many issues by using `Exception#full_message`. We propose to introduce a more nuanced interface: ```ruby class Exception def full_message(highlight: bool, order: [:top or :bottom], **options) # ... end end module DidYouMean module Formatter def full_message(highlight:, did_you_mean: true, **options) buffer = super(highlight: highlight, **options).dup buffer << "extra stuff" end end end Exception.prepend DidYouMean::Formatter module ErrorHighlight module Formatter def full_message(highlight:, error_highlight: true, **options) # same as above end end end Exception.prepend ErrorHighlight::Formatter ``` -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>