Mercurial > emacs
view etc/srecode/make.srt @ 109838:64936c70841e
Try and remove some of SMIE's black magic by generalizing some rules.
* lisp/emacs-lisp/smie.el (smie-default-backward-token)
(smie-default-forward-token): Strip properties.
(smie-next-sexp): Be more careful with associative operators.
(smie-forward-sexp-command): Generalize.
(smie-backward-sexp-command): Simplify.
(smie-closer-alist): New var.
(smie-close-block): New command.
(smie-indent-debug-log): New var.
(smie-indent-offset-rule): Add a few more cases.
(smie-indent-column): New function.
(smie-indent-after-keyword): Use it.
(smie-indent-keyword): Use it.
Fix up the opener code's point position.
(smie-indent-comment): Only applies at BOL.
(smie-indent-debug): New command.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 18 Aug 2010 12:57:48 +0200 |
parents | 1d1d5d9bd884 |
children | 376148b31b5e |
line wrap: on
line source
;; make.srt ;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. set mode "makefile-mode" set escape_start "{{" set escape_end "}}" set comment_start "#" set comment_prefix "#" set TAB "\t" context file template empty :file :user ---- {{>:filecomment}} all: {{^}} {{comment_start}} end ---- context declaration ;; GNU Make has real functions you can define, but semantic uses ;; 'function for rules. This is unfortunate, and should be fixed. template rule :blank ---- {{?NAME}}: {{TAB}}{{^}} ---- bind "r" template inferencerule :blank ---- %.{{?SRCEXTENSION}}: %.{{?DESTEXTENSION}} {{TAB}}{{^}} ---- bind "i" template phonyrule :blank ---- .PHONY {{?NAME}} {{NAME}}: {{TAB}}{{^}} ---- bind "p" template variable :blank "Insert a variable declaration." ---- {{?NAME}}:= {{^}} ---- bind "v" template include :blank ---- include {{?NAME}} ---- ;; end