string-inflection
string-inflection copied to clipboard
underscore -> UPCASE -> CamelCase conversion of names
- underscore -> UPCASE -> CamelCase conversion of names
[[https://github.com/akicho8/string-inflection/blob/master/HISTORY.org][Change History]]
** Configuration Examples
*** Example 1
#+BEGIN_SRC elisp (require 'string-inflection)
;; C-q C-u is similar to the keybinding used by Vz Editor. (global-unset-key (kbd "C-q")) (global-set-key (kbd "C-q C-u") 'my-string-inflection-cycle-auto)
(defun my-string-inflection-cycle-auto () "switching by major-mode" (interactive) (cond ;; for emacs-lisp-mode ((eq major-mode 'emacs-lisp-mode) (string-inflection-all-cycle)) ;; for python ((eq major-mode 'python-mode) (string-inflection-python-style-cycle)) ;; for java ((eq major-mode 'java-mode) (string-inflection-java-style-cycle)) ;; for elixir ((eq major-mode 'elixir-mode) (string-inflection-elixir-style-cycle)) (t ;; default (string-inflection-ruby-style-cycle)))) #+END_SRC
*** Example 2
#+BEGIN_SRC elisp (require 'string-inflection)
;; default (global-set-key (kbd "C-c C-u") 'string-inflection-all-cycle)
;; for ruby (add-hook 'ruby-mode-hook '(lambda () (local-set-key (kbd "C-c C-u") 'string-inflection-ruby-style-cycle)))
;; for elixir (add-hook 'elixir-mode-hook '(lambda () (local-set-key (kbd "C-c C-u") 'string-inflection-elixir-style-cycle)))
;; for java (add-hook 'java-mode-hook '(lambda () (local-set-key (kbd "C-c C-u") 'string-inflection-java-style-cycle)))
;; for python (add-hook 'python-mode-hook '(lambda () (local-set-key (kbd "C-c C-u") 'string-inflection-python-style-cycle)))
#+END_SRC
** How to Use
For each of the following, place the cursor at =emacs_lisp= and type =C-q C-u=, the results will be as follows:
In the case of =string-inflection-ruby-style-cycle=
: emacs_lisp => EMACS_LISP => EmacsLisp => emacs_lisp
In the case of =string-inflection-elixir-style-cycle=
: emacs_lisp => EmacsLisp => emacs_lisp
In the case of =string-inflection-python-style-cycle=
: emacs_lisp => EMACS_LISP => EmacsLisp => emacs_lisp
In the case of =string-inflection-java-style-cycle=
: emacsLisp => EMACS_LISP => EmacsLisp => emacsLisp
In the case of =string-inflection-all-cycle=
: emacs_lisp => EMACS_LISP => EmacsLisp => emacsLisp => emacs-lisp => Emacs_Lisp => emacs_lisp
It is recommended that the major mode functions are used instead of =string-inflection-all-cycle=.
** Standalone Functions
#+BEGIN_SRC elisp (string-inflection-underscore-function "EmacsLisp") ; => "emacs_lisp" (string-inflection-pascal-case-function "emacs_lisp") ; => "EmacsLisp" (string-inflection-camelcase-function "emacs_lisp") ; => "emacsLisp" (string-inflection-upcase-function "emacs_lisp") ; => "EMACS_LISP" (string-inflection-kebab-case-function "emacs_lisp") ; => "emacs-lisp" (string-inflection-capital-underscore-function "emacs_lisp") ; => "Emacs_Lisp"
(string-inflection-pascal-case-p "EmacsLisp") ; => t (string-inflection-pascal-case-p "emacs_lisp") ; => nil ; etc... #+END_SRC
** Region usage
You can also use this library to convert a region's casing.
For that, simply select a region and perform =M-x string-inflection-kebab-case= (or any such other function).