Преобразование из верблюжьего регистра в _ в emacs

Есть ли функция emacs для преобразования слова с верблюжьим регистром в подчеркивание? Что-то вроде:

longVariableName

Mx to-underscore

long_variable_name

25
задан Zachary Young 15 April 2016 в 22:38
поделиться

1 ответ

ответ @ens' был близким, но небольшим багги для меня на Emacs 26.1. Я исправил ошибку и добавил способность через аргумент префикса C-u, определить, хотите ли Вы, чтобы первая буква Camel-регистра была нижним регистром:

(defun toggle-camelcase-underscores (first-lower-p)
  "Toggle between camelcase and underscore notation for the
symbol at point. If prefix arg, C-u, is supplied, then make first
letter of camelcase lowercase."
  (interactive "P")
  (save-excursion
    (let* ((bounds (bounds-of-thing-at-point 'symbol))
           (start (car bounds))
           (end (cdr bounds))
           (currently-using-underscores-p (progn (goto-char start)
                                                 (re-search-forward "_" end t))))
      (if currently-using-underscores-p
          (progn
            (replace-string "_" " " nil start end)
            (upcase-initials-region start end)
            (replace-string " " "" nil start end)
            (when first-lower-p
              (downcase-region start (1+ start))))
        (replace-regexp "\\([A-Z]\\)" "_\\1" nil (1+ start) end)
        (downcase-region start (cdr (bounds-of-thing-at-point 'symbol)))))))
0
ответ дан 28 November 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: