;;; semantic/fw.el --- Framework for Semantic
-;;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
+;;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
(if (featurep 'xemacs)
(progn
(defalias 'semantic-buffer-local-value 'symbol-value-in-buffer)
+ ;; FIXME: Why not just (require 'overlay)?
(defalias 'semantic-overlay-live-p
(lambda (o)
(and (extent-live-p o)
"Extract the window from EVENT."
(car (car (cdr event))))
- (if (> emacs-major-version 21)
- (defalias 'semantic-buffer-local-value 'buffer-local-value)
+ (defalias 'semantic-buffer-local-value 'buffer-local-value)
- (defun semantic-buffer-local-value (sym &optional buf)
- "Get the value of SYM from buffer local variable in BUF."
- (cdr (assoc sym (buffer-local-variables buf)))))
)
NAME specifies a special name that can be searched for later to
recover the cached data with `semantic-get-cache-data'.
LIFESPAN indicates how long the data cache will be remembered.
-The default LIFESPAN is 'end-of-command.
+The default LIFESPAN is `end-of-command'.
Possible Lifespans are:
- 'end-of-command - Remove the cache at the end of the currently
- executing command.
- 'exit-cache-zone - Remove when point leaves the overlay at the
- end of the currently executing command."
+ `end-of-command' - Remove the cache at the end of the currently
+ executing command.
+ `exit-cache-zone' - Remove when point leaves the overlay at the
+ end of the currently executing command."
;; Check if LIFESPAN is valid before to create any overlay
(or lifespan (setq lifespan 'end-of-command))
(or (memq lifespan '(end-of-command exit-cache-zone))
))
(defun semantic-cache-data-post-command-hook ()
- "Flush `semantic-cache-data-overlays' based 'lifespan property.
+ "Flush `semantic-cache-data-overlays' based `lifespan' property.
Remove self from `post-command-hook' if it is empty."
(let ((newcache nil)
(oldcache semantic-cache-data-overlays))
If `debug-on-error' is set, errors are not caught, so that you can
debug them.
Avoid using a large BODY since it is duplicated."
- ;;(declare (debug t) (indent 1))
+ (declare (debug t) (indent 1))
`(if debug-on-error
;;(let ((inhibit-quit nil)) ,@body)
;; Note to self: Doing the above screws up the wisent parser.
(message ,format (format "%S - %s" (current-buffer)
(error-message-string err)))
nil))))
-(put 'semantic-safe 'lisp-indent-function 1)
;;; Misc utilities
;;
if a user presses any key during execution, this form macro
will exit with the value passed to `semantic-throw-on-input'.
If FORMS completes, then the return value is the same as `progn'."
+ (declare (indent 1) (debug def-body))
`(let ((semantic-current-input-throw-symbol ,symbol)
(semantic--on-input-start-marker (point-marker)))
(catch ,symbol
,@forms)))
-(put 'semantic-exit-on-input 'lisp-indent-function 1)
(defmacro semantic-throw-on-input (from)
"Exit with `throw' when in `semantic-exit-on-input' on user input.
calling this one."
`(when (and semantic-current-input-throw-symbol
(or (input-pending-p)
- (save-excursion
+ (with-current-buffer
+ (marker-buffer semantic--on-input-start-marker)
;; Timers might run during accept-process-output.
;; If they redisplay, point must be where the user
;; expects. (Bug#15045)
- (set-buffer (marker-buffer
- semantic--on-input-start-marker))
- (goto-char (marker-position
- semantic--on-input-start-marker))
- (accept-process-output))))
+ (save-excursion
+ (goto-char semantic--on-input-start-marker)
+ (accept-process-output)))))
(throw semantic-current-input-throw-symbol ,from)))
\f
;;
(defmacro semanticdb-without-unloaded-file-searches (forms)
"Execute FORMS with `unloaded' removed from the current throttle."
+ (declare (indent 1))
`(let ((semanticdb-find-default-throttle
(if (featurep 'semantic/db-find)
(remq 'unloaded semanticdb-find-default-throttle)
nil)))
,forms))
-(put 'semanticdb-without-unloaded-file-searches 'lisp-indent-function 1)
\f
;; ;;; Editor goodies ;-)
;; (font-lock-add-keywords 'emacs-lisp-mode
;; semantic-fw-font-lock-keywords))
\f
-;;; Interfacing with edebug
-;;
-(defun semantic-fw-add-edebug-spec ()
- (def-edebug-spec semantic-exit-on-input 'def-body))
-
-(add-hook 'edebug-setup-hook 'semantic-fw-add-edebug-spec)
(provide 'semantic/fw)