Skip to content

Commit 8a10d2f

Browse files
committed
Use alist instead.
1 parent 098b85b commit 8a10d2f

File tree

1 file changed

+38
-35
lines changed

1 file changed

+38
-35
lines changed

indent-control.el

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,42 @@
7878
:type 'list
7979
:group 'indent-control)
8080

81+
(defcustom indent-control-alist
82+
'((actionscript-mode . actionscript-indent-level)
83+
(c-mode . c-basic-offset)
84+
(c++-mode . c-basic-offset)
85+
(csharp-mode . c-basic-offset)
86+
(java-mode . c-basic-offset)
87+
(jayces-mode . c-basic-offset)
88+
(objc-mode . c-basic-offset)
89+
(css-mode . css-indent-offset)
90+
(less-css-mode . css-indent-offset)
91+
(scss-mode . css-indent-offset)
92+
(ssass-mode . ssass-tab-width)
93+
(groovy-mode . groovy-indent-offset)
94+
(js-mode . js-indent-level)
95+
(js2-mode . js2-basic-offset)
96+
(lisp-mode . lisp-body-indent)
97+
(lisp-interaction-mode . lisp-body-indent)
98+
(emacs-lisp-mode . lisp-body-indent)
99+
(lua-mode . lua-indent-level)
100+
(nasm-mode . nasm-basic-offset)
101+
(nxml-mode . nxml-child-indent)
102+
(python-mode . py-indent-offset)
103+
(rjsx-mode . js-indent-level)
104+
(ruby-mode . ruby-indent-level)
105+
(rust-mode . rust-indent-offset)
106+
(shader-mode . shader-indent-offset)
107+
(sql-mode . sql-indent-offset)
108+
(typescript-mode . typescript-indent-level)
109+
(web-mode . (web-mode-markup-indent-offset
110+
web-mode-css-indent-offset
111+
web-mode-code-indent-offset))
112+
(yaml-mode . yaml-indent-offset))
113+
"AList that maps `major-mode' to each major-mode's indent level variable name."
114+
:type 'list
115+
:group 'indent-control)
116+
81117
(defcustom indent-control-delta 2
82118
"Delta value for increment/decrement indentation level."
83119
:type 'integer
@@ -134,41 +170,8 @@
134170

135171
(defun indent-control--indent-level-by-mode ()
136172
"Return indentation level variable as symbol depends on current major mode."
137-
(cond
138-
((indent-control--major-mode-p '("actionscript-mode")) (quote actionscript-indent-level))
139-
((indent-control--major-mode-p '("cc-mode"
140-
"c-mode"
141-
"c++-mode"
142-
"csharp-mode"
143-
"java-mode"
144-
"jayces-mode"
145-
"objc-mode")) (quote c-basic-offset))
146-
((indent-control--major-mode-p '("css-mode"
147-
"less-css-mode"
148-
"scss-mode")) (quote css-indent-offset))
149-
((indent-control--major-mode-p '("ssass-mode")) (quote ssass-tab-width))
150-
((indent-control--major-mode-p '("groovy-mode")) (quote groovy-indent-offset))
151-
((indent-control--major-mode-p '("js-mode")) (quote js-indent-level))
152-
((indent-control--major-mode-p '("js2-mode")) (quote js2-basic-offset))
153-
((indent-control--major-mode-p '("lisp-mode"
154-
"lisp-interaction-mode"
155-
"emacs-lisp-mode")) (quote lisp-body-indent))
156-
((indent-control--major-mode-p '("lua-mode")) (quote lua-indent-level))
157-
((indent-control--major-mode-p '("nasm-mode")) (quote nasm-basic-offset))
158-
((indent-control--major-mode-p '("nxml-mode")) (quote nxml-child-indent))
159-
((indent-control--major-mode-p '("python-mode")) (quote py-indent-offset))
160-
((indent-control--major-mode-p '("rjsx-mode")) (quote js-indent-level))
161-
((indent-control--major-mode-p '("ruby-mode")) (quote ruby-indent-level))
162-
((indent-control--major-mode-p '("rust-mode")) (quote rust-indent-offset))
163-
((indent-control--major-mode-p '("shader-mode")) (quote shader-indent-offset))
164-
((indent-control--major-mode-p '("sql-mode")) (quote sql-indent-offset))
165-
((indent-control--major-mode-p '("typescript-mode")) (quote typescript-indent-level))
166-
((indent-control--major-mode-p '("web-mode"))
167-
(quote (web-mode-markup-indent-offset
168-
web-mode-css-indent-offset
169-
web-mode-code-indent-offset)))
170-
((indent-control--major-mode-p '("yaml-mode")) (quote yaml-indent-offset))
171-
(t (quote tab-width))))
173+
(or (cdr (assoc major-mode indent-control-alist))
174+
(quote tab-width)))
172175

173176
(defun indent-control-set-indent-level-by-mode (tw)
174177
"Set the tab width (TW) for current major mode."

0 commit comments

Comments
 (0)