GitHub - akicho8/string-inflection: underscore -> UPCASE -> CamelCase conv...
source link: https://github.com/akicho8/string-inflection
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
underscore -> UPCASE -> CamelCase conversion of names
Configuration Examples
Example 1
(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))
(t
;; default
(string-inflection-ruby-style-cycle))))
Example 2
(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 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)))
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-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
(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...
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).
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK