comparison lisp/progmodes/prolog.el @ 111440:b72ff43b041f

* lisp/emacs-lisp/smie.el: Simplify the smie-rules-function return values. (smie-precs->prec2): Rename from smie-precs-precedence-table. (smie-bnf->prec2): Rename from smie-bnf-precedence-table. (smie-prec2->grammar): Rename from smie-prec2-levels. (smie-grammar): Rename from smie-op-levels. (smie-indent--hanging-p): Rename from smie-hanging-p. (smie-rule-hanging-p): New alias. (smie-indent--bolp): Rename from smie-bolp. (smie-indent--hanging-p): New alias. (smie--token): New dynamically bound variable. (smie-indent--parent): New function. (smie-rule-parent-p): Use it; rename from smie-parent-p. (smie-rule-next-p): Rename from smie-next-p. (smie-rule-prev-p): Rename from smie-prev-p. (smie-rule-sibling-p, smie-rule-parent) (smie-indent--separator-outdent, smie-rule-separator): New functions. (smie-rule-separator-outdent): New var. (smie-indent--rule): Merge with smie-indent--column. (smie-indent-forward-token, smie-indent-backward-token): Also recognize close parens. (smie-indent-keyword): Don't use smie-indent--column any more. (smie-indent-after-keyword): Ignore closers by default. (smie-indent-line): Use with-demoted-errors. * lisp/progmodes/octave-mod.el (octave-smie-grammar): Rename from octave-smie-op-levels. (octave-smie-rules): Adjust to new behavior. * lisp/progmodes/prolog.el (prolog-smie-grammar): Rename from prolog-smie-op-levels.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 07 Nov 2010 10:45:45 -0500
parents 249a1455856a
children b47e85affa59
comparison
equal deleted inserted replaced
111439:8426207480fa 111440:b72ff43b041f
121 ((not (zerop (skip-syntax-backward "w_'")))) 121 ((not (zerop (skip-syntax-backward "w_'"))))
122 ;; In case of non-ASCII punctuation. 122 ;; In case of non-ASCII punctuation.
123 ((not (zerop (skip-syntax-backward "."))))) 123 ((not (zerop (skip-syntax-backward ".")))))
124 (point)))) 124 (point))))
125 125
126 (defconst prolog-smie-op-levels 126 (defconst prolog-smie-grammar
127 ;; Rather than construct the operator levels table from the BNF, 127 ;; Rather than construct the operator levels table from the BNF,
128 ;; we directly provide the operator precedences from GNU Prolog's 128 ;; we directly provide the operator precedences from GNU Prolog's
129 ;; manual (7.14.10 op/3). The only problem is that GNU Prolog's 129 ;; manual (7.14.10 op/3). The only problem is that GNU Prolog's
130 ;; manual uses precedence levels in the opposite sense (higher 130 ;; manual uses precedence levels in the opposite sense (higher
131 ;; numbers bind less tightly) than SMIE, so we use negative numbers. 131 ;; numbers bind less tightly) than SMIE, so we use negative numbers.
186 (setq paragraph-ignore-fill-prefix t) 186 (setq paragraph-ignore-fill-prefix t)
187 (make-local-variable 'imenu-generic-expression) 187 (make-local-variable 'imenu-generic-expression)
188 (setq imenu-generic-expression '((nil "^\\sw+" 0))) 188 (setq imenu-generic-expression '((nil "^\\sw+" 0)))
189 189
190 ;; Setup SMIE. 190 ;; Setup SMIE.
191 (smie-setup prolog-smie-op-levels #'prolog-smie-rules 191 (smie-setup prolog-smie-grammar #'prolog-smie-rules
192 :forward-token #'prolog-smie-forward-token 192 :forward-token #'prolog-smie-forward-token
193 :backward-token #'prolog-smie-backward-token) 193 :backward-token #'prolog-smie-backward-token)
194 (set (make-local-variable 'smie-blink-matching-triggers) '(?.)) 194 (set (make-local-variable 'smie-blink-matching-triggers) '(?.))
195 (set (make-local-variable 'smie-closer-alist) '((t . "."))) 195 (set (make-local-variable 'smie-closer-alist) '((t . ".")))
196 (add-hook 'post-self-insert-hook #'smie-blink-matching-open 'append 'local) 196 (add-hook 'post-self-insert-hook #'smie-blink-matching-open 'append 'local)