:type '(set (const lisp) (const c))
:group 'completion)
-;;(defvar *record-cmpl-statistics-p* nil
-;; "If non-nil, record completion statistics.")
-
;;(defvar *completion-auto-save-period* 1800
;; "The period in seconds to wait for emacs to be idle before autosaving
;;the completions. Default is a 1/2 hour.")
;; Note that the guts of this has been turned off. The guts
;; are in completion-stats.el.
-;;-----------------------------------------------
-;; Conditionalizing code on *record-cmpl-statistics-p*
-;;-----------------------------------------------
-;; All statistics code outside this block should use this
-(defmacro cmpl-statistics-block (&rest _body))
-;; "Only executes body if we are recording statistics."
-;; (list 'cond
-;; (list* '*record-cmpl-statistics-p* body)
-;; ))
-
;;-----------------------------------------------
;; Completion Sources
;;-----------------------------------------------
"Initialize the completion storage. All existing completions are lost."
(interactive)
(setq cmpl-prefix-obarray (make-vector cmpl-obarray-length 0))
- (setq cmpl-obarray (make-vector cmpl-obarray-length 0))
- (cmpl-statistics-block
- (record-clear-all-completions)))
+ (setq cmpl-obarray (make-vector cmpl-obarray-length 0)))
(defvar completions-list-return-value)
(set-cmpl-prefix-entry-tail prefix-entry entry))
(t
(set cmpl-db-prefix-symbol (make-cmpl-prefix-entry entry))))
- ;; statistics
- (cmpl-statistics-block
- (note-added-completion))
;; set symbol
(set cmpl-db-symbol (car entry)))))
(t
;; Start new prefix entry
(set cmpl-db-prefix-symbol (make-cmpl-prefix-entry entry))))
- ;; statistics
- (cmpl-statistics-block
- (note-added-completion))
;; Add it to the symbol
(set cmpl-db-symbol (car entry)))))
(or (set-cmpl-prefix-entry-head
prefix-entry (cdr (cmpl-prefix-entry-head prefix-entry)))
;; List is now empty
- (set cmpl-db-prefix-symbol nil))))
- (cmpl-statistics-block
- (note-completion-deleted)))
+ (set cmpl-db-prefix-symbol nil)))))
(error "Unknown completion `%s'" completion-string)))
;; Tests --
(let ((string (and enable-completion (symbol-before-point)))
(current-completion-source cmpl-source-separator)
entry)
- (cmpl-statistics-block
- (note-separator-character string))
(cond (string
(setq entry (add-completion-to-head string))
(if (and completion-on-separator-character
completion-prefix-min-length)))
;; get index
(setq cmpl-current-index (if current-prefix-arg arg 0))
- ;; statistics
- (cmpl-statistics-block
- (note-complete-entered-afresh cmpl-original-string))
;; reset database
(completion-search-reset cmpl-original-string)
;; erase what we've got
(goto-char insert-point))
(t;; point at end,
(setq cmpl-last-insert-location insert-point)))
- ;; statistics
- (cmpl-statistics-block
- (note-complete-inserted entry cmpl-current-index))
;; Done ! cmpl-stat-complete-successful
;;display the next completion
(cond
(if (and print-status-p (sit-for 0))
(message "No %scompletions."
(if (eq this-command last-command) "more " "")))
- ;; statistics
- (cmpl-statistics-block
- (record-complete-failed cmpl-current-index))
;; Pretend that we were never here
(setq this-command 'failed-complete)))))
\f
(defun add-completions-from-buffer ()
(interactive)
- (let ((current-completion-source cmpl-source-file-parsing)
- (start-num
- (cmpl-statistics-block
- (aref completion-add-count-vector cmpl-source-file-parsing)))
- mode)
+ (let ((current-completion-source cmpl-source-file-parsing))
(cond ((memq major-mode '(emacs-lisp-mode lisp-mode))
- (add-completions-from-lisp-buffer)
- (setq mode 'lisp))
+ (add-completions-from-lisp-buffer))
((memq major-mode '(c-mode))
- (add-completions-from-c-buffer)
- (setq mode 'c))
+ (add-completions-from-c-buffer))
(t
(error "Cannot parse completions in %s buffers"
- major-mode)))
- (cmpl-statistics-block
- (record-cmpl-parse-file
- mode (point-max)
- (- (aref completion-add-count-vector cmpl-source-file-parsing)
- start-num)))))
+ major-mode)))))
;; Find file hook
(defun completion-find-file-hook ()
((not cmpl-completions-accepted-p)
(message "Completions database has not changed - not writing."))
(t
- (save-completions-to-file))))
- (cmpl-statistics-block (record-cmpl-kill-emacs)))
+ (save-completions-to-file)))))
;; There is no point bothering to change this again
;; unless the package changes so much that it matters
(set-buffer-modified-p nil)
(message "Couldn't save completion file `%s'" filename)))
;; Reset accepted-p flag
- (setq cmpl-completions-accepted-p nil) )
- (cmpl-statistics-block
- (record-save-completions total-in-db total-perm total-saved))))))
+ (setq cmpl-completions-accepted-p nil) )))))
;;(defun auto-save-completions ()
;; (if (and save-completions-flag enable-completion cmpl-initialized-p
string entry last-use-time
cmpl-entry cmpl-last-use-time
(current-completion-source cmpl-source-init-file)
- (start-num
- (cmpl-statistics-block
- (aref completion-add-count-vector cmpl-source-file-parsing)))
(total-in-file 0) (total-perm 0))
;; insert the file into a buffer
(condition-case nil
(message "Loading completions from file %s . . . Done."
filename))
(message "End of file while reading completions."))))))
-
- (cmpl-statistics-block
- (record-load-completions
- total-in-file total-perm
- (- (aref completion-add-count-vector cmpl-source-init-file)
- start-num)))
))))))
(defun completion-initialize ()
(cond ((eq last-command 'complete)
(delete-region (point) cmpl-last-insert-location)
(insert cmpl-original-string)
- (setq completion-to-accept nil)
- (cmpl-statistics-block
- (record-complete-failed)))
+ (setq completion-to-accept nil))
(t
(kill-region beg end))))
(use-completion-before-separator)))
(defun use-completion-backward-under ()
- (use-completion-under-point)
- (if (eq last-command 'complete)
- ;; probably a failed completion if you have to back up
- (cmpl-statistics-block (record-complete-failed))))
+ (use-completion-under-point))
(defun use-completion-backward ()
- (if (eq last-command 'complete)
- ;; probably a failed completion if you have to back up
- (cmpl-statistics-block (record-complete-failed))))
+ nil)
(defun completion-before-command ()
(funcall (or (and (symbolp this-command)
;; fooquux
;; fooper
- (cmpl-statistics-block
- (record-completion-file-loaded))
-
(completion-initialize)))
;;-----------------------------------------------