Hi Gustavo,
Gustavo Barros <[email protected]> writes:
> `TeX-symbol-list' is sorted by AUCTeX using `TeX-car-string-lessp'
> which uses internally `string-lessp'. However, `string-lessp' sorts
> all entries starting with an uppercase letter, in a block, before the
> ones starting with a lowercase one. This is not really ideal for
> `TeX-symbol-list', given some traditional naming conventions of
> LaTeX. First, lowercase macros tend to be user facing more frequently
> used ones, so it would make sense they were sorted first.
I'm not sure if I understand your suggestion correctly since I don't
think that the return value of the function `TeX-symbol-list' is to be
exposed to users directly.
> Second the common idiom of `\macro', with a `\Macro' version for start
> of sentence use, also does not work that well. Again, `\macro' is
> probably used more frequently. Furthermore, ideally these two should
> be next to each other on the list, and they are currently far
> apart.
Again, why should we care from a user perspective?
For me, it is a task for the completion system to respect or ignore the
case and/or sort the candidates. Maybe you just want to adjust the
variable `completions-sort'. Example:
(let ((completions-sort (lambda (list)
(sort list #'string-collate-lessp))))
(completing-read "Macro: "
'("declare"
"declarefoo"
"Declare"
"DeclareRobustCommand")))
Is this what you're looking after?
> Considering the popularity of vertical completion systems and the
> common use of case-fold this complicates unnecessarily the task.
Things get even more complicated when you're using vertico for example
which also cater for history and length of candidates. So again, I
don't think the sorting of the candidates input is relevant.
Best, Arash