jcsalomon / smarttabs

Emacs smart tabs - indent with tabs, align with spaces!
http://www.emacswiki.org/emacs/SmartTabs
114 stars 20 forks source link

Problem with `smart-tabs-mode-map` variable #16

Closed ghost closed 11 years ago

ghost commented 11 years ago

Since recently I get the following error when enabling smart-tabs-mode. I assume it is a problem with the name of the variable smart-tabs-mode-map. It is not a keymap but somewhere in the code it is used a keymap. Perhaps this happens within the define-minor-mode macro (the variable name could conflict with the convention of naming a mode-specific keymap by appending -map to the mode name). Renaming the variable to smart-tabs-mode-alist resolved the problem. I'm using GNU Emacs 23.2.1, maybe the story changed in more recent versions, but it would be nice if smart-tabs-mode still works on 23.2.

Btw, thanks for your great work, I'm using smart-tabs in almost all my programming modes.

key-binding: Wrong type argument: keymapp, ((c lambda nil (add-hook (quote c-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice c-indent-line c-basic-offset) (smart-tabs-advice c-indent-region c-basic-offset)))) (javascript lambda nil (add-hook (quote js2-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice js2-indent-line js2-basic-offset)))) (cperl lambda nil (add-hook (quote cperl-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice cperl-indent-line cperl-indent-level)))) (python lambda nil (add-hook (quote python-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice python-indent-line-1 python-indent) (if (featurep (quote python-mode)) (progn (smart-tabs-advice py-indent-line py-indent-offset) (smart-tabs-advice py-newline-and-indent py-indent-offset) (smart-tabs-advice py-indent-region py-indent-offset)))))) (ruby lambda nil (add-hook (quote ruby-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice ruby-indent-line ruby-indent-level)))) (nxml lambda nil (add-hook (quote nxml-mode-hook) (lambda nil (smart-tabs-mode-enable) (smart-tabs-advice nxml-indent-line nxml-child-indent)))))

CyberDomovoy commented 11 years ago

I confirm this.

It is a convention that every variable ending with "-map" is actually a keymap. This is even more important when defining a mode (major or minor) since emacs will use those to automatically setup a keymap for the mode.

baby-gnu commented 11 years ago

I used the wrong word to fixe the issue in my commit, sorry.