• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/progmodes/

Lines Matching +defs:mode +defs:function

1 ;;; ps-mode.el --- PostScript mode for GNU Emacs
35 (defconst ps-mode-version "1.1h, 16 Jun 2005")
36 (defconst ps-mode-maintainer-address "Peter Kleiweg <p.c.j.kleiweg@rug.nl>")
42 "PostScript mode for Emacs."
48 :prefix "ps-mode-"
58 (defcustom ps-mode-auto-indent t
63 (defcustom ps-mode-tab 4
68 (defcustom ps-mode-paper-size '(595 842)
110 (defcustom ps-mode-print-function
116 "*Lisp function to print current buffer as PostScript."
118 :type 'function)
130 '(0 font-lock-function-name-face nil nil))))
196 (defconst ps-mode-operators
217 (defconst ps-mode-font-lock-keywords-1
221 (ps-mode-match-string-or-comment
226 "Subdued level highlighting for PostScript mode.")
231 (defconst ps-mode-font-lock-keywords-2
233 ps-mode-font-lock-keywords-1
237 (concat "\\(^\\|[^/\n]\\)" ps-mode-operators)
239 "Medium level highlighting for PostScript mode.")
245 ;; * a function
249 ;; (function name face)
258 (defconst ps-mode-font-lock-keywords-3
260 ps-mode-font-lock-keywords-1
269 . (1 font-lock-function-name-face))
271 (cons ps-mode-operators 'font-lock-keyword-face)))
272 "High level highliting for PostScript mode.")
274 (defconst ps-mode-font-lock-keywords ps-mode-font-lock-keywords-1
275 "Default expressions to highlight in PostScript mode.")
277 ;; Level 1 font-lock for ps-run-mode
278 ;; - prompt (function name face)
284 'font-lock-function-name-face)))
285 "Subdued level highlighting for PostScript run mode.")
288 "Default expressions to highlight in PostScript run mode.")
294 (defvar ps-mode-map nil
295 "Local keymap to use in PostScript mode.")
297 (defvar ps-mode-syntax-table nil
298 "Syntax table used while in PostScript mode.")
300 (defvar ps-run-mode-map nil
301 "Local keymap to use in PostScript run mode.")
303 (defvar ps-mode-tmp-file nil
316 (defconst ps-mode-menu-main
318 ["EPSF Template, Sparse" ps-mode-epsf-sparse t]
319 ["EPSF Template, Rich" ps-mode-epsf-rich t]
322 ["RE" ps-mode-RE t]
323 ["ISOLatin1Extended" ps-mode-latin-extended t]
324 ["center" ps-mode-center t]
325 ["right" ps-mode-right t]
326 ["Heapsort" ps-mode-heapsort t])
365 ["Comment Out Region" ps-mode-comment-out-region (mark t)]
366 ["Uncomment Region" ps-mode-uncomment-region (mark t)]
368 ["8-bit to Octal Buffer" ps-mode-octal-buffer t]
369 ["8-bit to Octal Region" ps-mode-octal-region (mark t)]
371 ["Auto Indent" (setq ps-mode-auto-indent (not ps-mode-auto-indent))
372 :style toggle :selected ps-mode-auto-indent]
386 ps-mode-other-newline
396 ps-mode-print-buffer
399 ps-mode-print-region
407 ps-mode-submit-bug-report
412 ;; Mode maps for PostScript edit mode and PostScript interaction mode.
414 (unless ps-mode-map
415 (setq ps-mode-map (make-sparse-keymap))
416 (define-key ps-mode-map "\C-cv" 'ps-mode-show-version)
417 (define-key ps-mode-map "\C-c\C-v" 'ps-run-boundingbox)
418 (define-key ps-mode-map "\C-c\C-u" 'ps-mode-uncomment-region)
419 (define-key ps-mode-map "\C-c\C-t" 'ps-mode-epsf-rich)
420 (define-key ps-mode-map "\C-c\C-s" 'ps-run-start)
421 (define-key ps-mode-map "\C-c\C-r" 'ps-run-region)
422 (define-key ps-mode-map "\C-c\C-q" 'ps-run-quit)
423 (define-key ps-mode-map "\C-c\C-p" 'ps-mode-print-buffer)
424 (define-key ps-mode-map "\C-c\C-o" 'ps-mode-comment-out-region)
425 (define-key ps-mode-map "\C-c\C-k" 'ps-run-kill)
426 (define-key ps-mode-map "\C-c\C-j" 'ps-mode-other-newline)
427 (define-key ps-mode-map "\C-c\C-c" 'ps-run-clear)
428 (define-key ps-mode-map "\C-c\C-b" 'ps-run-buffer)
429 (define-key ps-mode-map ">" 'ps-mode-r-gt)
430 (define-key ps-mode-map "]" 'ps-mode-r-angle)
431 (define-key ps-mode-map "}" 'ps-mode-r-brace)
432 (define-key ps-mode-map "\177" 'ps-mode-backward-delete-char)
433 (define-key ps-mode-map "\t" 'ps-mode-tabkey)
434 (define-key ps-mode-map "\r" 'ps-mode-newline)
435 (define-key ps-mode-map [return] 'ps-mode-newline)
436 (easy-menu-define ps-mode-main ps-mode-map "PostScript" ps-mode-menu-main))
438 (unless ps-run-mode-map
439 (setq ps-run-mode-map (make-sparse-keymap))
440 (define-key ps-run-mode-map "\C-c\C-q" 'ps-run-quit)
441 (define-key ps-run-mode-map "\C-c\C-k" 'ps-run-kill)
442 (define-key ps-run-mode-map "\C-c\C-e" 'ps-run-goto-error)
443 (define-key ps-run-mode-map [mouse-2] 'ps-run-mouse-goto-error)
444 (define-key ps-run-mode-map "\r" 'ps-run-newline)
445 (define-key ps-run-mode-map [return] 'ps-run-newline))
451 (unless ps-mode-syntax-table
452 (setq ps-mode-syntax-table (make-syntax-table))
454 (modify-syntax-entry ?\% "< " ps-mode-syntax-table)
455 (modify-syntax-entry ?\n "> " ps-mode-syntax-table)
456 (modify-syntax-entry ?\r "> " ps-mode-syntax-table)
457 (modify-syntax-entry ?\f "> " ps-mode-syntax-table)
458 (modify-syntax-entry ?\< "(>" ps-mode-syntax-table)
459 (modify-syntax-entry ?\> ")<" ps-mode-syntax-table)
461 (modify-syntax-entry ?\! "w " ps-mode-syntax-table)
462 (modify-syntax-entry ?\" "w " ps-mode-syntax-table)
463 (modify-syntax-entry ?\# "w " ps-mode-syntax-table)
464 (modify-syntax-entry ?\$ "w " ps-mode-syntax-table)
465 (modify-syntax-entry ?\& "w " ps-mode-syntax-table)
466 (modify-syntax-entry ?\' "w " ps-mode-syntax-table)
467 (modify-syntax-entry ?\* "w " ps-mode-syntax-table)
468 (modify-syntax-entry ?\+ "w " ps-mode-syntax-table)
469 (modify-syntax-entry ?\, "w " ps-mode-syntax-table)
470 (modify-syntax-entry ?\- "w " ps-mode-syntax-table)
471 (modify-syntax-entry ?\. "w " ps-mode-syntax-table)
472 (modify-syntax-entry ?\: "w " ps-mode-syntax-table)
473 (modify-syntax-entry ?\; "w " ps-mode-syntax-table)
474 (modify-syntax-entry ?\= "w " ps-mode-syntax-table)
475 (modify-syntax-entry ?\? "w " ps-mode-syntax-table)
476 (modify-syntax-entry ?\@ "w " ps-mode-syntax-table)
477 (modify-syntax-entry ?\\ "w " ps-mode-syntax-table)
478 (modify-syntax-entry ?^ "w " ps-mode-syntax-table) ; NOT: ?\^
479 (modify-syntax-entry ?\_ "w " ps-mode-syntax-table)
480 (modify-syntax-entry ?\` "w " ps-mode-syntax-table)
481 (modify-syntax-entry ?\| "w " ps-mode-syntax-table)
482 (modify-syntax-entry ?\~ "w " ps-mode-syntax-table)
486 (modify-syntax-entry i "w " ps-mode-syntax-table)
491 ;; PostScript mode.
494 (define-derived-mode ps-mode fundamental-mode "PostScript"
495 "Major mode for editing PostScript with GNU Emacs.
497 Entry to this mode calls `ps-mode-hook'.
502 `ps-mode-auto-indent'
503 `ps-mode-tab'
504 `ps-mode-paper-size'
505 `ps-mode-print-function'
517 \\{ps-mode-map}
521 a second window will be displayed, and `ps-run-mode-hook' will be called.
524 \\{ps-run-mode-map}
531 Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number has the same effect."
533 '((ps-mode-font-lock-keywords
534 ps-mode-font-lock-keywords-1
535 ps-mode-font-lock-keywords-2
536 ps-mode-font-lock-keywords-3)
542 (defun ps-mode-show-version ()
543 "Show current version of PostScript mode."
545 (message " *** PostScript Mode (ps-mode) Version %s *** " ps-mode-version))
547 (defun ps-mode-submit-bug-report ()
548 "Submit via mail a bug report on PostScript mode."
550 (when (y-or-n-p "Submit bug report on PostScript mode? ")
552 (reporter-dont-compact-list '(ps-mode-print-function
555 ps-mode-maintainer-address
556 (format "ps-mode.el %s [%s]" ps-mode-version system-type)
557 '(ps-mode-auto-indent
558 ps-mode-tab
559 ps-mode-paper-size
560 ps-mode-print-function
573 ;; When this function is called, point is at an opening bracket.
574 ;; This function should test if point is at the start of a string
580 (defun ps-mode-looking-at-nested (limit)
599 ;; This function should search for a string or comment
602 (defun ps-mode-match-string-or-comment (limit)
613 ((ps-mode-looking-at-nested limit)
619 (ps-mode-match-string-or-comment limit))))))
625 (defun ps-mode-target-column ()
655 (setq target (+ target ps-mode-tab)))
658 (defun ps-mode-newline ()
663 (if ps-mode-auto-indent
664 (indent-to (ps-mode-target-column))))
666 (defun ps-mode-tabkey ()
671 (if (or (not ps-mode-auto-indent)
672 (< ps-mode-tab 1)
675 (setq target (ps-mode-target-column))
677 (setq target (+ target ps-mode-tab)))
680 (defun ps-mode-backward-delete-char ()
685 (if (or (not ps-mode-auto-indent)
686 (< ps-mode-tab 1)
689 (setq target (ps-mode-target-column))
691 (setq target (+ target ps-mode-tab)))
693 (setq target (- target ps-mode-tab)))
698 (defun ps-mode-r-brace ()
702 (ps-mode-r-balance "}"))
704 (defun ps-mode-r-angle ()
708 (ps-mode-r-balance "]"))
710 (defun ps-mode-r-gt ()
714 (ps-mode-r-balance ">>"))
716 (defun ps-mode-r-balance (right)
718 (if ps-mode-auto-indent
721 (indent-line-to (ps-mode-target-column)))))
724 (defun ps-mode-other-newline ()
736 (defun ps-mode-print-buffer ()
739 (funcall ps-mode-print-function))
741 (defun ps-mode-print-region (begin end)
753 (funcall ps-mode-print-function))))
759 (defun ps-mode-comment-out-region (begin end)
773 (defun ps-mode-uncomment-region (begin end)
794 (defun ps-mode-octal-buffer ()
797 (ps-mode-octal-region (point-min) (point-max)))
799 (defun ps-mode-octal-region (begin end)
824 (defun ps-mode-center ()
825 "Insert function /center."
836 (defun ps-mode-right ()
837 "Insert function /right."
848 (defun ps-mode-RE ()
849 "Insert function /RE."
864 (defun ps-mode-latin-extended ()
908 (defun ps-mode-heapsort ()
909 "Insert function /Heapsort."
955 (defun ps-mode-epsf-sparse ()
973 (car ps-mode-paper-size)
974 (car (cdr ps-mode-paper-size))))
977 (defun ps-mode-epsf-rich ()
980 (ps-mode-epsf-sparse)
993 (define-derived-mode ps-run-mode fundamental-mode "Interactive PS"
994 "Major mode in interactive PostScript window.
995 This mode is invoked from `ps-mode' and should not be called directly.
997 \\{ps-run-mode-map}"
1003 (setq mode-line-process '(":%s")))
1006 "Error if not in `ps-mode' or not running PostScript."
1007 (unless (equal major-mode 'ps-mode)
1008 (error "This function can only be called from PostScript mode"))
1028 (ps-run-mode)
1131 (unless ps-mode-tmp-file
1143 (setq ps-mode-tmp-file
1150 ps-mode-tmp-file)
1155 (when ps-mode-tmp-file
1156 (let ((i ps-mode-tmp-file))
1157 (setq ps-mode-tmp-file nil)
1209 (provide 'ps-mode)
1212 ;;; ps-mode.el ends here