]> git.eshelyaron.com Git - emacs.git/commit
Add 'case-symbols-as-words' to configure symbol case behavior
authorSpencer Baugh <sbaugh@catern.com>
Sat, 21 Oct 2023 15:09:39 +0000 (11:09 -0400)
committerEli Zaretskii <eliz@gnu.org>
Sun, 29 Oct 2023 11:32:43 +0000 (13:32 +0200)
commit5c8fc0b0594b1e3af43d86c0bc96e10d03bc75a2
tree37e56deacbaaa4492eff5c0211ec362dbfc1a409
parent3dca52dd422c50ebf24a304e7c3d36cf5f1c55cf
Add 'case-symbols-as-words' to configure symbol case behavior

In some programming languages and styles, a symbol (or every
symbol in a sequence of symbols) might be capitalized, but the
individual words making up the symbol should never be capitalized.

For example, in OCaml, type names Look_like_this and variable names
look_like_this, but it is basically never correct for something to
Look_Like_This.  And one might have "aa_bb cc_dd ee_ff" or "Aa_bb
Cc_dd Ee_ff", but never "Aa_Bb Cc_Dd Ee_Ff".

To support this, the new variable 'case-symbols-as-words' causes
symbol constituents to be treated as part of words only for case
operations.

* src/casefiddle.c (case_ch_is_word): New function.
(case_character_impl, case_character): Use 'case_ch_is_word'.
(syms_of_casefiddle): Define 'case-symbols-as-words'.
* src/search.c (Freplace_match): Use 'case-symbols-as-words'
when calculating case pattern.
* test/src/casefiddle-tests.el (casefiddle-tests--check-syms)
(casefiddle-case-symbols-as-words): Test 'case-symbols-as-words'.
* etc/NEWS: Announce 'case-symbols-as-words'.
* doc/lispref/strings.texi (Case Conversion): Document
'case-symbols-as-words'.
(Bug#66614)
doc/lispref/strings.texi
etc/NEWS
src/casefiddle.c
src/search.c
test/src/casefiddle-tests.el