Mercurial > emacs
annotate lisp/cedet/semantic/db-mode.el @ 104513:a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
* cedet/semantic/idle.el
(semantic-before-idle-scheduler-reparse-hook)
(semantic-after-idle-scheduler-reparse-hook): Rename from *-hooks.
Make old name an obsolete alias.
* cedet/semantic/edit.el (semantic-after-partial-cache-change-hook)
(semantic-change-hooks, semantic-edits-new-change-hooks)
(semantic-edits-delete-change-hooks)
(semantic-edits-move-change-hook)
(semantic-edits-reparse-change-hooks)
(semantic-edits-incremental-reparse-failed-hooks): Doc fixes.
* cedet/semantic/debug.el (semantic-debug-mode): Rename hook
symbols.
* cedet/semantic/db-mode.el (semanticdb-mode-hook): Rename from
semanticdb-mode-hooks.
(global-semanticdb-minor-mode): Use the new name.
(semanticdb-hooks): Use semantic-init-db-hook instead of obsolete
alias semantic-init-db-hooks.
* cedet/semantic/db-global.el (semanticdb-enable-gnu-global-databases):
Use semantic-init-hook instead of obsolete alias
semantic-init-hooks.
* cedet/semantic/db-file.el (semanticdb-save-database-hook):
Rename from semanticdb-save-database-hooks. Make old name an
obsolete alias.
* cedet/semantic/decorate/mode.el
(semantic-decorate-pending-decoration-hook): Rename from
semantic-decorate-pending-decoration-hooks. Make old name an
obsolete alias.
* cedet/srecode/map.el (srecode-map-validate-file-for-mode): Use
semantic-init-hook instead of obsolete alias semantic-init-hooks.
* cedet/semantic/fw.el (semantic-find-file-noselect): Use
semantic-init-hook instead of obsolete alias semantic-init-hooks.
* cedet/ede/project-am.el (project-am-with-makefile-current): Use
semantic-init-hook instead of obsolete alias semantic-init-hooks.
* cedet/semantic/util.el (semantic-describe-buffer): Use
semantic-init-hook and semantic-init-db-hook instead of obsolete
aliases.
* cedet/semantic/util-modes.el (semantic-mode-line-update)
(semantic-toggle-minor-mode-globally): Use semantic-init-hook
instead of obsolete alias semantic-init-hooks.
Synch to Eric Ludlam's upstream CEDET repository:
* cedet/semantic/bovine/c.el (semantic-c-parse-token-hack-depth):
New var.
(semantic-c-parse-lexical-token): Save match data when setting up
the secondary parse buffer. Allow recursion. Protect against
initializing the major mode from throwing errors, ie user hooks.
* cedet/semantic/lex-spp.el (semantic-lex-spp-lex-text-string):
Protect installing a major mode from throwing errors.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 26 Sep 2009 17:47:11 +0000 |
parents | 309eba6102e8 |
children | c65d65798b34 |
rev | line source |
---|---|
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
1 ;;; semantic/db-mode.el --- Semanticdb Minor Mode |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
2 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
3 ;; Copyright (C) 2008, 2009 Free Software Foundation, Inc. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
4 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
5 ;; Author: Eric M. Ludlam <eric@siege-engine.com> |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
6 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
7 ;; This file is part of GNU Emacs. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
8 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
9 ;; GNU Emacs is free software: you can redistribute it and/or modify |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
10 ;; it under the terms of the GNU General Public License as published by |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
11 ;; the Free Software Foundation, either version 3 of the License, or |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
12 ;; (at your option) any later version. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
13 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
14 ;; GNU Emacs is distributed in the hope that it will be useful, |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
17 ;; GNU General Public License for more details. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
18 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
19 ;; You should have received a copy of the GNU General Public License |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
20 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
21 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
22 ;;; Commentary: |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
23 ;; |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
24 ;; Major mode for managing Semantic Databases automatically. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
25 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
26 (require 'semantic/db) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
27 ;;; Code: |
104441
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
28 |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
29 ;; Moved into semantic/db.el: |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
30 ;; (defvar semanticdb-current-database nil |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
31 ;; "For a given buffer, this is the currently active database.") |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
32 ;; (make-variable-buffer-local 'semanticdb-current-database) |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
33 |
104441
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
34 ;; (defvar semanticdb-current-table nil |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
35 ;; "For a given buffer, this is the currently active database table.") |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
36 ;; (make-variable-buffer-local 'semanticdb-current-table) |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
37 |
902d22a2d922
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
Chong Yidong <cyd@stupidchicken.com>
parents:
104436
diff
changeset
|
38 (declare-function semantic-lex-spp-set-dynamic-table "semantic/lex-spp") |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
39 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
40 (defcustom semanticdb-global-mode nil |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
41 "*If non-nil enable the use of `semanticdb-minor-mode'." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
42 :group 'semantic |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
43 :type 'boolean |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
44 :require 'semantic/db |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
45 :initialize 'custom-initialize-default |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
46 :set (lambda (sym val) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
47 (global-semanticdb-minor-mode (if val 1 -1)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
48 (custom-set-default sym val))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
49 |
104513
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
50 (defcustom semanticdb-mode-hook nil |
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
51 "Normal hook run whenever `global-semanticdb-minor-mode' is run. |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
52 Use `semanticdb-minor-mode-p' to determine if the mode has been turned |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
53 on or off." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
54 :group 'semanticdb |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
55 :type 'hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
56 |
104513
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
57 (define-obsolete-variable-alias |
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
58 'semanticdb-mode-hooks |
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
59 'semanticdb-mode-hook "23.2") |
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
60 |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
61 ;;; Start/Stop database use |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
62 ;; |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
63 (defvar semanticdb-hooks |
104513
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
64 '((semanticdb-semantic-init-hook-fcn semantic-init-db-hook) |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
65 (semanticdb-synchronize-table semantic-after-toplevel-cache-change-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
66 (semanticdb-partial-synchronize-table semantic-after-partial-cache-change-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
67 (semanticdb-revert-hook before-revert-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
68 (semanticdb-kill-hook kill-buffer-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
69 (semanticdb-kill-hook change-major-mode-hook) ;; Not really a kill, but we need the same effect. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
70 (semanticdb-kill-emacs-hook kill-emacs-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
71 (semanticdb-save-all-db-idle auto-save-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
72 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
73 "List of hooks and values to add/remove when configuring semanticdb.") |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
74 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
75 ;;; SEMANTICDB-MODE |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
76 ;; |
104447
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
77 ;;;###autoload |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
78 (defun semanticdb-minor-mode-p () |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
79 "Return non-nil if `semanticdb-minor-mode' is active." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
80 (member (car (car semanticdb-hooks)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
81 (symbol-value (car (cdr (car semanticdb-hooks)))))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
82 |
104474
309eba6102e8
lisp/cedet/semantic/db-mode.el (global-semanticdb-minor-mode): Autoload.
Chong Yidong <cyd@stupidchicken.com>
parents:
104447
diff
changeset
|
83 ;;;###autoload |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
84 (defun global-semanticdb-minor-mode (&optional arg) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
85 "Toggle the use of `semanticdb-minor-mode'. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
86 If ARG is positive, enable, if it is negative, disable. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
87 If ARG is nil, then toggle." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
88 (interactive "P") |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
89 (if (not arg) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
90 (if (semanticdb-minor-mode-p) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
91 (setq arg -1) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
92 (setq arg 1))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
93 (let ((fn 'add-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
94 (h semanticdb-hooks) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
95 (changed nil)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
96 (if (< arg 0) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
97 (setq changed semanticdb-global-mode |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
98 semanticdb-global-mode nil |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
99 fn 'remove-hook) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
100 (setq changed (not semanticdb-global-mode) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
101 semanticdb-global-mode t)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
102 ;(message "ARG = %d" arg) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
103 (when changed |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
104 (while h |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
105 (funcall fn (car (cdr (car h))) (car (car h))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
106 (setq h (cdr h))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
107 ;; Call a hook |
104513
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
108 (run-hooks 'semanticdb-mode-hook)) |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
109 )) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
110 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
111 (defun semanticdb-toggle-global-mode () |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
112 "Toggle use of the Semantic Database feature. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
113 Update the environment of Semantic enabled buffers accordingly." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
114 (interactive) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
115 (if (semanticdb-minor-mode-p) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
116 ;; Save databases before disabling semanticdb. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
117 (semanticdb-save-all-db)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
118 ;; Toggle semanticdb minor mode. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
119 (global-semanticdb-minor-mode)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
120 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
121 ;;; Hook Functions: |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
122 ;; |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
123 ;; Functions used in hooks to keep SemanticDB operating. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
124 ;; |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
125 (defun semanticdb-semantic-init-hook-fcn () |
104513
a6a812dd2d88
* cedet/semantic/lex.el (semantic-lex-reset-hooks): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
104474
diff
changeset
|
126 "Function saved in `semantic-init-db-hook'. |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
127 Sets up the semanticdb environment." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
128 ;; Only initialize semanticdb if we have a file name. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
129 ;; There is no reason to cache a tag table if there is no |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
130 ;; way to load it back in later. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
131 (when (buffer-file-name) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
132 (let* ((ans (semanticdb-create-table-for-file (buffer-file-name))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
133 (cdb (car ans)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
134 (ctbl (cdr ans)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
135 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
136 ;; Get the current DB for this directory |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
137 (setq semanticdb-current-database cdb) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
138 ;; We set the major mode because we know what it is. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
139 (oset ctbl major-mode major-mode) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
140 ;; Local state |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
141 (setq semanticdb-current-table ctbl) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
142 ;; Try to swap in saved tags |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
143 (if (or (not (slot-boundp ctbl 'tags)) (not (oref ctbl tags)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
144 (/= (or (oref ctbl pointmax) 0) (point-max)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
145 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
146 (semantic-clear-toplevel-cache) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
147 ;; Unmatched syntax |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
148 (condition-case nil |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
149 (semantic-set-unmatched-syntax-cache |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
150 (oref ctbl unmatched-syntax)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
151 (unbound-slot |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
152 ;; Old version of the semanticdb table can miss the unmatched |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
153 ;; syntax slot. If so, just clear the unmatched syntax cache. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
154 (semantic-clear-unmatched-syntax-cache) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
155 ;; Make sure it has a value. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
156 (oset ctbl unmatched-syntax nil) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
157 )) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
158 ;; Keep lexical tables up to date. Don't load |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
159 ;; semantic-spp if it isn't needed. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
160 (let ((lt (oref ctbl lexical-table))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
161 (when lt |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
162 (require 'semantic/lex-spp) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
163 (semantic-lex-spp-set-dynamic-table lt))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
164 ;; Set the main tag cache. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
165 ;; This must happen after setting up buffer local variables |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
166 ;; since this will turn around and re-save those variables. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
167 (semantic--set-buffer-cache (oref ctbl tags)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
168 ;; Don't need it to be dirty. Set dirty due to hooks from above. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
169 (oset ctbl dirty nil) ;; Special case here. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
170 (oset ctbl buffer (current-buffer)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
171 ;; Bind into the buffer. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
172 (semantic--tag-link-cache-to-buffer) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
173 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
174 ))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
175 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
176 (defun semanticdb-revert-hook () |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
177 "Hook run before a revert buffer. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
178 We can't track incremental changes due to a revert, so just clear the cache. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
179 This will prevent the next batch of hooks from wasting time parsing things |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
180 that don't need to be parsed." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
181 (if (and (semantic-active-p) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
182 semantic--buffer-cache |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
183 semanticdb-current-table) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
184 (semantic-clear-toplevel-cache))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
185 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
186 (defun semanticdb-kill-hook () |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
187 "Function run when a buffer is killed. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
188 If there is a semantic cache, slurp out the overlays, and store |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
189 it in our database. If that buffer has no cache, ignore it, we'll |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
190 handle it later if need be." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
191 (when (and (semantic-active-p) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
192 semantic--buffer-cache |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
193 semanticdb-current-table) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
194 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
195 ;; Try to get a fast update. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
196 (semantic-fetch-tags-fast) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
197 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
198 ;; If the buffer is in a bad state, don't save anything... |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
199 (if (semantic-parse-tree-needs-rebuild-p) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
200 ;; If this is the case, don't save anything. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
201 (progn |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
202 (semantic-clear-toplevel-cache) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
203 (oset semanticdb-current-table pointmax 0) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
204 (oset semanticdb-current-table fsize 0) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
205 (oset semanticdb-current-table lastmodtime nil) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
206 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
207 ;; We have a clean buffer, save it off. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
208 (condition-case nil |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
209 (progn |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
210 (semantic--tag-unlink-cache-from-buffer) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
211 ;; Set pointmax only if we had some success in the unlink. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
212 (oset semanticdb-current-table pointmax (point-max)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
213 (let ((fattr (file-attributes |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
214 (semanticdb-full-filename |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
215 semanticdb-current-table)))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
216 (oset semanticdb-current-table fsize (nth 7 fattr)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
217 (oset semanticdb-current-table lastmodtime (nth 5 fattr)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
218 (oset semanticdb-current-table buffer nil) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
219 )) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
220 ;; If this messes up, just clear the system |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
221 (error |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
222 (semantic-clear-toplevel-cache) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
223 (message "semanticdb: Failed to deoverlay tag cache."))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
224 ) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
225 )) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
226 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
227 (defun semanticdb-kill-emacs-hook () |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
228 "Function called when Emacs is killed. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
229 Save all the databases." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
230 (semanticdb-save-all-db)) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
231 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
232 ;;; SYNCHRONIZATION HOOKS |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
233 ;; |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
234 (defun semanticdb-synchronize-table (new-table) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
235 "Function run after parsing. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
236 Argument NEW-TABLE is the new table of tags." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
237 (when semanticdb-current-table |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
238 (semanticdb-synchronize semanticdb-current-table new-table))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
239 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
240 (defun semanticdb-partial-synchronize-table (new-table) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
241 "Function run after parsing. |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
242 Argument NEW-TABLE is the new table of tags." |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
243 (when semanticdb-current-table |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
244 (semanticdb-partial-synchronize semanticdb-current-table new-table))) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
245 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
246 |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
247 (provide 'semantic/db-mode) |
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
248 |
104447
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
249 ;; Local variables: |
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
250 ;; generated-autoload-file: "loaddefs.el" |
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
251 ;; generated-autoload-feature: semantic/loaddefs |
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
252 ;; generated-autoload-load-name: "semantic/db-mode" |
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
253 ;; End: |
273e528a9f9b
* emacs-lisp/autoload.el (generated-autoload-load-name): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
104441
diff
changeset
|
254 |
104436
b9b48267c7d3
cedet/semantic/db-mode.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
255 ;;; semantic/db-mode.el ends here |