---
*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
-** SMIE indentation can be customized via `smie-config'.
-Emacs can learn the appropriate indentation settings if you provide it
-with an indented sample file.
+** SMIE
+
+*** You can customize the indentation of modes that use SMIE via `smie-config'.
+The command `smie-config-guess' can help you derive the appropriate
+indentation settings, if you provide it with an indented sample file.
+Use `smie-config-save' to save the result.
+
+*** New commands `smie-config-show-indent' and `smie-config-set-indent'.
---
** SQL mode
+2014-03-04 Glenn Morris <rgm@gnu.org>
+
+ * emacs-lisp/smie.el (smie-config-guess): Doc fix.
+ Explicit error if no grammar.
+ (smie-config-save): Doc fix. Fix quote typo.
+
2014-03-04 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/cc-mode.el (c-initialize-cc-mode): Only hook into
rules))))
(defun smie-config-guess ()
- "Try and figure out this buffer's indentation settings."
+ "Try and figure out this buffer's indentation settings.
+To save the result for future sessions, use `smie-config-save'."
(interactive)
+ (if (eq smie-grammar 'unset)
+ (user-error "This buffer does not seem to be using SMIE"))
(let ((config (smie-config--guess (point-min) (point-max))))
(cond
((null config) (message "Nothing to change"))
(message "Rules guessed: %S" config)))))
(defun smie-config-save ()
- "Save local rules for use with this major mode."
+ "Save local rules for use with this major mode.
+One way to generate local rules is the command `smie-config-guess'."
(interactive)
(cond
((null smie-config--buffer-local)
(setcdr existing config)
(push (cons major-mode config) smie-config))
(setq smie-config--mode-local config)
- (kill-local-variable smie-config--buffer-local)
+ (kill-local-variable 'smie-config--buffer-local)
(customize-mark-as-set 'smie-config)))))
(provide 'smie)