|
78 | 78 | :type 'list |
79 | 79 | :group 'indent-control) |
80 | 80 |
|
| 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 | + |
81 | 117 | (defcustom indent-control-delta 2 |
82 | 118 | "Delta value for increment/decrement indentation level." |
83 | 119 | :type 'integer |
|
134 | 170 |
|
135 | 171 | (defun indent-control--indent-level-by-mode () |
136 | 172 | "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))) |
172 | 175 |
|
173 | 176 | (defun indent-control-set-indent-level-by-mode (tw) |
174 | 177 | "Set the tab width (TW) for current major mode." |
|
0 commit comments