Commit | Line | Data |
---|---|---|
07a79ce4 | 1 | ;;; srecode/template.el --- SRecoder template language parser support. |
4d902e6f | 2 | |
acaf905b | 3 | ;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. |
4d902e6f CY |
4 | |
5 | ;; This file is part of GNU Emacs. | |
6 | ||
7 | ;; GNU Emacs is free software: you can redistribute it and/or modify | |
8 | ;; it under the terms of the GNU General Public License as published by | |
9 | ;; the Free Software Foundation, either version 3 of the License, or | |
10 | ;; (at your option) any later version. | |
11 | ||
12 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
13 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | ;; GNU General Public License for more details. | |
16 | ||
17 | ;; You should have received a copy of the GNU General Public License | |
18 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | |
19 | ||
20 | ;;; Commentary: | |
21 | ;; | |
22 | ;; Parser setup for the semantic recoder template parser. | |
23 | ||
24 | ;;; Code: | |
25 | (require 'semantic) | |
26 | (require 'semantic/ctxt) | |
27 | (require 'semantic/wisent) | |
28 | (require 'srecode/srt-wy) | |
29 | ||
30 | (define-mode-local-override semantic-tag-components | |
31 | srecode-template-mode (tag) | |
32 | "Return sectiondictionary tags." | |
33 | (when (semantic-tag-of-class-p tag 'function) | |
34 | (let ((dicts (semantic-tag-get-attribute tag :dictionaries)) | |
35 | (ans nil)) | |
36 | (while dicts | |
37 | (setq ans (append ans (cdr (car dicts)))) | |
38 | (setq dicts (cdr dicts))) | |
39 | ans) | |
40 | )) | |
41 | ||
f3628edd GM |
42 | ;; In semantic-imenu.el, not part of Emacs. |
43 | (defvar semantic-imenu-summary-function) | |
44 | ||
e6e267fc | 45 | ;;;###autoload |
4d902e6f CY |
46 | (defun srecode-template-setup-parser () |
47 | "Setup buffer for parse." | |
48 | (srecode-template-wy--install-parser) | |
49 | ||
50 | (setq | |
51 | ;; Lexical Analysis | |
52 | semantic-lex-analyzer 'wisent-srecode-template-lexer | |
53 | ;; Parsing | |
54 | ;; Environment | |
55 | semantic-imenu-summary-function 'semantic-format-tag-name | |
56 | imenu-create-index-function 'semantic-create-imenu-index | |
57 | semantic-command-separation-character "\n" | |
58 | semantic-lex-comment-regex ";;" | |
59 | ;; Speedbar | |
60 | semantic-symbol->name-assoc-list | |
61 | '((function . "Template") | |
62 | (variable . "Variable") | |
63 | ) | |
64 | ;; Navigation | |
65 | senator-step-at-tag-classes '(function variable) | |
66 | )) | |
67 | ||
4d902e6f CY |
68 | (provide 'srecode/template) |
69 | ||
e6e267fc CY |
70 | ;; Local variables: |
71 | ;; generated-autoload-file: "loaddefs.el" | |
e6e267fc CY |
72 | ;; generated-autoload-load-name: "srecode/template" |
73 | ;; End: | |
74 | ||
4d902e6f | 75 | ;;; srecode/template.el ends here |