Mercurial > emacs
annotate lisp/cedet/srecode/srt.el @ 107521:54f3a4d055ee
Document font-use-system-font.
* cmdargs.texi (Font X): Move most content to Fonts.
* frames.texi (Fonts): New node. Document font-use-system-font.
* emacs.texi (Top):
* xresources.texi (Table of Resources):
* mule.texi (Defining Fontsets, Charsets): Update xrefs.
| author | Chong Yidong <cyd@stupidchicken.com> |
|---|---|
| date | Sat, 20 Mar 2010 13:24:06 -0400 |
| parents | 1d1d5d9bd884 |
| children | 376148b31b5e |
| rev | line source |
|---|---|
| 104498 | 1 ;;; srecode/srt.el --- argument handlers for SRT files |
| 2 | |
| 106815 | 3 ;; Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. |
| 104498 | 4 |
| 5 ;; Author: Eric M. Ludlam <eric@siege-engine.com> | |
| 6 | |
| 7 ;; This file is part of GNU Emacs. | |
| 8 | |
| 9 ;; GNU Emacs is free software: you can redistribute it and/or modify | |
| 10 ;; it under the terms of the GNU General Public License as published by | |
| 11 ;; the Free Software Foundation, either version 3 of the License, or | |
| 12 ;; (at your option) any later version. | |
| 13 | |
| 14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 ;; GNU General Public License for more details. | |
| 18 | |
| 19 ;; You should have received a copy of the GNU General Public License | |
| 20 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | |
| 21 | |
| 22 ;;; Commentary: | |
| 23 ;; | |
| 24 ;; Filters for SRT files, the Semantic Recoder template files. | |
| 25 | |
| 26 ;;; Code: | |
| 27 | |
|
105652
51bc239bdc37
* cedet/srecode/srt.el:
Chong Yidong <cyd@stupidchicken.com>
parents:
105377
diff
changeset
|
28 (eval-when-compile (require 'cl)) |
| 104498 | 29 (require 'eieio) |
| 30 (require 'srecode/dictionary) | |
| 31 (require 'srecode/insert) | |
| 32 | |
| 33 (defvar srecode-read-variable-name-history nil | |
| 34 "History for `srecode-read-variable-name'.") | |
| 35 | |
| 36 (defun srecode-read-variable-name (prompt &optional initial hist default) | |
| 105328 | 37 "Read in the name of a declared variable in the current SRT file. |
| 104498 | 38 PROMPT is the prompt to use. |
| 39 INITIAL is the initial string. | |
| 40 HIST is the history value, otherwise `srecode-read-variable-name-history' | |
| 41 is used. | |
| 42 DEFAULT is the default if RET is hit." | |
| 43 (let* ((newdict (srecode-create-dictionary)) | |
| 44 (currfcn (semantic-current-tag)) | |
| 45 ) | |
| 46 (srecode-resolve-argument-list | |
| 47 (mapcar 'read | |
| 48 (semantic-tag-get-attribute currfcn :arguments)) | |
| 49 newdict) | |
| 50 | |
| 51 (with-slots (namehash) newdict | |
| 52 (completing-read prompt namehash nil nil initial | |
| 53 (or hist 'srecode-read-variable-name-history) | |
| 54 default)) | |
| 55 )) | |
| 56 | |
| 57 (defvar srecode-read-major-mode-history nil | |
| 58 "History for `srecode-read-variable-name'.") | |
| 59 | |
| 60 (defun srecode-read-major-mode-name (prompt &optional initial hist default) | |
| 61 "Read in the name of a desired `major-mode'. | |
| 62 PROMPT is the prompt to use. | |
| 63 INITIAL is the initial string. | |
| 64 HIST is the history value, otherwise `srecode-read-variable-name-history' | |
| 65 is used. | |
| 66 DEFAULT is the default if RET is hit." | |
| 67 (completing-read prompt obarray | |
| 68 (lambda (s) (string-match "-mode$" (symbol-name s))) | |
| 69 nil initial (or hist 'srecode-read-major-mode-history)) | |
| 70 ) | |
| 71 | |
| 72 (defun srecode-semantic-handle-:srt (dict) | |
| 73 "Add macros into the dictionary DICT based on the current SRT file. | |
| 74 Adds the following: | |
| 75 ESCAPE_START - This files value of escape_start | |
| 76 ESCAPE_END - This files value of escape_end | |
| 77 MODE - The mode of this buffer. If not declared yet, guess." | |
| 78 (let* ((es (semantic-find-first-tag-by-name "escape_start" (current-buffer))) | |
| 79 (ee (semantic-find-first-tag-by-name "escape_end" (current-buffer))) | |
| 80 (mode-var (semantic-find-first-tag-by-name "mode" (current-buffer))) | |
| 81 (mode (if mode-var | |
| 82 (semantic-tag-variable-default mode-var) | |
| 83 nil)) | |
| 84 ) | |
| 85 (srecode-dictionary-set-value dict "ESCAPE_START" | |
| 86 (if es | |
| 87 (car (semantic-tag-variable-default es)) | |
| 88 "{{")) | |
| 89 (srecode-dictionary-set-value dict "ESCAPE_END" | |
| 90 (if ee | |
| 91 (car (semantic-tag-variable-default ee)) | |
| 92 "}}")) | |
| 93 (when (not mode) | |
| 94 (let* ((fname (file-name-nondirectory | |
| 95 (buffer-file-name (current-buffer)))) | |
| 96 ) | |
| 97 (when (string-match "-\\(\\w+\\)\\.srt" fname) | |
| 98 (setq mode (concat (match-string 1 fname) "-mode"))))) | |
| 99 | |
| 100 (when mode | |
| 101 (srecode-dictionary-set-value dict "MAJORMODE" mode)) | |
| 102 | |
| 103 )) | |
| 104 | |
| 105 (provide 'srecode/srt) | |
| 106 | |
| 105377 | 107 ;; arch-tag: fb69da04-0bd6-48fe-b935-f8668420ecaf |
| 104498 | 108 ;;; srecode/srt.el ends here |
