bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#35689: Customizable char-fold


From: Lars Ingebrigtsen
Subject: bug#35689: Customizable char-fold
Date: Mon, 24 Jun 2019 19:33:45 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Juri Linkov <juri@linkov.net> writes:

> -(defconst char-fold-table

[...]

> +(defcustom char-fold-symmetric char-fold--symmetric-default
> +  "Include symmetric mappings from composite character back to base letter."
> +  :type 'boolean
> +  :initialize #'custom-initialize-changed
> +  :set (lambda (sym val)
> +         (set-default sym val)
> +         ;; FIXME: Maybe delay this until after-init-hook,
> +         ;; to avoid redundant calls to char-fold-make-table.
> +         (setq char-fold-table (char-fold-make-table)))

OK, here's an uninformed suggestion -- instead of doing all this to
ensure that we have an updated char-fold-table when the user changes
these defaults, why not call char-fold-make-table when needed?

That is, instead of the char-fold-table variable, you'd have a
char-fold-data, which could be, say, something like this:

(defvar char-fold-data :uninitialized)

`char-fold-to-regexp' (and others) would then start with a call to
char-fold-update which would 

be

(let ((new (list :additional char-fold--include-alist-default
                 :exclude char-fold--exclude-alist-default
                 ...)))
  (unless (equal char-fold-data new)
    (setq char-fold-table (char-fold-make-table)
          char-fold-data new)))

or something along those lines.  That is, check whether anything has
changed, and if not, do nothing, but if it has, recompute?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





reply via email to

[Prev in Thread] Current Thread [Next in Thread]