diff --git a/.bash_profile b/.bash_profile index 7cdc599..7aa13c5 100644 --- a/.bash_profile +++ b/.bash_profile @@ -30,3 +30,6 @@ if [ -n "$BASH_VERSION" ]; then fi fi + +# Added by ~/.emacs.d/install.sh +export PATH=$HOME/.cask/bin:$PATH diff --git a/.emacs.d/Cask b/.emacs.d/Cask new file mode 100644 index 0000000..793b7cd --- /dev/null +++ b/.emacs.d/Cask @@ -0,0 +1,17 @@ +(source gnu) +(source melpa) +(source marmalade) +(source org) + +(depends-on "ack-and-a-half") +(depends-on "cask") +(depends-on "elpy") +(depends-on "evil") +(depends-on "exec-path-from-shell") +(depends-on "flx-ido") +(depends-on "flycheck") +(depends-on "magit") +(depends-on "pallet") +(depends-on "projectile") +(depends-on "yasnippet") +(depends-on "zenburn-theme") \ No newline at end of file diff --git a/.emacs.d/aquamacs-tools.el b/.emacs.d/aquamacs-tools.el deleted file mode 100644 index f9c8fac..0000000 --- a/.emacs.d/aquamacs-tools.el +++ /dev/null @@ -1,574 +0,0 @@ -;; Aquamacs tools -;; some helper functions for Aquamacs - -;; Author: David Reitter, david.reitter@gmail.com -;; Maintainer: David Reitter -;; Keywords: aquamacs - -;; This file is part of Aquamacs Emacs -;; http://www.aquamacs.org/ - -;; Aquamacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; Aquamacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;; Copyright (C) 2005, 2007, 2009 David Reitter - - -; remove an element from an associative list (alist) -;; (defun remove-alist-name (name alist) -;; "Removes element whose car is NAME from ALIST." -;; (cond ((equal name (car (car alist))) ; found name -;; (cdr alist)) -;; ((null alist) ; end of list (termination cond) -;; nil) -;; (t -;; (cons (car alist) ; first of alist plus rest w/ recursion -;; (remove-alist-name name (cdr alist)))))) - -;; this is assq -;; (defun get-alist-value-for-name (name alist) -;; "Returns value of element whose car is NAME from ALIST. nil if not found" -;; (cond ((equal name (car (car alist))) ; found name -;; (cdr (car alist))) -;; ((null alist) ; end of list (termination cond) -;; nil) -;; (t -;; ; first of alist plus rest w/ recursion -;; (get-alist-value-for-name name (cdr alist))))) - - -(defun running-on-a-mac-p () - (memq initial-window-system '(mac ns))) - - -(defun aquamacs-ask-for-confirmation (text long &optional yes-button no-button sheet no-cancel) - (let ((f (window-frame (minibuffer-window)))) - (make-frame-visible f) - (raise-frame f) ; make sure frame is visible - (if (or - (and last-nonmenu-event - (not (consp last-nonmenu-event))) - ;;(not (eq (car-safe last-nonmenu-event) - ;; 'mac-apple-event))) - (not use-dialog-box) - (not window-system)) - (progn - ;; make sure the frame's minibuffer is actually visible - ;; because minibuffer-setup-hook is not executed. - (and (fboundp 'smart-move-minibuffer-inside-screen) - smart-frame-positioning-mode - (smart-move-minibuffer-inside-screen f)) - (let ((text (if (string-match "\\(.*\\)\n" text) - (match-string 1 text) - text))) - (if (and long (not aquamacs-quick-yes-or-no-prompt)) - (old-yes-or-no-p text) - (old-y-or-n-p text)))) - (let ((ret (x-popup-dialog (or sheet (if (mouse-event-p last-command-event) last-command-event) - `(mouse-1 (,(selected-window) 100 (0 . 50) -1))) - (list text - `((,(or yes-button "Yes") . ?\r) . t) ; use \r instead of y until we have multi-keyEquivs - (if no-cancel 'no-cancel 'cancel) - `((,(or no-button "No") . ?n) . nil))))) - (if (eq ret 'cancel) - (keyboard-quit)) - ret)))) - - -(defun filter-list (lst elements) -"Returns LST sans ELEMENTS. -Creates a new list where all elements in ELEMENTS from LST -are removed. Comparison is done with `eq'." - -(if (null lst) - nil - (if (member (car lst) elements) - (filter-list (cdr lst) elements) - (cons (car lst) (filter-list (cdr lst) elements))))) - -(defun assq-set-all (source dest-sym) - "Writes all values from alist SOURCE into alist DEST-SYM, -overwriting any previous associations in DEST" - (mapc (lambda (x) - (set dest-sym (assq-delete-all (car x) (eval dest-sym)))) - source) - (set dest-sym (append source (eval dest-sym)))) - -; (setq test '((a . 1) (b . 2))) -; (assq-set-all '((b . 5) (c . 6)) 'test) - - - -; (assq-subtract '((asd . 3) (wqe . 5)) '((wqq . 3) (wqe . 5))) -; (assq-subtract '((asd . 3) (wqe . 5)) '((wqq . 3) (wqe . 2))) -; (assq-subtract '((asd . 3) (wqe . 5)) '((wqq . 3) (wqe . 2)) t) -(defun assq-subtract (a b &optional ignore-values) - "Subtracts alist B from A. Order of elements is NOT preserved. -If IGNORE-VALUES is non-nil, alist elements with differing cdrs (values) -are still subtracted." - - (let ((ret)) - (mapc (lambda (x) - (let ((p (assq (car x) b))) - (unless (and p (or ignore-values (eq (cdr p) (cdr x)))) - (setq ret (cons x ret))))) - a) - ret)) - -(defun assq-set (key val alist) - "Sets value associated with KEY to VAL in ALIST. -ALIST must be a symbol giving the variable name. -Comparison of keys is done with `eq'. -New key-value pair will be in car of ALIST." - (set alist (cons (cons key val) - (assq-delete-all key (eval alist))))) - -(defun assq-set-equal (key val alist) - "Sets value associated with the string KEY to VAL in ALIST. -Comparison of keys is done with `equal'. -ALIST must be a symbol giving the variable name. -New key-value pair will be in car of ALIST." - (set alist (cons (cons key val) - (assq-delete-all-equal key (eval alist))))) - -(defun assq-string-equal (key alist) - - (loop for element in alist - if (string-equal (car element) key) - return element)) - - -;; (setq asd (list 1 2 3 4 5)) -;; (aq-replace-in-list asd 1 'a) -;; asd -(defun aq-replace-in-list (list from to) - (if (eq (car-safe list) from) - (setcar list to)) - (if (cdr-safe list) - (aq-replace-in-list (cdr-safe list) from to))) - - -(defun assq-delete-all-equal (key alist) - "Delete from ALIST all elements whose car is `equal' to KEY. -Return the modified alist. -Elements of ALIST that are not conses are ignored." - (while (and (consp (car alist)) - (equal (car (car alist)) key)) - (setq alist (cdr alist))) - (let ((tail alist) tail-cdr) - (while (setq tail-cdr (cdr tail)) - (if (and (consp (car tail-cdr)) - (equal (car (car tail-cdr)) key)) - (setcdr tail (cdr tail-cdr)) - (setq tail tail-cdr)))) - alist) - - -(defun aq-list-contains (list element) - "Return non-nil if the LIST contains ELEMENT. Aquamacs only. -Comparison is done with `eq'." - (let (first result) - (while list - (if (not (eq (car-safe list) element)) - (setq list (cdr-safe list)) - (setq list nil) - (setq result t)) - ) - result)) -;; (aq-list-contains (list 1 2 3 4 5 'a 'b nil 'x) 1) - -(defun aq-list-contains-equal (list element) - "Return non-nil if the LIST contains ELEMENT. Aquamacs only. -Comparison is done with `equal'." - (let (first result) - (while list - (if (not (equal (car-safe list) element)) - (setq list (cdr-safe list)) - (setq list nil) - (setq result t)) - ) - result)) - - -(defun aq-chomp (str) - "Chomp leading and tailing whitespace from STR." - (let ((s (if (symbolp str) (symbol-name str) str))) - (replace-regexp-in-string "\\(^[[:space:]\n]*\\|[[:space:]\n]*$\\)" "" s))) - -(defun fontset-exist-p (font) -(condition-case nil - (fontset-info font) - (error nil)) -) - -;; this needs to be replaced by functions defined earlier -; recursion is not so good in elisp anyways -(defun filter-fonts (list) - "Filters the font list LIST to contain only existing fontsets. -Each element of LIST has to be of the form (symbol . fontset)." - (mapcar - (lambda (p) - (mapcar - (lambda (e) - (if (and (consp e) - (eq (car e) 'font) - (not (fontset-exist-p (cdr e))) - ) - '(font . "fontset-standard") - e)) - p)) - list)) - - - - - -(defun get-bufname (buf) - (if (eq (type-of buf) 'string) - buf - (buffer-name buf)) - -) - -(defun get-bufobj (buf) - (if (eq (type-of buf) 'string) - (get-buffer buf) - buf) - -) - -(defun find-all-windows-internal (buffer &optional onlyvis) - "Find all windows that display a buffer." - (let ((windows nil)) - (walk-windows (lambda (wind) - - (if (eq (window-buffer wind) buffer) - (push wind windows))) t (if onlyvis 'visible t)) - windows - ) -) -; (find-all-frames-internal (current-buffer)) -(defun find-all-frames-internal (buffer &optional onlyvis) - (let ((frames nil)) - (walk-windows (lambda (wind) - - (if (eq (window-buffer wind) buffer) - (let ((frm (window-frame wind))) - - (unless (memq frm frames) - (push frm frames))))) - nil (if onlyvis 'visible t)) - frames)) - - - - - - -(defgroup Aquamacs-is-more-than-Emacs nil - "All defaults in Aquamacs that are different from GNU Emacs. -This customization group contains every default for customization -variables that is changed in Aquamacs compared to GNU Emacs 22 or -an additionally included package. -Note that non-customization variables as well as code may be -changed or advised in Aquamacs (compared to GNU Emacs), so reverting -all of these defaults to their GNU Emacs value will not give you -a GNU Emacs. To achieve that, use a self-compiled binary of -Carbon Emacs instead of Aquamacs." -:group 'Aquamacs) - -(setq messages-buffer-max-lines 500) - -(defun aquamacs-set-defaults (list) - "Set a new default for a customization option in Aquamacs. -Add the value to the customization group `Aquamacs-is-more-than-Emacs'." - - (mapc (lambda (elt) - (custom-load-symbol (car elt)) - (let* ((symbol (car elt)) - ;; we're accessing the doc property here so - ;; if the symbol is an autoload symbol, - ;; it'll get loaded now before setting its defaults - ;; (e.g. standard-value), which would otherwise be - ;; overwritten. - (old-doc - (condition-case nil - (documentation-property - symbol - 'variable-documentation) - (error ""))) - (value (car (cdr elt))) - (s-value (get symbol 'standard-value))) - (set symbol value) - (set-default symbol value) ;; new in post-0.9.5 - - ;; make sure that user customizations get - ;; saved to customizations.el (.emacs) - ;; and that this appears as the new default. - - (put symbol 'standard-value `((quote ,(copy-tree (eval symbol))))) - ;; since the standard-value changed, put it in the - ;; group - - (unless (or (eq s-value (get symbol 'standard-value)) - (get symbol 'aquamacs-original-default)) - (put symbol 'aquamacs-original-default - s-value) - (if old-doc ;; in some cases the documentation - ;; might not be loaded. Can we load it somehow? - ;; either way, the "if" is a workaround. - (put symbol 'variable-documentation - (concat - old-doc - (format " - -The original default (in GNU Emacs or in the package) was: -%s" - s-value)))) - (custom-add-to-group 'Aquamacs-is-more-than-Emacs - symbol 'custom-variable)))) - list)) - -; (aquamacs-setup) - -(defun url-encode-string (string &optional coding) - "Encode STRING by url-encoding. -Optional CODING is used for encoding coding-system." - (apply (function concat) - (mapcar - (lambda (ch) - (cond - ((eq ch ?\n) ; newline - "%0D%0A") - ((string-match "[-a-zA-Z0-9_:/.]" (char-to-string ch)) - (char-to-string ch)) ; printable - ((char-equal ch ?\x20) ; space - "%20") - (t - (format "%%%02x" ch)))) ; escape - ;; Coerce a string to a list of chars. - (append (encode-coding-string (or string "") - (or coding - file-name-coding-system)) - nil)))) - - - -(defun load-post-sitestart-files () - "Load the Aquamacs plugins from site-start directories." - (let (loaded) - (mapcar - (lambda (p) (unless (file-exists-p (concat p "/.ignore")) - (let ((infod (concat p "/info")) - (file (expand-file-name (concat p "/site-start") "~/"))) - - (unless (member file loaded) - (if (file-directory-p infod) - (add-to-list 'Info-default-directory-list infod)) - (load file 'noerror) - (setq loaded (cons file loaded)))))) - load-path) - t)) - ; (load-post-sitestart-files) - -(defun load-pre-sitestart-files () - "Load the pre-start Aquamacs plugins from site-prestart directories." - (let (loaded) - (mapcar - (lambda (p) (unless (file-exists-p (concat p "/.ignore")) - (let ((infod (concat p "/info")) - (file (expand-file-name (concat p "/site-prestart") "~/"))) - (unless (member file loaded) - (if (file-directory-p infod) - (add-to-list 'Info-default-directory-list infod)) - (load file 'noerror) - (setq loaded (cons file loaded)))))) - load-path) - t)) -; (load-pre-sitestart-files) - - -(defun aq-current-milliseconds () - (let ((ti (cdr (current-time))) - - ) - (+ (* 1000 (- (car ti) (car (cdr aq-timer)))) - (/ (- (car (cdr ti)) - (car (cdr (cdr aq-timer))) - ) 1000)))) - -(defun aq-start-timer () - (setq aq-timer (current-time)) -) -;(aq-start-timer) -(defun aq-print-timer () - (message (format "%d" (aq-current-milliseconds)) )) - - -(defun aquamacs-pretty-mode-name (mode) - (capitalize - (replace-regexp-in-string "-mode" "" (symbol-name mode)))) - -;; apple command character is unicode x2318 -;; (aq-describe-modifier 'hyper) -(defun aq-describe-modifier (mod) - ;; translate modifier - (if (eq mod 'ctrl) - (setq mod 'control)) - (or - (cond - ((and (boundp 'mac-command-modifier) (eq mac-command-modifier mod)) - (string (decode-char 'ucs #X2318))) - ((and (boundp 'mac-option-modifier) (eq (or mac-option-modifier 'alt) - mod)) - (string (decode-char 'ucs #X2325))) - ((and (boundp 'mac-control-modifier) (eq (or mac-control-modifier 'control) - mod)) - (string (decode-char 'ucs #X2303))) - ((eq mod 'shift) - (string (decode-char 'ucs #X21E7))) - ((and (boundp 'mac-function-modifier) (eq mac-function-modifier mod)) - "Fn ") - ) - ;; (progn (print mod) nil) - (signal 'search-failed nil) - )) - -(defvar apple-char (string (decode-char 'ucs #X2318))) - -;; The following is a big hack. The mac port can't currently cope -;; with putting the command key combos in the menu, for various -;; reasons (1. they are just secondary alternatives, 2. command is defined -;; as 'alt' and only known as such) - -; redefine New -; (define-key menu-bar-edit-menu [mark-whole-buffer] (cdr (assq 'mark-whole-buffer (key-binding [menu-bar edit])))) - - -(defun get-window-for-other-buffer (&optional dont-make-frame buffer) - "Find a suitable window for other buffers. -Preferably the selected one. -If a frame is created for the other buffer, -show BUFFER in that frame." - (let ((sel-win (selected-window))) ; search all visible&iconified frames - (unless - (and sel-win - (window-live-p sel-win) - (eq t (frame-visible-p (window-frame sel-win))) - (not (special-display-p - (or (buffer-name (window-buffer sel-win)) "")))) - ;; search visible frames (but not dedicated ones) - (setq sel-win (get-largest-window 'visible nil))) - (unless - (and sel-win - (window-live-p sel-win) - (eq t (frame-visible-p (window-frame sel-win))) - (not (special-display-p - (or (buffer-name (window-buffer sel-win)) "")))) - (unless dont-make-frame - (setq sel-win (frame-first-window - (with-current-buffer (or buffer (current-buffer)) - ;; make sure we're not creating some "special" frame - (make-frame)))))) - (if sel-win - (unless (eq t (frame-visible-p (window-frame sel-win))) - (make-frame-visible (window-frame sel-win)))) - sel-win)) - -;; New documents -(defun new-empty-buffer-other-frame (&optional mode) - "Opens a new frame containing an empty buffer." - (interactive) - (new-empty-buffer t mode)) - -(defcustom aquamacs-default-major-mode 'text-mode - "Major mode in effect when new empty buffers are created. -Specifies the major mode to be used for `new-empty-buffer' -and `new-empty-buffer-other-frame'." - :group 'Aquamacs) - -(defun new-empty-buffer (&optional other-frame mode) - "Visits an empty buffer. -The major mode is set to MODE, or, if that is nil, -the value of `aquamacs-default-major-mode'." - (interactive) - (let ((buf (generate-new-buffer (mac-new-buffer-name "untitled")))) - ;; setting mode is done before showing the new frame - ;; because otherwise, we get a nasty animation effect - (save-excursion - (set-buffer buf) - (funcall (or mode aquamacs-default-major-mode (default-value 'major-mode) 'ignore))) - (if other-frame - (switch-to-buffer-other-frame buf) - (let ((one-buffer-one-frame-force one-buffer-one-frame-mode)) - ;; change window in case its unsuitable (dedicated or special display) - (select-window (get-window-for-other-buffer)) - ;; force new frame - (switch-to-buffer buf) - (select-frame-set-input-focus (window-frame (selected-window))))) - (setq buffer-offer-save t) - (put 'buffer-offer-save 'permanent-local t) - (set-buffer-modified-p nil))) - -(defalias 'new-frame-with-new-scratch 'new-empty-buffer) - -;; auto save purging - -(defun purge-session-and-auto-save-files (&optional days) - "Deletes old auto-save files and session files. -If given, DAYS indicates the number of days to keep such files. -Otherwise, a sensible default is assumed. -Files may be moved to the trash or deleted. - -Aquamacs only. -" - (interactive) - - (let* ((days (or days 31)) - (count1 - (aquamacs-purge-directory (file-name-directory auto-save-list-file-prefix) - (concat "\\`" (regexp-quote - (file-name-nondirectory - auto-save-list-file-prefix))) - days)) - (count2 - (aquamacs-purge-directory (file-name-directory aquamacs-autosave-directory) - ".*" - days))) - (if (called-interactively-p) - (message "%s Session and %s Auto save files older than %s days purged." count1 count2 days)))) - -(defun aquamacs-purge-directory (directory regexp days) - "Delete old files from directory" - (condition-case nil - (let* ((count 0) - (cutoff-time (- (car (current-time)) (/ (* days 24) 18)))) ; that's about a week - (mapc - (lambda (file) - (when (and (< (car (nth 5 (file-attributes file))) - cutoff-time) - (not (file-directory-p file))) - (move-file-to-trash file) - (setq count (1+ count)))) - (directory-files (expand-file-name directory) t - regexp t)) - count) - (error 0))) - - - - -(provide 'aquamacs-tools) - diff --git a/.emacs.d/auto-complete/Makefile b/.emacs.d/auto-complete/Makefile deleted file mode 100644 index 1d6f435..0000000 --- a/.emacs.d/auto-complete/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -VERSION=`perl -ne 'print $$1 if /;; Version: (.*)/' auto-complete.el` -PACKAGE=auto-complete-${VERSION} - -byte-compile: - emacs -Q -L . -batch -f batch-byte-compile *.el - -install: - emacs -Q -L . -batch -l etc/install ${DIR} - -clean: - rm -f *.elc - rm -f doc/*.html - rm -rf ${PACKAGE} - rm -f ${PACKAGE}.zip ${PACKAGE}.tar.bz2 - -package: clean - mkdir ${PACKAGE} - cp -r *.el Makefile README.txt TODO.txt doc etc dict ${PACKAGE} - -tar.bz2: package - tar cjf ${PACKAGE}.tar.bz2 ${PACKAGE} - -zip: package - zip -r ${PACKAGE}.zip ${PACKAGE} diff --git a/.emacs.d/auto-complete/README.txt b/.emacs.d/auto-complete/README.txt deleted file mode 100644 index c6ff110..0000000 --- a/.emacs.d/auto-complete/README.txt +++ /dev/null @@ -1,13 +0,0 @@ -Auto Complete Mode -================== - -Documentation -------------- - -* http://cx4a.org/software/auto-complete/ -* doc/index.txt - -License -------- - -Auto Complete Mode is distributed under the term of GPLv3. And its documentations under doc directory is distributed under the term of GFDL. diff --git a/.emacs.d/auto-complete/TODO.txt b/.emacs.d/auto-complete/TODO.txt deleted file mode 100644 index e897866..0000000 --- a/.emacs.d/auto-complete/TODO.txt +++ /dev/null @@ -1,10 +0,0 @@ -- etags, ctags -- emacswiki -- test facility -- support composed chars -- minibuffer completion -- performance issue (cache issue) -- asynchronous processing -- kanji henkan support -- create menu if needed -- quick help positioning on tabs (bug) diff --git a/.emacs.d/auto-complete/auto-complete-config.el b/.emacs.d/auto-complete/auto-complete-config.el deleted file mode 100644 index 26ec044..0000000 --- a/.emacs.d/auto-complete/auto-complete-config.el +++ /dev/null @@ -1,480 +0,0 @@ -;;; auto-complete-config.el --- auto-complete additional configuations - -;; Copyright (C) 2009, 2010 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama -;; Keywords: convenience -;; Version: 1.3 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(eval-when-compile - (require 'cl)) - -(require 'auto-complete) - - - -;;;; Additional sources - -;; imenu - -(defvar ac-imenu-index nil) - -(ac-clear-variable-every-10-minutes 'ac-imenu-index) - -(defun ac-imenu-candidates () - (loop with i = 0 - with stack = (progn - (unless (local-variable-p 'ac-imenu-index) - (make-local-variable 'ac-imenu-index)) - (or ac-imenu-index - (setq ac-imenu-index - (ignore-errors - (with-no-warnings - (imenu--make-index-alist)))))) - with result - while (and stack (or (not (integerp ac-limit)) - (< i ac-limit))) - for node = (pop stack) - if (consp node) - do - (let ((car (car node)) - (cdr (cdr node))) - (if (consp cdr) - (mapc (lambda (child) - (push child stack)) - cdr) - (when (and (stringp car) - (string-match (concat "^" (regexp-quote ac-prefix)) car)) - ;; Remove extra characters - (if (string-match "^.*\\(()\\|=\\|<>\\)$" car) - (setq car (substring car 0 (match-beginning 1)))) - (push car result) - (incf i)))) - finally return (nreverse result))) - -(ac-define-source imenu - '((depends imenu) - (candidates . ac-imenu-candidates) - (symbol . "s"))) - -;; gtags - -(defface ac-gtags-candidate-face - '((t (:background "lightgray" :foreground "navy"))) - "Face for gtags candidate" - :group 'auto-complete) - -(defface ac-gtags-selection-face - '((t (:background "navy" :foreground "white"))) - "Face for the gtags selected candidate." - :group 'auto-complete) - -(defun ac-gtags-candidate () - (ignore-errors - (split-string (shell-command-to-string (format "global -ci %s" ac-prefix)) "\n"))) - -(ac-define-source gtags - '((candidates . ac-gtags-candidate) - (candidate-face . ac-gtags-candidate-face) - (selection-face . ac-gtags-selection-face) - (requires . 3) - (symbol . "s"))) - -;; yasnippet - -(defface ac-yasnippet-candidate-face - '((t (:background "sandybrown" :foreground "black"))) - "Face for yasnippet candidate." - :group 'auto-complete) - -(defface ac-yasnippet-selection-face - '((t (:background "coral3" :foreground "white"))) - "Face for the yasnippet selected candidate." - :group 'auto-complete) - -(defun ac-yasnippet-table-hash (table) - (cond - ((fboundp 'yas/snippet-table-hash) - (yas/snippet-table-hash table)) - ((fboundp 'yas/table-hash) - (yas/table-hash table)))) - -(defun ac-yasnippet-table-parent (table) - (cond - ((fboundp 'yas/snippet-table-parent) - (yas/snippet-table-parent table)) - ((fboundp 'yas/table-parent) - (yas/table-parent table)))) - -(defun ac-yasnippet-candidate-1 (table) - (with-no-warnings - (let ((hashtab (ac-yasnippet-table-hash table)) - (parent (ac-yasnippet-table-parent table)) - candidates) - (maphash (lambda (key value) - (push key candidates)) - hashtab) - (setq candidates (all-completions ac-prefix (nreverse candidates))) - (if parent - (setq candidates - (append candidates (ac-yasnippet-candidate-1 parent)))) - candidates))) - -(defun ac-yasnippet-candidates () - (with-no-warnings - (if (fboundp 'yas/get-snippet-tables) - ;; >0.6.0 - (apply 'append (mapcar 'ac-yasnippet-candidate-1 (yas/get-snippet-tables major-mode))) - (let ((table - (if (fboundp 'yas/snippet-table) - ;; <0.6.0 - (yas/snippet-table major-mode) - ;; 0.6.0 - (yas/current-snippet-table)))) - (if table - (ac-yasnippet-candidate-1 table)))))) - -(ac-define-source yasnippet - '((depends yasnippet) - (candidates . ac-yasnippet-candidates) - (action . yas/expand) - (candidate-face . ac-yasnippet-candidate-face) - (selection-face . ac-yasnippet-selection-face) - (symbol . "a"))) - -;; semantic - -(defun ac-semantic-candidates (prefix) - (with-no-warnings - (delete "" ; semantic sometimes returns an empty string - (mapcar 'semantic-tag-name - (ignore-errors - (or (semantic-analyze-possible-completions - (semantic-analyze-current-context)) - (senator-find-tag-for-completion prefix))))))) - -(ac-define-source semantic - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (prefix . c-dot-ref) - (requires . 0) - (symbol . "m"))) - -(ac-define-source semantic-raw - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (symbol . "s"))) - -;; eclim - -(defun ac-eclim-candidates () - (with-no-warnings - (loop for c in (eclim/java-complete) - collect (nth 1 c)))) - -(ac-define-source eclim - '((candidates . ac-eclim-candidates) - (prefix . c-dot) - (requires . 0) - (symbol . "f"))) - -;; css - -;; Copied from company-css.el -(defconst ac-css-property-alist - ;; see http://www.w3.org/TR/CSS21/propidx.html - '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center" - "center-right" "right" "far-right" "right-side" "behind" "leftwards" - "rightwards") - ("background" background-color background-image background-repeat - background-attachment background-position) - ("background-attachment" "scroll" "fixed") - ("background-color" color "transparent") - ("background-image" uri "none") - ("background-position" percentage length "left" "center" "right" percentage - length "top" "center" "bottom" "left" "center" "right" "top" "center" - "bottom") - ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat") - ("border" border-width border-style border-color) - ("border-bottom" border) - ("border-bottom-color" border-color) - ("border-bottom-style" border-style) - ("border-bottom-width" border-width) - ("border-collapse" "collapse" "separate") - ("border-color" color "transparent") - ("border-left" border) - ("border-left-color" border-color) - ("border-left-style" border-style) - ("border-left-width" border-width) - ("border-right" border) - ("border-right-color" border-color) - ("border-right-style" border-style) - ("border-right-width" border-width) - ("border-spacing" length length) - ("border-style" border-style) - ("border-top" border) - ("border-top-color" border-color) - ("border-top-style" border-style) - ("border-top-width" border-width) - ("border-width" border-width) - ("bottom" length percentage "auto") - ("caption-side" "top" "bottom") - ("clear" "none" "left" "right" "both") - ("clip" shape "auto") - ("color" color) - ("content" "normal" "none" string uri counter "attr()" "open-quote" - "close-quote" "no-open-quote" "no-close-quote") - ("counter-increment" identifier integer "none") - ("counter-reset" identifier integer "none") - ("cue" cue-before cue-after) - ("cue-after" uri "none") - ("cue-before" uri "none") - ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize" - "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize" - "w-resize" "text" "wait" "help" "progress") - ("direction" "ltr" "rtl") - ("display" "inline" "block" "list-item" "run-in" "inline-block" "table" - "inline-table" "table-row-group" "table-header-group" "table-footer-group" - "table-row" "table-column-group" "table-column" "table-cell" - "table-caption" "none") - ("elevation" angle "below" "level" "above" "higher" "lower") - ("empty-cells" "show" "hide") - ("float" "left" "right" "none") - ("font" font-style font-variant font-weight font-size "/" line-height - font-family "caption" "icon" "menu" "message-box" "small-caption" - "status-bar") - ("font-family" family-name generic-family) - ("font-size" absolute-size relative-size length percentage) - ("font-style" "normal" "italic" "oblique") - ("font-variant" "normal" "small-caps") - ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400" - "500" "600" "700" "800" "900") - ("height" length percentage "auto") - ("left" length percentage "auto") - ("letter-spacing" "normal" length) - ("line-height" "normal" number length percentage) - ("list-style" list-style-type list-style-position list-style-image) - ("list-style-image" uri "none") - ("list-style-position" "inside" "outside") - ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero" - "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin" - "armenian" "georgian" "lower-alpha" "upper-alpha" "none") - ("margin" margin-width) - ("margin-bottom" margin-width) - ("margin-left" margin-width) - ("margin-right" margin-width) - ("margin-top" margin-width) - ("max-height" length percentage "none") - ("max-width" length percentage "none") - ("min-height" length percentage) - ("min-width" length percentage) - ("orphans" integer) - ("outline" outline-color outline-style outline-width) - ("outline-color" color "invert") - ("outline-style" border-style) - ("outline-width" border-width) - ("overflow" "visible" "hidden" "scroll" "auto") - ("padding" padding-width) - ("padding-bottom" padding-width) - ("padding-left" padding-width) - ("padding-right" padding-width) - ("padding-top" padding-width) - ("page-break-after" "auto" "always" "avoid" "left" "right") - ("page-break-before" "auto" "always" "avoid" "left" "right") - ("page-break-inside" "avoid" "auto") - ("pause" time percentage) - ("pause-after" time percentage) - ("pause-before" time percentage) - ("pitch" frequency "x-low" "low" "medium" "high" "x-high") - ("pitch-range" number) - ("play-during" uri "mix" "repeat" "auto" "none") - ("position" "static" "relative" "absolute" "fixed") - ("quotes" string string "none") - ("richness" number) - ("right" length percentage "auto") - ("speak" "normal" "none" "spell-out") - ("speak-header" "once" "always") - ("speak-numeral" "digits" "continuous") - ("speak-punctuation" "code" "none") - ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster" - "slower") - ("stress" number) - ("table-layout" "auto" "fixed") - ("text-align" "left" "right" "center" "justify") - ("text-decoration" "none" "underline" "overline" "line-through" "blink") - ("text-indent" length percentage) - ("text-transform" "capitalize" "uppercase" "lowercase" "none") - ("top" length percentage "auto") - ("unicode-bidi" "normal" "embed" "bidi-override") - ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle" - "bottom" "text-bottom" percentage length) - ("visibility" "visible" "hidden" "collapse") - ("voice-family" specific-voice generic-voice "*" specific-voice - generic-voice) - ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud" - "x-loud") - ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line") - ("widows" integer) - ("width" length percentage "auto") - ("word-spacing" "normal" length) - ("z-index" "auto" integer)) - "A list of CSS properties and their possible values.") - -(defconst ac-css-value-classes - '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large" - "xx-large") - (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove" - "ridge" "inset" "outset") - (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy" - "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow" - "rgb") - (counter "counter") - (family-name "Courier" "Helvetica" "Times") - (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace") - (generic-voice "male" "female" "child") - (margin-width "auto") ;; length percentage - (relative-size "larger" "smaller") - (shape "rect") - (uri "url")) - "A list of CSS property value classes and their contents.") - -(defconst ac-css-pseudo-classes - '("active" "after" "before" "first" "first-child" "first-letter" "first-line" - "focus" "hover" "lang" "left" "link" "right" "visited") - "Identifiers for CSS pseudo-elements and pseudo-classes.") - -(defvar ac-css-property nil - "Current editing property.") - -(defun ac-css-prefix () - (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:.*\\=" nil t)) - (setq ac-css-property (match-string 1)) - (or (ac-prefix-symbol) (point)))) - -(defun ac-css-property-candidates () - (or (loop with list = (assoc-default ac-css-property ac-css-property-alist) - with value - while (setq value (pop list)) - if (symbolp value) - do (setq list - (append list - (or (assoc-default value ac-css-value-classes) - (assoc-default (symbol-name value) ac-css-property-alist)))) - else collect value) - ac-css-pseudo-classes)) - -(defvar ac-source-css-property - '((candidates . ac-css-property-candidates) - (prefix . ac-css-prefix) - (requires . 0))) - - - -;;;; Not maintained sources - -;; ropemacs - -(defvar ac-ropemacs-loaded nil) -(defun ac-ropemacs-require () - (with-no-warnings - (unless ac-ropemacs-loaded - (pymacs-load "ropemacs" "rope-") - (if (boundp 'ropemacs-enable-autoimport) - (setq ropemacs-enable-autoimport t)) - (setq ac-ropemacs-loaded t)))) - -(defun ac-ropemacs-setup () - (ac-ropemacs-require) - ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources)) - (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs)))) - -(defun ac-ropemacs-initialize () - (autoload 'pymacs-apply "pymacs") - (autoload 'pymacs-call "pymacs") - (autoload 'pymacs-eval "pymacs" nil t) - (autoload 'pymacs-exec "pymacs" nil t) - (autoload 'pymacs-load "pymacs" nil t) - (add-hook 'python-mode-hook 'ac-ropemacs-setup) - t) - -(defvar ac-ropemacs-completions-cache nil) -(defvar ac-source-ropemacs - '((init - . (lambda () - (setq ac-ropemacs-completions-cache - (mapcar - (lambda (completion) - (concat ac-prefix completion)) - (ignore-errors - (rope-completions)))))) - (candidates . ac-ropemacs-completions-cache))) - -;; rcodetools - -(defvar ac-source-rcodetools - '((init . (lambda () - (require 'rcodetools) - (condition-case x - (save-excursion - (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles")) - (error) (setq rct-method-completion-table nil)))) - (candidates . (lambda () - (all-completions - ac-prefix - (mapcar - (lambda (completion) - (replace-regexp-in-string "\t.*$" "" (car completion))) - rct-method-completion-table)))))) - - - -;;;; Default settings - -(defun ac-common-setup () - (add-to-list 'ac-sources 'ac-source-filename)) - -(defun ac-emacs-lisp-mode-setup () - (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources))) - -(defun ac-cc-mode-setup () - (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources))) - -(defun ac-ruby-mode-setup () - (make-local-variable 'ac-ignores) - (add-to-list 'ac-ignores "end")) - -(defun ac-css-mode-setup () - (setq ac-sources (append '(ac-source-css-property) ac-sources))) - -(defun ac-config-default () - (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers)) - (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup) - (add-hook 'c-mode-common-hook 'ac-cc-mode-setup) - (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup) - (add-hook 'css-mode-hook 'ac-css-mode-setup) - (add-hook 'auto-complete-mode-hook 'ac-common-setup) - (global-auto-complete-mode t)) - -(provide 'auto-complete-config) -;;; auto-complete-config.el ends here diff --git a/.emacs.d/auto-complete/auto-complete-config.elc b/.emacs.d/auto-complete/auto-complete-config.elc deleted file mode 100644 index c88168c..0000000 Binary files a/.emacs.d/auto-complete/auto-complete-config.elc and /dev/null differ diff --git a/.emacs.d/auto-complete/auto-complete.el b/.emacs.d/auto-complete/auto-complete.el deleted file mode 100644 index 2472dc7..0000000 --- a/.emacs.d/auto-complete/auto-complete.el +++ /dev/null @@ -1,1897 +0,0 @@ -;;; auto-complete.el --- Auto Completion for GNU Emacs - -;; Copyright (C) 2008, 2009, 2010 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama -;; URL: http://cx4a.org/software/auto-complete -;; Keywords: completion, convenience -;; Version: 1.3 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: -;; -;; This extension provides a way to complete with popup menu like: -;; -;; def-!- -;; +-----------------+ -;; |defun::::::::::::| -;; |defvar | -;; |defmacro | -;; | ... | -;; +-----------------+ -;; -;; You can complete by typing and selecting menu. -;; -;; Entire documents are located in doc/ directory. -;; Take a look for information. -;; -;; Enjoy! - -;;; Code: - - - -(eval-when-compile - (require 'cl)) - -(require 'popup) - -;;;; Global stuff - -(defun ac-error (&optional var) - "Report an error and disable `auto-complete-mode'." - (ignore-errors - (message "auto-complete error: %s" var) - (auto-complete-mode -1) - var)) - - - -;;;; Customization - -(defgroup auto-complete nil - "Auto completion." - :group 'completion - :prefix "ac-") - -(defcustom ac-delay 0.1 - "Delay to completions will be available." - :type 'float - :group 'auto-complete) - -(defcustom ac-auto-show-menu 0.8 - "Non-nil means completion menu will be automatically shown." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (float :tag "Timer")) - :group 'auto-complete) - -(defcustom ac-show-menu-immediately-on-auto-complete t - "Non-nil means menu will be showed immediately on `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-expand-on-auto-complete t - "Non-nil means expand whole common part on first time `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-disable-faces '(font-lock-comment-face font-lock-string-face font-lock-doc-face) - "Non-nil means disable automatic completion on specified faces." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-stop-flymake-on-completing t - "Non-nil means disble flymake temporarily on completing." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-fuzzy t - "Non-nil means use fuzzy matching." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-fuzzy-cursor-color "red" - "Cursor color in fuzzy mode." - :type 'string - :group 'auto-complete) - -(defcustom ac-use-comphist t - "Non-nil means use intelligent completion history." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-comphist-threshold 0.7 - "Percentage of ignoring low scored candidates." - :type 'float - :group 'auto-complete) - -(defcustom ac-comphist-file - (expand-file-name (concat (if (boundp 'user-emacs-directory) - user-emacs-directory - "~/.emacs.d/") - "/ac-comphist.dat")) - "Completion history file name." - :type 'string - :group 'auto-complete) - -(defcustom ac-use-quick-help t - "Non-nil means use quick help." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-quick-help-delay 1.5 - "Delay to show quick help." - :type 'float - :group 'auto-complete) - -(defcustom ac-menu-height 10 - "Max height of candidate menu." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-menu-height 'ac-menu-height) - -(defcustom ac-quick-help-height 20 - "Max height of quick help." - :type 'integer - :group 'auto-complete) - -(defcustom ac-quick-help-prefer-x t - "Prefer X tooltip than overlay popup for displaying quick help." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-candidate-limit nil - "Limit number of candidates. Non-integer means no limit." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-max 'ac-candidate-limit) - -(defcustom ac-modes - '(emacs-lisp-mode - lisp-interaction-mode - c-mode cc-mode c++-mode - java-mode clojure-mode scala-mode - scheme-mode - ocaml-mode tuareg-mode - perl-mode cperl-mode python-mode ruby-mode - ecmascript-mode javascript-mode js-mode js2-mode php-mode css-mode - makefile-mode sh-mode fortran-mode f90-mode ada-mode - xml-mode sgml-mode) - "Major modes `auto-complete-mode' can run on." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-compatible-packages-regexp - "^ac-" - "Regexp to indicate what packages can work with auto-complete." - :type 'string - :group 'auto-complete) - -(defcustom ac-trigger-commands - '(self-insert-command) - "Trigger commands that specify whether `auto-complete' should start or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-commands-on-completing - '(delete-backward-char - backward-delete-char - backward-delete-char-untabify) - "Trigger commands that specify whether `auto-complete' should continue or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-key nil - "Non-nil means `auto-complete' will start by typing this key. -If you specify this TAB, for example, `auto-complete' will start by typing TAB, -and if there is no completions, an original command will be fallbacked." - :type 'string - :group 'auto-complete - :set (lambda (symbol value) - (set-default symbol value) - (when (and value - (fboundp 'ac-set-trigger-key)) - (ac-set-trigger-key value)))) - -(defcustom ac-auto-start 2 - "Non-nil means completion will be started automatically. -Positive integer means if a length of a word you entered is larger than the value, -completion will be started automatically. -If you specify `nil', never be started automatically." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (integer :tag "Require")) - :group 'auto-complete) - -(defcustom ac-ignores nil - "List of string to ignore completion." - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-ignore-case 'smart - "Non-nil means auto-complete ignores case. -If this value is `smart', auto-complete ignores case only when -a prefix doen't contain any upper case letters." - :type '(choice (const :tag "Yes" t) - (const :tag "Smart" smart) - (const :tag "No" nil)) - :group 'auto-complete) - -(defcustom ac-dwim t - "Non-nil means `auto-complete' works based on Do What I Mean." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-menu-map nil - "Non-nil means a special keymap `ac-menu-map' on completing menu will be used." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-overriding-local-map nil - "Non-nil means `overriding-local-map' will be used to hack for overriding key events on auto-copletion." - :type 'boolean - :group 'auto-complete) - -(defface ac-completion-face - '((t (:foreground "darkgray" :underline t))) - "Face for inline completion" - :group 'auto-complete) - -(defface ac-candidate-face - '((t (:background "lightgray" :foreground "black"))) - "Face for candidate." - :group 'auto-complete) - -(defface ac-selection-face - '((t (:background "steelblue" :foreground "white"))) - "Face for selected candidate." - :group 'auto-complete) - -(defvar auto-complete-mode-hook nil - "Hook for `auto-complete-mode'.") - - - -;;;; Internal variables - -(defvar auto-complete-mode nil - "Dummy variable to suppress compiler warnings.") - -(defvar ac-cursor-color nil - "Old cursor color.") - -(defvar ac-inline nil - "Inline completion instance.") - -(defvar ac-menu nil - "Menu instance.") - -(defvar ac-show-menu nil - "Flag to show menu on timer tick.") - -(defvar ac-last-completion nil - "Cons of prefix marker and selected item of last completion.") - -(defvar ac-quick-help nil - "Quick help instance") - -(defvar ac-completing nil - "Non-nil means `auto-complete-mode' is now working on completion.") - -(defvar ac-buffer nil - "Buffer where auto-complete is started.") - -(defvar ac-point nil - "Start point of prefix.") - -(defvar ac-last-point nil - "Last point of updating pattern.") - -(defvar ac-prefix nil - "Prefix string.") -(defvaralias 'ac-target 'ac-prefix) - -(defvar ac-selected-candidate nil - "Last selected candidate.") - -(defvar ac-common-part nil - "Common part string of meaningful candidates. -If there is no common part, this will be nil.") - -(defvar ac-whole-common-part nil - "Common part string of whole candidates. -If there is no common part, this will be nil.") - -(defvar ac-prefix-overlay nil - "Overlay for prefix string.") - -(defvar ac-timer nil - "Completion idle timer.") - -(defvar ac-show-menu-timer nil - "Show menu idle timer.") - -(defvar ac-quick-help-timer nil - "Quick help idle timer.") - -(defvar ac-triggered nil - "Flag to update.") - -(defvar ac-limit nil - "Limit number of candidates for each sources.") - -(defvar ac-candidates nil - "Current candidates.") - -(defvar ac-candidates-cache nil - "Candidates cache for individual sources.") - -(defvar ac-fuzzy-enable nil - "Non-nil means fuzzy matching is enabled.") - -(defvar ac-dwim-enable nil - "Non-nil means DWIM completion will be allowed.") - -(defvar ac-mode-map (make-sparse-keymap) - "Auto-complete mode map. It is also used for trigger key command. See also `ac-trigger-key'.") - -(defvar ac-completing-map - (let ((map (make-sparse-keymap))) - (define-key map "\t" 'ac-expand) - (define-key map "\r" 'ac-complete) - (define-key map (kbd "M-TAB") 'auto-complete) - (define-key map "\C-s" 'ac-isearch) - - (define-key map "\M-n" 'ac-next) - (define-key map "\M-p" 'ac-previous) - (define-key map [down] 'ac-next) - (define-key map [up] 'ac-previous) - - (define-key map [f1] 'ac-help) - (define-key map [M-f1] 'ac-persist-help) - (define-key map (kbd "C-?") 'ac-help) - (define-key map (kbd "C-M-?") 'ac-persist-help) - - (define-key map [C-down] 'ac-quick-help-scroll-down) - (define-key map [C-up] 'ac-quick-help-scroll-up) - (define-key map "\C-\M-n" 'ac-quick-help-scroll-down) - (define-key map "\C-\M-p" 'ac-quick-help-scroll-up) - - (dotimes (i 9) - (let ((symbol (intern (format "ac-complete-%d" (1+ i))))) - (fset symbol - `(lambda () - (interactive) - (when (and (ac-menu-live-p) (popup-select ac-menu ,i)) - (ac-complete)))) - (define-key map (read-kbd-macro (format "M-%s" (1+ i))) symbol))) - - map) - "Keymap for completion.") -(defvaralias 'ac-complete-mode-map 'ac-completing-map) - -(defvar ac-menu-map - (let ((map (make-sparse-keymap))) - (define-key map "\C-n" 'ac-next) - (define-key map "\C-p" 'ac-previous) - (set-keymap-parent map ac-completing-map) - map) - "Keymap for completion on completing menu.") - -(defvar ac-current-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map ac-completing-map) - map)) - -(defvar ac-match-function 'all-completions - "Default match function.") - -(defvar ac-prefix-definitions - '((symbol . ac-prefix-symbol) - (file . ac-prefix-file) - (valid-file . ac-prefix-valid-file) - (c-dot . ac-prefix-c-dot) - (c-dot-ref . ac-prefix-c-dot-ref)) - "Prefix definitions for common use.") - -(defvar ac-sources '(ac-source-words-in-same-mode-buffers) - "Sources for completion.") -(make-variable-buffer-local 'ac-sources) - -(defvar ac-compiled-sources nil - "Compiled source of `ac-sources'.") - -(defvar ac-current-sources nil - "Current working sources. This is sublist of `ac-compiled-sources'.") - -(defvar ac-omni-completion-sources nil - "Do not use this anymore.") - -(defvar ac-current-prefix-def nil) - -(defvar ac-ignoring-prefix-def nil) - - - -;;;; Intelligent completion history - -(defvar ac-comphist nil - "Database of completion history.") - -(defsubst ac-comphist-make-tab () - (make-hash-table :test 'equal)) - -(defsubst ac-comphist-tab (db) - (nth 0 db)) - -(defsubst ac-comphist-cache (db) - (nth 1 db)) - -(defun ac-comphist-make (&optional tab) - (list (or tab (ac-comphist-make-tab)) (make-hash-table :test 'equal :weakness t))) - -(defun ac-comphist-get (db string &optional create) - (let* ((tab (ac-comphist-tab db)) - (index (gethash string tab))) - (when (and create (null index)) - (setq index (make-vector (length string) 0)) - (puthash string index tab)) - index)) - -(defun ac-comphist-add (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (when (<= 0 prefix) - (setq string (substring-no-properties string)) - (let ((stat (ac-comphist-get db string t))) - (incf (aref stat prefix)) - (remhash string (ac-comphist-cache db))))) - -(defun ac-comphist-score (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (if (<= 0 prefix) - (let ((cache (gethash string (ac-comphist-cache db)))) - (or (and cache (aref cache prefix)) - (let ((stat (ac-comphist-get db string)) - (score 0.0)) - (when stat - (loop for p from 0 below (length string) - ;; sigmoid function - with a = 5 - with d = (/ 6.0 a) - for x = (- d (abs (- prefix p))) - for r = (/ 1.0 (1+ (exp (* (- a) x)))) - do - (incf score (* (aref stat p) r)))) - ;; Weight by distance - (incf score (max 0.0 (- 0.3 (/ (- (length string) prefix) 100.0)))) - (unless cache - (setq cache (make-vector (length string) nil)) - (puthash string cache (ac-comphist-cache db))) - (aset cache prefix score) - score))) - 0.0)) - -(defun ac-comphist-sort (db collection prefix &optional threshold) - (let (result - (n 0) - (total 0) - (cur 0)) - (setq result (mapcar (lambda (a) - (when (and cur threshold) - (if (>= cur (* total threshold)) - (setq cur nil) - (incf n) - (incf cur (cdr a)))) - (car a)) - (sort (mapcar (lambda (string) - (let ((score (ac-comphist-score db string prefix))) - (incf total score) - (cons string score))) - collection) - (lambda (a b) (< (cdr b) (cdr a)))))) - (if threshold - (cons n result) - result))) - -(defun ac-comphist-serialize (db) - (let (alist) - (maphash (lambda (k v) - (push (cons k v) alist)) - (ac-comphist-tab db)) - (list alist))) - -(defun ac-comphist-deserialize (sexp) - (condition-case nil - (ac-comphist-make (let ((tab (ac-comphist-make-tab))) - (mapc (lambda (cons) - (puthash (car cons) (cdr cons) tab)) - (nth 0 sexp)) - tab)) - (error (message "Invalid comphist db.") nil))) - -(defun ac-comphist-init () - (ac-comphist-load) - (add-hook 'kill-emacs-hook 'ac-comphist-save)) - -(defun ac-comphist-load () - (interactive) - (let ((db (if (file-exists-p ac-comphist-file) - (ignore-errors - (with-temp-buffer - (insert-file-contents ac-comphist-file) - (goto-char (point-min)) - (ac-comphist-deserialize (read (current-buffer)))))))) - (setq ac-comphist (or db (ac-comphist-make))))) - -(defun ac-comphist-save () - (interactive) - (require 'pp) - (ignore-errors - (with-temp-buffer - (pp (ac-comphist-serialize ac-comphist) (current-buffer)) - (write-region (point-min) (point-max) ac-comphist-file)))) - - - -;;;; Auto completion internals - -(defun ac-menu-at-wrapper-line-p () - "Return non-nil if current line is long and wrapped to next visual line." - (and (not truncate-lines) - (eq (line-beginning-position) - (save-excursion - (vertical-motion 1) - (line-beginning-position))))) - -(defun ac-prefix-symbol () - "Default prefix definition function." - (require 'thingatpt) - (car-safe (bounds-of-thing-at-point 'symbol))) -(defalias 'ac-prefix-default 'ac-prefix-symbol) - -(defun ac-prefix-file () - "File prefix." - (let ((point (re-search-backward "[\"<>' \t\r\n]" nil t))) - (if point (1+ point)))) - -(defun ac-prefix-valid-file () - "Existed (or to be existed) file prefix." - (let* ((line-beg (line-beginning-position)) - (end (point)) - (start (or (let ((point (re-search-backward "[\"<>'= \t\r\n]" line-beg t))) - (if point (1+ point))) - line-beg)) - (file (buffer-substring start end))) - (if (and file (or (string-match "^/" file) - (and (setq file (and (string-match "^[^/]*/" file) - (match-string 0 file))) - (file-directory-p file)))) - start))) - -(defun ac-prefix-c-dot () - "C-like languages dot(.) prefix." - (if (re-search-backward "\\.\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-prefix-c-dot-ref () - "C-like languages dot(.) and reference(->) prefix." - (if (re-search-backward "\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-define-prefix (name prefix) - "Define new prefix definition. -You can not use it in source definition like (prefix . `NAME')." - (push (cons name prefix) ac-prefix-definitions)) - -(defun ac-match-substring (prefix candidates) - (loop with regexp = (regexp-quote prefix) - for candidate in candidates - if (string-match regexp candidate) - collect candidate)) - -(defsubst ac-source-entity (source) - (if (symbolp source) - (symbol-value source) - source)) - -(defun ac-source-available-p (source) - (if (and (symbolp source) - (get source 'available)) - (eq (get source 'available) t) - (let* ((src (ac-source-entity source)) - (avail-pair (assq 'available src)) - (avail-cond (cdr avail-pair)) - (available (and (if avail-pair - (cond - ((symbolp avail-cond) - (funcall avail-cond)) - ((listp avail-cond) - (eval avail-cond))) - t) - (loop for feature in (assoc-default 'depends src) - unless (require feature nil t) return nil - finally return t)))) - (if (symbolp source) - (put source 'available (if available t 'no))) - available))) - -(defun ac-compile-sources (sources) - "Compiled `SOURCES' into expanded sources style." - (loop for source in sources - if (ac-source-available-p source) - do - (setq source (ac-source-entity source)) - (flet ((add-attribute (name value &optional append) (add-to-list 'source (cons name value) append))) - ;; prefix - (let* ((prefix (assoc 'prefix source)) - (real (assoc-default (cdr prefix) ac-prefix-definitions))) - (cond - (real - (add-attribute 'prefix real)) - ((null prefix) - (add-attribute 'prefix 'ac-prefix-default)))) - ;; match - (let ((match (assq 'match source))) - (cond - ((eq (cdr match) 'substring) - (setcdr match 'ac-match-substring))))) - and collect source)) - -(defun ac-compiled-sources () - (or ac-compiled-sources - (setq ac-compiled-sources - (ac-compile-sources ac-sources)))) - -(defsubst ac-menu-live-p () - (popup-live-p ac-menu)) - -(defun ac-menu-create (point width height) - (setq ac-menu - (popup-create point width height - :around t - :face 'ac-candidate-face - :selection-face 'ac-selection-face - :symbol t - :scroll-bar t - :margin-left 1))) - -(defun ac-menu-delete () - (when ac-menu - (popup-delete ac-menu) - (setq ac-menu))) - -(defsubst ac-inline-marker () - (nth 0 ac-inline)) - -(defsubst ac-inline-overlay () - (nth 1 ac-inline)) - -(defsubst ac-inline-live-p () - (and ac-inline (ac-inline-overlay) t)) - -(defun ac-inline-show (point string) - (unless ac-inline - (setq ac-inline (list (make-marker) nil))) - (save-excursion - (let ((overlay (ac-inline-overlay)) - (width 0) - (string-width (string-width string)) - (length 0) - (original-string string)) - ;; Calculate string space to show completion - (goto-char point) - (let (c) - (while (and (not (eolp)) - (< width string-width) - (setq c (char-after)) - (not (eq c ?\t))) ; special case for tab - (incf width (char-width c)) - (incf length) - (forward-char))) - - ;; Show completion - (goto-char point) - (cond - ((= width 0) - (set-marker (ac-inline-marker) point) - (let ((buffer-undo-list t)) - (insert " ")) - (setq width 1 - length 1)) - ((<= width string-width) - ;; No space to show - ;; Do nothing - ) - ((> width string-width) - ;; Need to fill space - (setq string (concat string (make-string (- width string-width) ? ))))) - (setq string (propertize string 'face 'ac-completion-face)) - (if overlay - (progn - (move-overlay overlay point (+ point length)) - (overlay-put overlay 'invisible nil)) - (setq overlay (make-overlay point (+ point length))) - (setf (nth 1 ac-inline) overlay) - (overlay-put overlay 'priority 9999) - ;; Help prefix-overlay in some cases - (overlay-put overlay 'keymap ac-current-map)) - (overlay-put overlay 'display (substring string 0 1)) - ;; TODO no width but char - (overlay-put overlay 'after-string (substring string 1)) - (overlay-put overlay 'string original-string)))) - -(defun ac-inline-delete () - (when (ac-inline-live-p) - (ac-inline-hide) - (delete-overlay (ac-inline-overlay)) - (setq ac-inline nil))) - -(defun ac-inline-hide () - (when (ac-inline-live-p) - (let ((overlay (ac-inline-overlay)) - (marker (ac-inline-marker)) - (buffer-undo-list t)) - (when overlay - (when (marker-position marker) - (save-excursion - (goto-char marker) - (delete-char 1) - (set-marker marker nil))) - (move-overlay overlay (point-min) (point-min)) - (overlay-put overlay 'invisible t) - (overlay-put overlay 'display nil) - (overlay-put overlay 'after-string nil))))) - -(defun ac-inline-update () - (if (and ac-completing ac-prefix (stringp ac-common-part)) - (let ((common-part-length (length ac-common-part)) - (prefix-length (length ac-prefix))) - (if (> common-part-length prefix-length) - (progn - (ac-inline-hide) - (ac-inline-show (point) (substring ac-common-part prefix-length))) - (ac-inline-delete))) - (ac-inline-delete))) - -(defun ac-put-prefix-overlay () - (unless ac-prefix-overlay - (let (newline) - ;; Insert newline to make sure that cursor always on the overlay - (when (and (eq ac-point (point-max)) - (eq ac-point (point))) - (popup-save-buffer-state - (insert "\n")) - (setq newline t)) - (setq ac-prefix-overlay (make-overlay ac-point (1+ (point)) nil t t)) - (overlay-put ac-prefix-overlay 'priority 9999) - (overlay-put ac-prefix-overlay 'keymap (make-sparse-keymap)) - (overlay-put ac-prefix-overlay 'newline newline)))) - -(defun ac-remove-prefix-overlay () - (when ac-prefix-overlay - (when (overlay-get ac-prefix-overlay 'newline) - ;; Remove inserted newline - (popup-save-buffer-state - (goto-char (point-max)) - (if (eq (char-before) ?\n) - (delete-char -1)))) - (delete-overlay ac-prefix-overlay))) - -(defun ac-activate-completing-map () - (if (and ac-show-menu ac-use-menu-map) - (set-keymap-parent ac-current-map ac-menu-map)) - (when (and ac-use-overriding-local-map - (null overriding-terminal-local-map)) - (setq overriding-terminal-local-map ac-current-map)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) ac-current-map))) - -(defun ac-deactivate-completing-map () - (set-keymap-parent ac-current-map ac-completing-map) - (when (and ac-use-overriding-local-map - (eq overriding-terminal-local-map ac-current-map)) - (setq overriding-terminal-local-map nil)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) nil))) - -(defsubst ac-selected-candidate () - (if ac-menu - (popup-selected-item ac-menu))) - -(defun ac-prefix (requires ignore-list) - (loop with current = (point) - with point - with prefix-def - with sources - for source in (ac-compiled-sources) - for prefix = (assoc-default 'prefix source) - for req = (or (assoc-default 'requires source) requires 1) - - if (null prefix-def) - do - (unless (member prefix ignore-list) - (save-excursion - (setq point (cond - ((symbolp prefix) - (funcall prefix)) - ((stringp prefix) - (and (re-search-backward (concat prefix "\\=") nil t) - (or (match-beginning 1) (match-beginning 0)))) - ((stringp (car-safe prefix)) - (let ((regexp (nth 0 prefix)) - (end (nth 1 prefix)) - (group (nth 2 prefix))) - (and (re-search-backward (concat regexp "\\=") nil t) - (funcall (if end 'match-end 'match-beginning) - (or group 0))))) - (t - (eval prefix)))) - (if (and point - (integerp req) - (< (- current point) req)) - (setq point nil)) - (if point - (setq prefix-def prefix)))) - - if (equal prefix prefix-def) do (push source sources) - - finally return - (and point (list prefix-def point (nreverse sources))))) - -(defun ac-init () - "Initialize current sources to start completion." - (setq ac-candidates-cache nil) - (loop for source in ac-current-sources - for function = (assoc-default 'init source) - if function do - (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function)))))) - -(defun ac-candidates-1 (source) - (let* ((do-cache (assq 'cache source)) - (function (assoc-default 'candidates source)) - (action (assoc-default 'action source)) - (document (assoc-default 'document source)) - (symbol (assoc-default 'symbol source)) - (ac-limit (or (assoc-default 'limit source) ac-limit)) - (face (or (assoc-default 'face source) (assoc-default 'candidate-face source))) - (selection-face (assoc-default 'selection-face source)) - (cache (and do-cache (assq source ac-candidates-cache))) - (candidates (cdr cache))) - (unless cache - (setq candidates (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function))))) - ;; Convert (name value) format candidates into name with text properties. - (setq candidates (mapcar (lambda (candidate) - (if (consp candidate) - (propertize (car candidate) 'value (cdr candidate)) - candidate)) - candidates)) - (when do-cache - (push (cons source candidates) ac-candidates-cache))) - (setq candidates (funcall (or (assoc-default 'match source) - ac-match-function) - ac-prefix candidates)) - ;; Remove extra items regarding to ac-limit - (if (and (integerp ac-limit) (> ac-limit 1) (> (length candidates) ac-limit)) - (setcdr (nthcdr (1- ac-limit) candidates) nil)) - ;; Put candidate properties - (setq candidates (mapcar (lambda (candidate) - (popup-item-propertize candidate - 'action action - 'symbol symbol - 'document document - 'popup-face face - 'selection-face selection-face)) - candidates)) - candidates)) - -(defun ac-candidates () - "Produce candidates for current sources." - (loop with completion-ignore-case = (or (eq ac-ignore-case t) - (and (eq ac-ignore-case 'smart) - (let ((case-fold-search nil)) (not (string-match "[[:upper:]]" ac-prefix))))) - with case-fold-search = completion-ignore-case - with prefix-len = (length ac-prefix) - for source in ac-current-sources - append (ac-candidates-1 source) into candidates - finally return - (progn - (delete-dups candidates) - (if (and ac-use-comphist ac-comphist) - (if ac-show-menu - (let* ((pair (ac-comphist-sort ac-comphist candidates prefix-len ac-comphist-threshold)) - (n (car pair)) - (result (cdr pair)) - (cons (if (> n 0) (nthcdr (1- n) result))) - (cdr (cdr cons))) - (if cons (setcdr cons nil)) - (setq ac-common-part (try-completion ac-prefix result)) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - (if cons (setcdr cons cdr)) - result) - (setq candidates (ac-comphist-sort ac-comphist candidates prefix-len)) - (setq ac-common-part (if candidates (popup-x-to-string (car candidates)))) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - candidates) - (setq ac-common-part (try-completion ac-prefix candidates)) - (setq ac-whole-common-part ac-common-part) - candidates)))) - -(defun ac-update-candidates (cursor scroll-top) - "Update candidates of menu to `ac-candidates' and redraw it." - (setf (popup-cursor ac-menu) cursor - (popup-scroll-top ac-menu) scroll-top) - (setq ac-dwim-enable (= (length ac-candidates) 1)) - (if ac-candidates - (progn - (setq ac-completing t) - (ac-activate-completing-map)) - (setq ac-completing nil) - (ac-deactivate-completing-map)) - (ac-inline-update) - (popup-set-list ac-menu ac-candidates) - (if (and (not ac-fuzzy-enable) - (<= (length ac-candidates) 1)) - (popup-hide ac-menu) - (if ac-show-menu - (popup-draw ac-menu)))) - -(defun ac-reposition () - "Force to redraw candidate menu with current `ac-candidates'." - (let ((cursor (popup-cursor ac-menu)) - (scroll-top (popup-scroll-top ac-menu))) - (ac-menu-delete) - (ac-menu-create ac-point (popup-preferred-width ac-candidates) (popup-height ac-menu)) - (ac-update-candidates cursor scroll-top))) - -(defun ac-cleanup () - "Cleanup auto completion." - (if ac-cursor-color - (set-cursor-color ac-cursor-color)) - (when (and ac-use-comphist ac-comphist) - (when (and (null ac-selected-candidate) - (member ac-prefix ac-candidates)) - ;; Assume candidate is selected by just typing - (setq ac-selected-candidate ac-prefix) - (setq ac-last-point ac-point)) - (when ac-selected-candidate - (ac-comphist-add ac-comphist - ac-selected-candidate - (if ac-last-point - (- ac-last-point ac-point) - (length ac-prefix))))) - (ac-deactivate-completing-map) - (ac-remove-prefix-overlay) - (ac-remove-quick-help) - (ac-inline-delete) - (ac-menu-delete) - (ac-cancel-timer) - (ac-cancel-show-menu-timer) - (ac-cancel-quick-help-timer) - (setq ac-cursor-color nil - ac-inline nil - ac-show-menu nil - ac-menu nil - ac-completing nil - ac-point nil - ac-last-point nil - ac-prefix nil - ac-prefix-overlay nil - ac-selected-candidate nil - ac-common-part nil - ac-whole-common-part nil - ac-triggered nil - ac-limit nil - ac-candidates nil - ac-candidates-cache nil - ac-fuzzy-enable nil - ac-dwim-enable nil - ac-compiled-sources nil - ac-current-sources nil - ac-current-prefix-def nil - ac-ignoring-prefix-def nil)) - -(defsubst ac-abort () - "Abort completion." - (ac-cleanup)) - -(defun ac-expand-string (string &optional remove-undo-boundary) - "Expand `STRING' into the buffer and update `ac-prefix' to `STRING'. -This function records deletion and insertion sequences by `undo-boundary'. -If `remove-undo-boundary' is non-nil, this function also removes `undo-boundary' -that have been made before in this function." - (when (not (equal string (buffer-substring ac-point (point)))) - (undo-boundary) - ;; We can't use primitive-undo since it undoes by - ;; groups, divided by boundaries. - ;; We don't want boundary between deletion and insertion. - ;; So do it manually. - ;; Delete region silently for undo: - (if remove-undo-boundary - (progn - (let (buffer-undo-list) - (save-excursion - (delete-region ac-point (point)))) - (setq buffer-undo-list - (nthcdr 2 buffer-undo-list))) - (delete-region ac-point (point))) - (insert string) - ;; Sometimes, possible when omni-completion used, (insert) added - ;; to buffer-undo-list strange record about position changes. - ;; Delete it here: - (when (and remove-undo-boundary - (integerp (cadr buffer-undo-list))) - (setcdr buffer-undo-list (nthcdr 2 buffer-undo-list))) - (undo-boundary) - (setq ac-selected-candidate string) - (setq ac-prefix string))) - -(defun ac-set-trigger-key (key) - "Set `ac-trigger-key' to `KEY'. It is recommemded to use this function instead of calling `setq'." - ;; Remove old mapping - (when ac-trigger-key - (define-key ac-mode-map (read-kbd-macro ac-trigger-key) nil)) - - ;; Make new mapping - (setq ac-trigger-key key) - (when key - (define-key ac-mode-map (read-kbd-macro key) 'ac-trigger-key-command))) - -(defun ac-set-timer () - (unless ac-timer - (setq ac-timer (run-with-idle-timer ac-delay ac-delay 'ac-update-greedy)))) - -(defun ac-cancel-timer () - (when (timerp ac-timer) - (cancel-timer ac-timer) - (setq ac-timer nil))) - -(defun ac-update (&optional force) - (when (and auto-complete-mode - ac-prefix - (or ac-triggered - force) - (not isearch-mode)) - (ac-put-prefix-overlay) - (setq ac-candidates (ac-candidates)) - (let ((preferred-width (popup-preferred-width ac-candidates))) - ;; Reposition if needed - (when (or (null ac-menu) - (>= (popup-width ac-menu) preferred-width) - (<= (popup-width ac-menu) (- preferred-width 10)) - (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p))) - (ac-inline-hide) ; Hide overlay to calculate correct column - (ac-menu-delete) - (ac-menu-create ac-point preferred-width ac-menu-height))) - (ac-update-candidates 0 0) - t)) - -(defun ac-update-greedy (&optional force) - (let (result) - (while (when (and (setq result (ac-update force)) - (null ac-candidates)) - (add-to-list 'ac-ignoring-prefix-def ac-current-prefix-def) - (ac-start :force-init t) - ac-current-prefix-def)) - result)) - -(defun ac-set-show-menu-timer () - (when (and (or (integerp ac-auto-show-menu) (floatp ac-auto-show-menu)) - (null ac-show-menu-timer)) - (setq ac-show-menu-timer (run-with-idle-timer ac-auto-show-menu ac-auto-show-menu 'ac-show-menu)))) - -(defun ac-cancel-show-menu-timer () - (when (timerp ac-show-menu-timer) - (cancel-timer ac-show-menu-timer) - (setq ac-show-menu-timer nil))) - -(defun ac-show-menu () - (when (not (eq ac-show-menu t)) - (setq ac-show-menu t) - (ac-inline-hide) - (ac-remove-quick-help) - (ac-update t))) - -(defun ac-help (&optional persist) - (interactive "P") - (when ac-menu - (popup-menu-show-help ac-menu persist))) - -(defun ac-persist-help () - (interactive) - (ac-help t)) - -(defun ac-last-help (&optional persist) - (interactive "P") - (when ac-last-completion - (popup-item-show-help (cdr ac-last-completion) persist))) - -(defun ac-last-persist-help () - (interactive) - (ac-last-help t)) - -(defun ac-set-quick-help-timer () - (when (and ac-use-quick-help - (null ac-quick-help-timer)) - (setq ac-quick-help-timer (run-with-idle-timer ac-quick-help-delay ac-quick-help-delay 'ac-quick-help)))) - -(defun ac-cancel-quick-help-timer () - (when (timerp ac-quick-help-timer) - (cancel-timer ac-quick-help-timer) - (setq ac-quick-help-timer nil))) - -(defun ac-pos-tip-show-quick-help (menu &optional item &rest args) - (let* ((point (plist-get args :point)) - (around nil) - (parent-offset (popup-offset menu)) - (doc (popup-menu-documentation menu item))) - (when (stringp doc) - (if (popup-hidden-p menu) - (setq around t) - (setq point nil)) - (with-no-warnings - (pos-tip-show doc - 'popup-tip-face - (or point - (and menu - (popup-child-point menu parent-offset)) - (point)) - nil 0 - popup-tip-max-width - nil nil - (and (not around) 0)) - (unless (plist-get args :nowait) - (clear-this-command-keys) - (unwind-protect - (push (read-event (plist-get args :prompt)) unread-command-events) - (pos-tip-hide)) - t))))) - -(defun ac-quick-help (&optional force) - (interactive) - (when (and (or force (null this-command)) - (ac-menu-live-p) - (null ac-quick-help)) - (setq ac-quick-help - (funcall (if (and ac-quick-help-prefer-x - (eq window-system 'x) - (featurep 'pos-tip)) - 'ac-pos-tip-show-quick-help - 'popup-menu-show-quick-help) - ac-menu nil - :point ac-point - :height ac-quick-help-height - :nowait t)))) - -(defun ac-remove-quick-help () - (when ac-quick-help - (popup-delete ac-quick-help) - (setq ac-quick-help nil))) - -(defun ac-last-quick-help () - (interactive) - (when (and ac-last-completion - (eq (marker-buffer (car ac-last-completion)) - (current-buffer))) - (let ((doc (popup-item-documentation (cdr ac-last-completion))) - (point (marker-position (car ac-last-completion)))) - (when (stringp doc) - (if (and ac-quick-help-prefer-x - (eq window-system 'x) - (featurep 'pos-tip)) - (with-no-warnings (pos-tip-show doc nil point nil 0)) - (popup-tip doc - :point point - :around t - :scroll-bar t - :margin t)))))) - -(defmacro ac-define-quick-help-command (name arglist &rest body) - (declare (indent 2)) - `(progn - (defun ,name ,arglist ,@body) - (put ',name 'ac-quick-help-command t))) - -(ac-define-quick-help-command ac-quick-help-scroll-down () - (interactive) - (when ac-quick-help - (popup-scroll-down ac-quick-help))) - -(ac-define-quick-help-command ac-quick-help-scroll-up () - (interactive) - (when ac-quick-help - (popup-scroll-up ac-quick-help))) - - - -;;;; Auto completion isearch - -(defun ac-isearch-callback (list) - (setq ac-dwim-enable (eq (length list) 1))) - -(defun ac-isearch () - (interactive) - (when (ac-menu-live-p) - (ac-cancel-show-menu-timer) - (ac-cancel-quick-help-timer) - (ac-show-menu) - (popup-isearch ac-menu :callback 'ac-isearch-callback))) - - - -;;;; Auto completion commands - -(defun auto-complete (&optional sources) - "Start auto-completion at current point." - (interactive) - (let ((menu-live (ac-menu-live-p)) - (inline-live (ac-inline-live-p))) - (ac-abort) - (let ((ac-sources (or sources ac-sources))) - (if (or ac-show-menu-immediately-on-auto-complete - inline-live) - (setq ac-show-menu t)) - (ac-start)) - (when (ac-update-greedy t) - ;; TODO Not to cause inline completion to be disrupted. - (if (ac-inline-live-p) - (ac-inline-hide)) - ;; Not to expand when it is first time to complete - (when (and (or (and (not ac-expand-on-auto-complete) - (> (length ac-candidates) 1) - (not menu-live)) - (not (let ((ac-common-part ac-whole-common-part)) - (ac-expand-common)))) - ac-use-fuzzy - (null ac-candidates)) - (ac-fuzzy-complete))))) - -(defun ac-fuzzy-complete () - "Start fuzzy completion at current point." - (interactive) - (when (require 'fuzzy nil) - (unless (ac-menu-live-p) - (ac-start)) - (let ((ac-match-function 'fuzzy-all-completions)) - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color))) - (if ac-fuzzy-cursor-color - (set-cursor-color ac-fuzzy-cursor-color)) - (setq ac-show-menu t) - (setq ac-fuzzy-enable t) - (setq ac-triggered nil) - (ac-update t))) - t) - -(defun ac-next () - "Select next candidate." - (interactive) - (when (ac-menu-live-p) - (popup-next ac-menu) - (setq ac-show-menu t) - (if (eq this-command 'ac-next) - (setq ac-dwim-enable t)))) - -(defun ac-previous () - "Select previous candidate." - (interactive) - (when (ac-menu-live-p) - (popup-previous ac-menu) - (setq ac-show-menu t) - (if (eq this-command 'ac-previous) - (setq ac-dwim-enable t)))) - -(defun ac-expand () - "Try expand, and if expanded twice, select next candidate." - (interactive) - (unless (ac-expand-common) - (let ((string (ac-selected-candidate))) - (when string - (when (equal ac-prefix string) - (ac-next) - (setq string (ac-selected-candidate))) - (ac-expand-string string (eq last-command this-command)) - ;; Do reposition if menu at long line - (if (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p)) - (ac-reposition)) - (setq ac-show-menu t) - string)))) - -(defun ac-expand-common () - "Try to expand meaningful common part." - (interactive) - (if (and ac-dwim ac-dwim-enable) - (ac-complete) - (when (and (ac-inline-live-p) - ac-common-part) - (ac-inline-hide) - (ac-expand-string ac-common-part (eq last-command this-command)) - (setq ac-common-part nil) - t))) - -(defun ac-complete () - "Try complete." - (interactive) - (let* ((candidate (ac-selected-candidate)) - (action (popup-item-property candidate 'action)) - (fallback nil)) - (when candidate - (unless (ac-expand-string candidate) - (setq fallback t)) - ;; Remember to show help later - (when (and ac-point candidate) - (unless ac-last-completion - (setq ac-last-completion (cons (make-marker) nil))) - (set-marker (car ac-last-completion) ac-point ac-buffer) - (setcdr ac-last-completion candidate))) - (ac-abort) - (cond - (action - (funcall action)) - (fallback - (ac-fallback-command))) - candidate)) - -(defun* ac-start (&key - requires - force-init) - "Start completion." - (interactive) - (if (not auto-complete-mode) - (message "auto-complete-mode is not enabled") - (let* ((info (ac-prefix requires ac-ignoring-prefix-def)) - (prefix-def (nth 0 info)) - (point (nth 1 info)) - (sources (nth 2 info)) - prefix - (init (or force-init (not (eq ac-point point))))) - (if (or (null point) - (member (setq prefix (buffer-substring-no-properties point (point))) - ac-ignores)) - (prog1 nil - (ac-abort)) - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color))) - (setq ac-show-menu (or ac-show-menu (if (eq ac-auto-show-menu t) t)) - ac-current-sources sources - ac-buffer (current-buffer) - ac-point point - ac-prefix prefix - ac-limit ac-candidate-limit - ac-triggered t - ac-current-prefix-def prefix-def) - (when (or init (null ac-prefix-overlay)) - (ac-init)) - (ac-set-timer) - (ac-set-show-menu-timer) - (ac-set-quick-help-timer) - (ac-put-prefix-overlay))))) - -(defun ac-stop () - "Stop completiong." - (interactive) - (setq ac-selected-candidate nil) - (ac-abort)) - -(defun ac-trigger-key-command (&optional force) - (interactive "P") - (if (or force (ac-trigger-command-p last-command)) - (auto-complete) - (ac-fallback-command 'ac-trigger-key-command))) - - - -;;;; Basic cache facility - -(defvar ac-clear-variables-every-minute-timer nil) -(defvar ac-clear-variables-after-save nil) -(defvar ac-clear-variables-every-minute nil) -(defvar ac-minutes-counter 0) - -(defun ac-clear-variable-after-save (variable &optional pred) - (add-to-list 'ac-clear-variables-after-save (cons variable pred))) - -(defun ac-clear-variables-after-save () - (dolist (pair ac-clear-variables-after-save) - (if (or (null (cdr pair)) - (funcall (cdr pair))) - (set (car pair) nil)))) - -(defun ac-clear-variable-every-minutes (variable minutes) - (add-to-list 'ac-clear-variables-every-minute (cons variable minutes))) - -(defun ac-clear-variable-every-minute (variable) - (ac-clear-variable-every-minutes variable 1)) - -(defun ac-clear-variable-every-10-minutes (variable) - (ac-clear-variable-every-minutes variable 10)) - -(defun ac-clear-variables-every-minute () - (incf ac-minutes-counter) - (dolist (pair ac-clear-variables-every-minute) - (if (eq (% ac-minutes-counter (cdr pair)) 0) - (set (car pair) nil)))) - - - -;;;; Auto complete mode - -(defun ac-cursor-on-diable-face-p (&optional point) - (memq (get-text-property (or point (point)) 'face) ac-disable-faces)) - -(defun ac-trigger-command-p (command) - "Return non-nil if `COMMAND' is a trigger command." - (and (symbolp command) - (or (memq command ac-trigger-commands) - (string-match "self-insert-command" (symbol-name command)) - (string-match "electric" (symbol-name command))))) - -(defun ac-fallback-command (&optional except-command) - (let* ((auto-complete-mode nil) - (keys (this-command-keys-vector)) - (command (if keys (key-binding keys)))) - (when (and (commandp command) - (not (eq command except-command))) - (setq this-command command) - (call-interactively command)))) - -(defun ac-compatible-package-command-p (command) - "Return non-nil if `COMMAND' is compatible with auto-complete." - (and (symbolp command) - (string-match ac-compatible-packages-regexp (symbol-name command)))) - -(defun ac-handle-pre-command () - (condition-case var - (if (or (setq ac-triggered (and (not ac-fuzzy-enable) ; ignore key storkes in fuzzy mode - (or (eq this-command 'auto-complete) ; special case - (ac-trigger-command-p this-command) - (and ac-completing - (memq this-command ac-trigger-commands-on-completing))) - (not (ac-cursor-on-diable-face-p)))) - (ac-compatible-package-command-p this-command)) - (progn - (if (or (not (symbolp this-command)) - (not (get this-command 'ac-quick-help-command))) - (ac-remove-quick-help)) - ;; Not to cause inline completion to be disrupted. - (ac-inline-hide)) - (ac-abort)) - (error (ac-error var)))) - -(defun ac-handle-post-command () - (condition-case var - (when (and ac-triggered - (or ac-auto-start - ac-completing) - (not isearch-mode)) - (setq ac-last-point (point)) - (ac-start :requires (unless ac-completing ac-auto-start)) - (ac-inline-update)) - (error (ac-error var)))) - -(defun ac-setup () - (if ac-trigger-key - (ac-set-trigger-key ac-trigger-key)) - (if ac-use-comphist - (ac-comphist-init)) - (unless ac-clear-variables-every-minute-timer - (setq ac-clear-variables-every-minute-timer (run-with-timer 60 60 'ac-clear-variables-every-minute))) - (if ac-stop-flymake-on-completing - (defadvice flymake-on-timer-event (around ac-flymake-stop-advice activate) - (unless ac-completing - ad-do-it)) - (ad-disable-advice 'flymake-on-timer-event 'around 'ac-flymake-stop-advice))) - -(define-minor-mode auto-complete-mode - "AutoComplete mode" - :lighter " AC" - :keymap ac-mode-map - :group 'auto-complete - (if auto-complete-mode - (progn - (ac-setup) - (add-hook 'pre-command-hook 'ac-handle-pre-command nil t) - (add-hook 'post-command-hook 'ac-handle-post-command nil t) - (add-hook 'after-save-hook 'ac-clear-variables-after-save nil t) - (run-hooks 'auto-complete-mode-hook)) - (remove-hook 'pre-command-hook 'ac-handle-pre-command t) - (remove-hook 'post-command-hook 'ac-handle-post-command t) - (remove-hook 'after-save-hook 'ac-clear-variables-after-save t) - (ac-abort))) - -(defun auto-complete-mode-maybe () - "What buffer `auto-complete-mode' prefers." - (if (and (not (minibufferp (current-buffer))) - (memq major-mode ac-modes)) - (auto-complete-mode 1))) - -(define-global-minor-mode global-auto-complete-mode - auto-complete-mode auto-complete-mode-maybe - :group 'auto-complete) - - - -;;;; Compatibilities with other extensions - -(defun ac-flyspell-workaround () - "Flyspell uses `sit-for' for delaying its process. Unfortunatelly, -it stops auto completion which is trigger with `run-with-idle-timer'. -This workaround avoid flyspell processes when auto completion is being started." - (interactive) - (defadvice flyspell-post-command-hook (around ac-flyspell-workaround activate) - (unless ac-triggered - ad-do-it))) - - - -;;;; Standard sources - -(defmacro ac-define-source (name source) - "Source definition macro. It defines a complete command also." - (declare (indent 1)) - `(progn - (defvar ,(intern (format "ac-source-%s" name)) - ,source) - (defun ,(intern (format "ac-complete-%s" name)) () - (interactive) - (auto-complete '(,(intern (format "ac-source-%s" name))))))) - -;; Words in buffer source -(defvar ac-word-index nil) - -(defun ac-candidate-words-in-buffer (point prefix limit) - (let ((i 0) - candidate - candidates - (regexp (concat "\\_<" (regexp-quote prefix) "\\(\\sw\\|\\s_\\)+\\_>"))) - (save-excursion - ;; Search backward - (goto-char point) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-backward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (incf i))) - ;; Search backward - (goto-char (+ point (length prefix))) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-forward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (incf i))) - (nreverse candidates)))) - -(defun ac-incremental-update-word-index () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (if (null ac-word-index) - (setq ac-word-index (cons nil nil))) - ;; Mark incomplete - (if (car ac-word-index) - (setcar ac-word-index nil)) - (let ((index (cdr ac-word-index)) - (words (ac-candidate-words-in-buffer ac-point ac-prefix (or (and (integerp ac-limit) ac-limit) 10)))) - (dolist (word words) - (unless (member word index) - (push word index) - (setcdr ac-word-index index))))) - -(defun ac-update-word-index-1 () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (when (and (not (car ac-word-index)) - (< (buffer-size) 1048576)) - ;; Complete index - (setq ac-word-index - (cons t - (split-string (buffer-substring-no-properties (point-min) (point-max)) - "\\(?:^\\|\\_>\\).*?\\(?:\\_<\\|$\\)"))))) - -(defun ac-update-word-index () - (dolist (buffer (buffer-list)) - (when (or ac-fuzzy-enable - (not (eq buffer (current-buffer)))) - (with-current-buffer buffer - (ac-update-word-index-1))))) - -(defun ac-word-candidates (&optional buffer-pred) - (loop initially (unless ac-fuzzy-enable (ac-incremental-update-word-index)) - for buffer in (buffer-list) - if (and (or (not (integerp ac-limit)) (< (length candidates) ac-limit)) - (if buffer-pred (funcall buffer-pred buffer) t)) - append (funcall ac-match-function - ac-prefix - (and (local-variable-p 'ac-word-index buffer) - (cdr (buffer-local-value 'ac-word-index buffer)))) - into candidates - finally return candidates)) - -(ac-define-source words-in-buffer - '((candidates . ac-word-candidates))) - -(ac-define-source words-in-all-buffer - '((init . ac-update-word-index) - (candidates . ac-word-candidates))) - -(ac-define-source words-in-same-mode-buffers - '((init . ac-update-word-index) - (candidates . (ac-word-candidates - (lambda (buffer) - (derived-mode-p (buffer-local-value 'major-mode buffer))))))) - -;; Lisp symbols source -(defvar ac-symbols-cache nil) -(ac-clear-variable-every-10-minutes 'ac-symbols-cache) - -(defun ac-symbol-file (symbol type) - (if (fboundp 'find-lisp-object-file-name) - (find-lisp-object-file-name symbol type) - (let ((file-name (with-no-warnings - (describe-simplify-lib-file-name - (symbol-file symbol type))))) - (when (equal file-name "loaddefs.el") - ;; Find the real def site of the preloaded object. - (let ((location (condition-case nil - (if (eq type 'defun) - (find-function-search-for-symbol symbol nil - "loaddefs.el") - (find-variable-noselect symbol file-name)) - (error nil)))) - (when location - (with-current-buffer (car location) - (when (cdr location) - (goto-char (cdr location))) - (when (re-search-backward - "^;;; Generated autoloads from \\(.*\\)" nil t) - (setq file-name (match-string 1))))))) - (if (and (null file-name) - (or (eq type 'defun) - (integerp (get symbol 'variable-documentation)))) - ;; It's a object not defined in Elisp but in C. - (if (get-buffer " *DOC*") - (if (eq type 'defun) - (help-C-file-name (symbol-function symbol) 'subr) - (help-C-file-name symbol 'var)) - 'C-source) - file-name)))) - -(defun ac-symbol-documentation (symbol) - (if (stringp symbol) - (setq symbol (intern-soft symbol))) - (ignore-errors - (with-temp-buffer - (let ((standard-output (current-buffer))) - (prin1 symbol) - (princ " is ") - (cond - ((fboundp symbol) - (let ((help-xref-following t)) - (describe-function-1 symbol)) - (buffer-string)) - ((boundp symbol) - (let ((file-name (ac-symbol-file symbol 'defvar))) - (princ "a variable") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'variable-documentation t) - "Not documented.")) - (buffer-string))) - ((facep symbol) - (let ((file-name (ac-symbol-file symbol 'defface))) - (princ "a face") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'face-documentation t) - "Not documented.")) - (buffer-string))) - (t - (let ((doc (documentation-property symbol 'group-documentation t))) - (when doc - (princ "a group.\n\n") - (princ doc) - (buffer-string))))))))) - -(defun ac-symbol-candidates () - (or ac-symbols-cache - (setq ac-symbols-cache - (loop for x being the symbols - if (or (fboundp x) - (boundp x) - (symbol-plist x)) - collect (symbol-name x))))) - -(ac-define-source symbols - '((candidates . ac-symbol-candidates) - (document . ac-symbol-documentation) - (symbol . "s") - (cache))) - -;; Lisp functions source -(defvar ac-functions-cache nil) -(ac-clear-variable-every-10-minutes 'ac-functions-cache) - -(defun ac-function-candidates () - (or ac-functions-cache - (setq ac-functions-cache - (loop for x being the symbols - if (fboundp x) - collect (symbol-name x))))) - -(ac-define-source functions - '((candidates . ac-function-candidates) - (document . ac-symbol-documentation) - (symbol . "f") - (prefix . "(\\(\\(?:\\sw\\|\\s_\\)+\\)") - (cache))) - -;; Lisp variables source -(defvar ac-variables-cache nil) -(ac-clear-variable-every-10-minutes 'ac-variables-cache) - -(defun ac-variable-candidates () - (or ac-variables-cache - (setq ac-variables-cache - (loop for x being the symbols - if (boundp x) - collect (symbol-name x))))) - -(ac-define-source variables - '((candidates . ac-variable-candidates) - (document . ac-symbol-documentation) - (symbol . "v") - (cache))) - -;; Lisp features source -(defvar ac-emacs-lisp-features nil) -(ac-clear-variable-every-10-minutes 'ac-emacs-lisp-features) - -(defun ac-emacs-lisp-feature-candidates () - (or ac-emacs-lisp-features - (if (fboundp 'find-library-suffixes) - (let ((suffix (concat (regexp-opt (find-library-suffixes) t) "\\'"))) - (setq ac-emacs-lisp-features - (append (mapcar 'prin1-to-string features) - (loop for dir in load-path - if (file-directory-p dir) - append (loop for file in (directory-files dir) - if (string-match suffix file) - collect (substring file 0 (match-beginning 0)))))))))) - -(ac-define-source features - '((depends find-func) - (candidates . ac-emacs-lisp-feature-candidates) - (prefix . "require +'\\(\\(?:\\sw\\|\\s_\\)*\\)") - (requires . 0))) - -(defvaralias 'ac-source-emacs-lisp-features 'ac-source-features) - -;; Abbrev source -(ac-define-source abbrev - '((candidates . (mapcar 'popup-x-to-string (append (vconcat local-abbrev-table global-abbrev-table) nil))) - (action . expand-abbrev) - (symbol . "a") - (cache))) - -;; Files in current directory source -(ac-define-source files-in-current-dir - '((candidates . (directory-files default-directory)) - (cache))) - -;; Filename source -(defvar ac-filename-cache nil) - -(defun ac-filename-candidate () - (unless (file-regular-p ac-prefix) - (ignore-errors - (loop with dir = (file-name-directory ac-prefix) - with files = (or (assoc-default dir ac-filename-cache) - (let ((files (directory-files dir nil "^[^.]"))) - (push (cons dir files) ac-filename-cache) - files)) - for file in files - for path = (concat dir file) - collect (if (file-directory-p path) - (concat path "/") - path))))) - -(ac-define-source filename - '((init . (setq ac-filename-cache nil)) - (candidates . ac-filename-candidate) - (prefix . valid-file) - (requires . 0) - (action . ac-start) - (limit . nil))) - -;; Dictionary source -(defcustom ac-user-dictionary nil - "User dictionary" - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-user-dictionary-files '("~/.dict") - "User dictionary files." - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-dictionary-directories nil - "Dictionary directories." - :type '(repeat string) - :group 'auto-complete) - -(defvar ac-dictionary nil) -(defvar ac-dictionary-cache (make-hash-table :test 'equal)) - -(defun ac-clear-dictionary-cache () - (interactive) - (clrhash ac-dictionary-cache)) - -(defun ac-read-file-dictionary (filename) - (let ((cache (gethash filename ac-dictionary-cache 'none))) - (if (and cache (not (eq cache 'none))) - cache - (let (result) - (ignore-errors - (with-temp-buffer - (insert-file-contents filename) - (setq result (split-string (buffer-string) "\n")))) - (puthash filename result ac-dictionary-cache) - result)))) - -(defun ac-buffer-dictionary () - (apply 'append - (mapcar 'ac-read-file-dictionary - (mapcar (lambda (name) - (loop for dir in ac-dictionary-directories - for file = (concat dir "/" name) - if (file-exists-p file) - return file)) - (list (symbol-name major-mode) - (ignore-errors - (file-name-extension (buffer-file-name)))))))) - -(defun ac-dictionary-candidates () - (apply 'append `(,ac-user-dictionary - ,(ac-buffer-dictionary) - ,@(mapcar 'ac-read-file-dictionary - ac-user-dictionary-files)))) - -(ac-define-source dictionary - '((candidates . ac-dictionary-candidates) - (symbol . "d"))) - -(provide 'auto-complete) -;;; auto-complete.el ends here diff --git a/.emacs.d/auto-complete/auto-complete.elc b/.emacs.d/auto-complete/auto-complete.elc deleted file mode 100644 index 825e8db..0000000 Binary files a/.emacs.d/auto-complete/auto-complete.elc and /dev/null differ diff --git a/.emacs.d/auto-complete/dict/c++-mode b/.emacs.d/auto-complete/dict/c++-mode deleted file mode 100644 index e3cd8ae..0000000 --- a/.emacs.d/auto-complete/dict/c++-mode +++ /dev/null @@ -1,74 +0,0 @@ -and -and_eq -asm -auto -bitand -bitor -bool -break -case -catch -char -class -compl -const -const_cast -continue -default -delete -do -double -dynamic_cast -else -enum -explicit -export -extern -false -float -for -friend -goto -if -inline -int -long -mutable -namespace -new -not -not_eq -operator -or -or_eq -private -protected -public -register -reinterpret_cast -return -short -signed -sizeof -static -static_cast -struct -switch -template -this -throw -true -try -typedef -typeid -typename -union -unsigned -using -virtual -void -volatile -wchar_t -while -xor -xor_eq diff --git a/.emacs.d/auto-complete/dict/c-mode b/.emacs.d/auto-complete/dict/c-mode deleted file mode 100644 index 496f904..0000000 --- a/.emacs.d/auto-complete/dict/c-mode +++ /dev/null @@ -1,37 +0,0 @@ -auto -_Bool -break -case -char -_Complex -const -continue -default -do -double -else -enum -extern -float -for -goto -if -_Imaginary -inline -int -long -register -restrict -return -short -signed -sizeof -static -struct -switch -typedef -union -unsigned -void -volatile -while diff --git a/.emacs.d/auto-complete/dict/clojure-mode b/.emacs.d/auto-complete/dict/clojure-mode deleted file mode 100644 index 16348ed..0000000 --- a/.emacs.d/auto-complete/dict/clojure-mode +++ /dev/null @@ -1,475 +0,0 @@ -*agent* -*clojure-version* -*command-line-args* -*compile-files* -*compile-path* -*err* -*file* -*flush-on-newline* -*in* -*ns* -*out* -*print-dup* -*print-length* -*print-level* -*print-meta* -*print-readably* -*read-eval* -*warn-on-reflection* -accessor -aclone -add-classpath -add-watch -agent -agent-error -agent-errors -aget -alength -alias -all-ns -alter -alter-meta! -alter-var-root -amap -ancestors -and -apply -areduce -array-map -aset -aset-boolean -aset-byte -aset-char -aset-double -aset-float -aset-int -aset-long -aset-short -assert -assoc -assoc! -assoc-in -associative? -atom -await -await-for -bases -bean -bigdec -bigint -binding -bit-and -bit-and-not -bit-clear -bit-flip -bit-not -bit-or -bit-set -bit-shift-left -bit-shift-right -bit-test -bit-xor -boolean -boolean-array -booleans -bound-fn -bound-fn* -butlast -byte -byte-array -bytes -case -cast -char -char-array -char-escape-string -char-name-string -char? -chars -class -class? -clear-agent-errors -clojure-version -coll? -comment -commute -comp -comparator -compare -compare-and-set! -compile -complement -concat -cond -condp -conj -conj! -cons -constantly -construct-proxy -contains? -count -counted? -create-ns -create-struct -cycle -dec -decimal? -declare -definline -defmacro -defmethod -defmulti -defn -defn- -defonce -defprotocol -defstruct -deftype -delay -delay? -deliver -deref -derive -descendants -disj -disj! -dissoc -dissoc! -distinct -distinct? -doall -doc -dorun -doseq -dosync -dotimes -doto -double -double-array -doubles -drop -drop-last -drop-while -dtype -empty -empty? -ensure -enumeration-seq -error-handler -error-mode -eval -even? -every? -extend -extend-class -extend-protocol -extend-type -extenders -extends? -false? -ffirst -file-seq -filter -find -find-doc -find-ns -find-var -first -float -float-array -float? -floats -flush -fn -fn? -fnext -for -force -format -future -future-call -future-cancel -future-cancelled? -future-done? -future? -gen-class -gen-interface -gensym -get -get-in -get-method -get-proxy-class -get-thread-bindings -get-validator -hash -hash-map -hash-set -identical? -identity -if-let -if-not -ifn? -import -in-ns -inc -init-proxy -instance? -int -int-array -integer? -interleave -intern -interpose -into -into-array -ints -io! -isa? -iterate -iterator-seq -juxt -key -keys -keyword -keyword? -last -lazy-cat -lazy-seq -let -letfn -line-seq -list -list* -list? -load -load-file -load-reader -load-string -loaded-libs -locking -long -long-array -longs -loop -macroexpand -macroexpand-1 -make-array -make-hierarchy -map -map? -mapcat -max -max-key -memfn -memoize -merge -merge-with -meta -methods -min -min-key -mod -name -namespace -neg? -newline -next -nfirst -nil? -nnext -not -not-any? -not-empty -not-every? -not= -ns -ns-aliases -ns-imports -ns-interns -ns-map -ns-name -ns-publics -ns-refers -ns-resolve -ns-unalias -ns-unmap -nth -nthnext -num -number? -object-array -odd? -or -parents -partial -partition -pcalls -peek -persistent! -pmap -pop -pop! -pop-thread-bindings -pos? -pr -pr-str -prefer-method -prefers -print -print-namespace-doc -print-str -printf -println -println-str -prn -prn-str -promise -proxy -proxy-mappings -proxy-super -push-thread-bindings -pvalues -quot -rand -rand-int -range -ratio? -rationalize -re-find -re-groups -re-matcher -re-matches -re-pattern -re-seq -read -read-line -read-string -reduce -ref -ref-history-count -ref-max-history -ref-min-history -ref-set -refer -refer-clojure -reify -release-pending-sends -rem -remove -remove-method -remove-ns -remove-watch -repeat -repeatedly -replace -replicate -require -reset! -reset-meta! -resolve -rest -restart-agent -resultset-seq -reverse -reversible? -rseq -rsubseq -satisfies? -second -select-keys -send -send-off -seq -seq? -seque -sequence -sequential? -set -set-error-handler! -set-error-mode! -set-validator! -set? -short -short-array -shorts -shutdown-agents -slurp -some -sort -sort-by -sorted-map -sorted-map-by -sorted-set -sorted-set-by -sorted? -special-form-anchor -special-symbol? -split-at -split-with -str -stream? -string? -struct -struct-map -subs -subseq -subvec -supers -swap! -symbol -symbol? -sync -syntax-symbol-anchor -take -take-last -take-nth -take-while -test -the-ns -time -to-array -to-array-2d -trampoline -transient -tree-seq -true? -type -unchecked-add -unchecked-dec -unchecked-divide -unchecked-inc -unchecked-multiply -unchecked-negate -unchecked-remainder -unchecked-subtract -underive -update-in -update-proxy -use -val -vals -var-get -var-set -var? -vary-meta -vec -vector -vector-of -vector? -when -when-first -when-let -when-not -while -with-bindings -with-bindings* -with-in-str -with-local-vars -with-meta -with-open -with-out-str -with-precision -xml-seq -zero? -zipmap \ No newline at end of file diff --git a/.emacs.d/auto-complete/dict/css-mode b/.emacs.d/auto-complete/dict/css-mode deleted file mode 100644 index 4ec8f7d..0000000 --- a/.emacs.d/auto-complete/dict/css-mode +++ /dev/null @@ -1,747 +0,0 @@ -!important -ActiveBorder -ActiveCaption -Alpha -AppWorkspace -Background -Barn -BasicImage -Blinds -Blur -ButtonFace -ButtonHighlight -ButtonShadow -ButtonText -CaptionText -CheckerBoard -Chroma -Compositor -CradientWipe -DXImageTransform -DropShadow -Emboss -Engrave -Fade -FlipH -FlipV -Glow -Gray -GrayText -Highlight -HighlightText -Hz -ICMFilter -InactiveBorder -InactiveCaption -InactiveCaptionText -InfoBackground -InfoText -Inset -Invert -Iris -Light -MaskFilter -Matrix -Menu -MenuText -Microsoft -MotionBlur -Pixelate -RadialWipe -RandomBars -RandomDissolve -RevealTrans -Scrollbar -Shadow -Slide -Spiral -Stretch -Strips -ThreeDDarkShadow -ThreeDFace -ThreeDHighlight -ThreeDLightShadow -ThreeDShadow -Wave -Wheel -Window -WindowFrame -WindowText -Xray -Zigzag -_azimuth -_background -_background-position-x -_background-position-y -_border -_bottom -_caption -_clear -_clip -_color -_content -_counter -_cue -_cursor -_direction -_display -_elevation -_empty -_filter -_filter:progid:DXImageTransform.Microsoft -_float -_font -_height -_ime -_ime-mode -_layout -_layout-flow -_layout-grid -_layout-grid-char -_layout-grid-line -_layout-grid-mode -_layout-grid-type -_left -_letter -_line -_line-break -_list -_margin -_orphans -_outline -_overflow -_overflow-x -_overflow-y -_padding -_page -_pause -_pitch -_play -_position -_quotes -_richness -_right -_ruby -_ruby-align -_ruby-overhang -_ruby-position -_scrollbar -_scrollbar-3dlight-color -_scrollbar-arrow-color -_scrollbar-base-color -_scrollbar-darkshadow-color -_scrollbar-face-color -_scrollbar-highlight-color -_scrollbar-track-color -_speak -_speech -_stress -_table -_text -_text-align-last -_text-autospace -_text-justify -_text-kashida-space -_text-overflow -_text-underline-position -_top -_unicode -_vertical -_visibility -_voice -_volume -_white -_widows -_width -_word -_word-break -_word-wrap -_writing -_writing-mode -_z -_zoom -above -active -adjust -after -aliceblue -align -always -antiquewhite -aqua -aquamarine -armenian -arrow -attachment -auto -autospace -avoid -azimuth -azure -background -background-attachment -background-color -background-image -background-position -background-repeat -bar -base -baseline -before -behind -beige -below -bidi -bidi-override -bisque -black -blanchedalmond -blink -block -blue -blueviolet -bold -bolder -border -border-bottom -border-bottom-color -border-bottom-style -border-bottom-width -border-collapse -border-color -border-left -border-left-color -border-left-style -border-left-width -border-right -border-right-color -border-right-style -border-right-width -border-spacing -border-style -border-top -border-top-color -border-top-style -border-top-width -border-width -both -bottom -box -break -brown -burlwood -cadetblue -capitalize -caps -caption -caption-side -cell -cells -center -center-left -center-right -char -chartreuse -chocolate -circle -cjk -cjk-ideographic -clear -clip -close -close-quote -cm -code -collapse -color -column -compact -condensed -content -continuous -coral -cornflowerblue -cornsilk -counter -counter-increment -counter-reset -crimson -crop -cross -crosshair -cue -cue-after -cue-before -cursive -cursor -cyan -darkblue -darkcyan -darkgoldenrod -darkgray -darkgreen -darkkhaki -darkmagenta -darkolivegreen -darkorange -darkorchid -darkred -darksalmon -darkseagreen -darkshadow -darkslateblue -darkslategray -darkturquoise -darkviolet -dashed -decimal -decimal-leading-zero -decoration -deeppink -deepskyblue -default -deg -digits -dimgray -direction -disc -display -dodgerblue -dotted -double -during -e -e-resize -elevation -em -embed -empty -empty-cells -ex -expanded -extra -extra-condensed -extra-expanded -face -family -fantasy -far -far-left -far-right -fast -faster -firebrick -first -first-child -first-letter -first-line -fixed -float -floralwhite -flow -focus -font -font-family -font-size -font-size-adjust -font-stretch -font-style -font-variant -font-weight -footer -forestgreen -fuchsia -gainsboro -georgian -ghostwhite -gold -goldenrod -gray -greek -green -greenyellow -grid -groove -group -header -hebrew -height -help -hidden -hide -high -higher -hiragana -hiragana-iroha -honeydew -hotpink -hover -icon -ideographic -image -in -increment -indent -index -indianred -indigo -inherit -inline -inline-block -inline-table -inset -inside -iroha -italic -item -ivory -justify -kHz -kashida -katakana -katakana-iroha -khaki -landscape -lang() -large -larger -last -latin -lavender -lavenderblush -lawngreen -layout -leading -left -left-side -leftwards -lenonchiffon -letter -letter-spacing -level -lightblue -lightcoral -lightcyan -lighter -lightgoldenrodyellow -lightgray -lightgreen -lightgrey -lightpink -lightsalmon -lightseagreen -lightskyblue -lightslategray -lightsteelblue -lightyellow -lime -limegreen -line -line-height -line-through -linen -link -list -list-item -list-style -list-style-image -list-style-position -list-style-type -loud -low -lower -lower-alpha -lower-greek -lower-latin -lower-roman -lowercase -ltr -magenta -margin -margin-bottom -margin-left -margin-right -margin-top -marker -marker-offset -marks -maroon -max -max-height -max-width -medium -mediumaquamarine -mediumblue -mediumorchid -mediumpurple -mediumseagreen -mediumslateblue -mediumspringgreen -mediumturquoise -mediumvioletred -menu -message -message-box -middle -midnightblue -min -min-height -min-width -mintcream -mistyrose -mix -mm -moccasin -mode -monospace -move -ms -n -n-resize -naby -narrower -navajowhite -ne -ne-resize -no -no-close-quote -no-open-quote -no-repeat -none -normal -nowrap -number -numeral -nw -nw-resize -oblique -offset -oldlace -olive -olivedrab -once -open -open-quote -orange -orangered -orchid -orphans -out -outline -outline-color -outline-style -outline-width -outset -outside -overflow -overhang -overline -override -padding -padding-bottom -padding-left -padding-right -padding-top -page -page-break-after -page-break-before -page-break-inside -palegoldenrod -palegreen -paleturquoise -palevioletred -papayawhip -pause -pause-after -pause-before -pc -peachpuff -peru -pink -pitch -pitch-range -play -play-during -plum -pointer -portarait -position -powderblue -pre -pre-line -pre-wrap -progid -progress -pt -punctuation -purple -px -quote -quotes -rad -range -rate -red -relative -repeat -repeat-x -repeat-y -reset -resize -richness -ridge -right -right-side -rightwards -roman -rosybrown -row -royalblue -rtl -run -run-in -s -s-resize -saddlebrown -salmon -sandybrown -sans-serif -scroll -se -se-resize -seagreen -seashell -semi -semi-condensed -semi-expanded -separate -serif -shadow -show -side -sienna -silent -silever -silver -size -skyblue -slateblue -slategray -slow -slower -small -small-caps -small-caption -smaller -snow -soft -solid -space -spacing -speak -speak-header -speak-numeral -speak-punctuation -specific -specific-voice -speech -speech-rate -spell -spell-out -springgreen -square -static -status -status-bar -steelblue -stress -stretch -style -sub -super -sw -sw-resize -table -table-caption -table-cell -table-column -table-column-group -table-footer-group -table-header-group -table-layout -table-row -table-row-group -tan -teal -text -text-align -text-bottom -text-decoration -text-indent -text-shadow -text-top -text-transform -thick -thin -thistle -through -tomato -top -track -transform -transparent -turquoise -type -ultra -ultra-condensed -ultra-expanded -underline -unicode -unicode-bidi -upper -upper-alpha -upper-latin -upper-roman -uppercase -variant -vertical -vertical-align -violet -visibility -visible -visited -voice -voice-family -volume -w -w-resize -wait -weight -wheat -white -white-space -whitesmoke -wider -widows -width -word -word-spacing -wrap -x -x-fast -x-high -x-large -x-loud -x-low -x-slow -x-small -x-soft -xx -xx-large -xx-small -y -yellow -yellowgreen -z -z-index -zero diff --git a/.emacs.d/auto-complete/dict/java-mode b/.emacs.d/auto-complete/dict/java-mode deleted file mode 100644 index 8ed3d04..0000000 --- a/.emacs.d/auto-complete/dict/java-mode +++ /dev/null @@ -1,50 +0,0 @@ -abstract -assert -boolean -break -byte -case -catch -char -class -const -continue -default -do -double -else -enum -extends -final -finally -float -for -goto -if -implements -import -instanceof -int -interface -long -native -new -package -private -protected -public -return -short -static -strictfp -super -switch -synchronized -this -throw -throws -transient -try -void -volatile -while diff --git a/.emacs.d/auto-complete/dict/javascript-mode b/.emacs.d/auto-complete/dict/javascript-mode deleted file mode 100644 index 3d83f84..0000000 --- a/.emacs.d/auto-complete/dict/javascript-mode +++ /dev/null @@ -1,148 +0,0 @@ -Anchor -Area -Array -Boolean -Button -Checkbox -Date -Document -Element -FileUpload -Form -Frame -Function -Hidden -History -Image -Infinity -JavaArray -JavaClass -JavaObject -JavaPackage -Link -Location -Math -MimeType -NaN -Navigator -Number -Object -Option -Packages -Password -Plugin -Radio -RegExp -Reset -Select -String -Submit -Text -Textarea -Window -alert -arguments -assign -blur -break -callee -caller -captureEvents -case -clearInterval -clearTimeout -close -closed -comment -confirm -constructor -continue -default -defaultStatus -delete -do -document -else -escape -eval -export -find -focus -for -frames -function -getClass -history -home -if -import -in -innerHeight -innerWidth -isFinite -isNan -java -label -length -location -locationbar -menubar -moveBy -moveTo -name -navigate -navigator -netscape -new -onBlur -onError -onFocus -onLoad -onUnload -open -opener -outerHeight -outerWidth -pageXoffset -pageYoffset -parent -parseFloat -parseInt -personalbar -print -prompt -prototype -ref -releaseEvents -resizeBy -resizeTo -return -routeEvent -scroll -scrollBy -scrollTo -scrollbars -self -setInterval -setTimeout -status -statusbar -stop -sun -switch -taint -this -toString -toolbar -top -typeof -unescape -untaint -unwatch -valueOf -var -void -watch -while -window -with diff --git a/.emacs.d/auto-complete/dict/php-mode b/.emacs.d/auto-complete/dict/php-mode deleted file mode 100644 index 04352d8..0000000 --- a/.emacs.d/auto-complete/dict/php-mode +++ /dev/null @@ -1,62 +0,0 @@ -and -array -as -break -case -catch -cfunction -class -clone -const -continue -declare -default -die -do -echo -else -elseif -empty -enddeclare -endfor -endforeach -endif -endswitch -endwhile -eval -exit -extends -final -for -foreach -function -global -goto -if -implements -include -include_once -instanceof -interface -isset -list -namespace -new -old_function -or -print -private -protected -public -require -require_once -return -static -switch -throw -try -unset -use -var -while -xor diff --git a/.emacs.d/auto-complete/dict/python-mode b/.emacs.d/auto-complete/dict/python-mode deleted file mode 100644 index 33b4b32..0000000 --- a/.emacs.d/auto-complete/dict/python-mode +++ /dev/null @@ -1,104 +0,0 @@ -__import__ -abs -and -any -apply -as -assert -basestring -bin -bool -break -buffer -class -cmp -coerce -complex -continue -def -del -delattr -dict -dir -divmod -elif -else -enumerate -eval -except -exec -execfile -file -filter -finally -float -for -format -from -frozenset -getattr -global -globals -hasattr -hash -help -hex -id -if -import -in -input -int -intern -is -isinstance -issubclass -iter -lambda -len -list -locals -long -map -max -min -next -not -object -oct -open -or -ord -pass -pow -print -print -property -raise -range -raw_input -reduce -reload -repr -return -reversed -round -set -setattr -slice -sorted -staticmethod -str -sum -super -try -tuple -type -unichr -unicode -vars -while -with -xrange -yield -zip diff --git a/.emacs.d/auto-complete/dict/ruby-mode b/.emacs.d/auto-complete/dict/ruby-mode deleted file mode 100644 index 90b4fc9..0000000 --- a/.emacs.d/auto-complete/dict/ruby-mode +++ /dev/null @@ -1,181 +0,0 @@ -$! -$" -$$ -$& -$' -$* -$+ -$, -$-0 -$-F -$-I -$-K -$-a -$-d -$-i -$-l -$-p -$-v -$-w -$. -$/ -$0 -$1 -$10 -$11 -$2 -$3 -$4 -$5 -$6 -$7 -$8 -$9 -$: -$; -$< -$= -$> -$? -$@ -$DEBUG -$FILENAME -$KCODE -$LOADED_FEATURES -$LOAD_PATH -$PROGRAM_NAME -$SAFE -$VERBOSE -$\ -$_ -$` -$deferr -$defout -$stderr -$stdin -$stdout -$~ -ARGF -ARGV -Array -BEGIN -DATA -END -ENV -FALSE -Float -Integer -NIL -PLATFORM -RELEASE_DATE -RUBY_COPYRIGHT -RUBY_DESCRIPTION -RUBY_PATCHLEVEL -RUBY_PLATFORM -RUBY_RELEASE_DATE -RUBY_VERSION -SCRIPT_LINES__ -STDERR -STDIN -STDOUT -String -TOPLEVEL_BINDING -TRUE -VERSION -__method__ -` -abort -alias -and -at_exit -autoload -autoload? -begin -binding -block_given -break -callcc -caller -case -catch -chomp -chomp! -chop -chop -class -def -defined? -do -else -elsif -end -ensure -eval -exec -exit -exit! -fail -false -for -fork -format -getc -gets -global_variables -gsub -gsub! -if -in -iterator? -lambda -load -local_varaibles -loop -module -next -nil -not -open -or -p -printf -proc -putc -puts -raise -rand -readline -readlines -redo -require -require_relative -rescue -retry -return -scan -select -self -set_trace_func -sleep -split -sprintf -srand -sub -sub! -super -syscall -system -test -then -throw -trace_var -trap -true -undef -unless -until -untrace_var -warn -when -while -yield diff --git a/.emacs.d/auto-complete/dict/scheme-mode b/.emacs.d/auto-complete/dict/scheme-mode deleted file mode 100644 index e5cca61..0000000 --- a/.emacs.d/auto-complete/dict/scheme-mode +++ /dev/null @@ -1,216 +0,0 @@ -case-lambda -call/cc -class -define-class -exit-handler -field -import -inherit -init-field -interface -let*-values -let-values -let/ec -mixin -opt-lambda -override -protect -provide -public -rename -require -require-for-syntax -syntax -syntax-case -syntax-error -unit/sig -unless -when -with-syntax -and -begin -call-with-current-continuation -call-with-input-file -call-with-output-file -case -cond -define -define-syntax -delay -do -dynamic-wind -else -for-each -if -lambda -let -let* -let-syntax -letrec -letrec-syntax -map -or -syntax-rules -abs -acos -angle -append -apply -asin -assoc -assq -assv -atan -boolean? -caar -cadr -call-with-input-file -call-with-output-file -call-with-values -car -cdddar -cddddr -cdr -ceiling -char->integer -char-alphabetic? -char-ci<=? -char-ci=? -char-ci>? -char-downcase -char-lower-case? -char-numeric? -char-ready? -char-upcase -char-upper-case? -char-whitespace? -char<=? -char=? -char>? -char? -close-input-port -close-output-port -complex? -cons -cos -current-input-port -current-output-port -denominator -display -eof-object? -eq? -equal? -eqv? -eval -even? -exact->inexact -exact? -exp -expt -#f -floor -force -gcd -imag-part -inexact->exact -inexact? -input-port? -integer->char -integer? -interaction-environment -lcm -length -list -list->string -list->vector -list-ref -list-tail -list? -load -log -magnitude -make-polar -make-rectangular -make-string -make-vector -max -member -memq -memv -min -modulo -negative? -newline -not -null-environment -null? -number->string -number? -numerator -odd? -open-input-file -open-output-file -output-port? -pair? -peek-char -port? -positive? -procedure? -quasiquote -quote -quotient -rational? -rationalize -read -read-char -real-part -real? -remainder -reverse -round -scheme-report-environment -set! -set-car! -set-cdr! -sin -sqrt -string -string->list -string->number -string->symbol -string-append -string-ci<=? -string-ci=? -string-ci>? -string-copy -string-fill! -string-length -string-ref -string-set! -string<=? -string=? -string>? -string? -substring -symbol->string -symbol? -#t -tan -transcript-off -transcript-on -truncate -values -vector -vector->list -vector-fill! -vector-length -vector-ref -vector-set! diff --git a/.emacs.d/auto-complete/dict/tcl-mode b/.emacs.d/auto-complete/dict/tcl-mode deleted file mode 100644 index 07a1281..0000000 --- a/.emacs.d/auto-complete/dict/tcl-mode +++ /dev/null @@ -1,172 +0,0 @@ -after -append -apply -array -auto_execok -auto_import -auto_load -auto_load_index -auto_mkindex -auto_mkindex_old -auto_qualify -auto_reset -bell -binary -bind -bindtags -break -button -canvas -case -catch -cd -chan -checkbutton -clipboard -clock -close -concat -continue -destroy -dict -encoding -entry -eof -error -eval -event -exec -exit -expr -fblocked -fconfigure -fcopy -file -fileevent -flush -focus -font -for -foreach -format -frame -gets -glob -global -grab -grid -if -image -incr -info -interp -join -label -labelframe -lappend -lassign -lindex -linsert -list -listbox -llength -load -lower -lrange -lrepeat -lreplace -lreverse -lsearch -lset -lsort -menu -menubutton -message -namespace -open -option -pack -package -panedwindow -pid -pkg_mkIndex -place -proc -puts -pwd -radiobutton -raise -read -regexp -registry -regsub -rename -return -scale -scan -scrollbar -seek -selection -set -socket -source -spinbox -split -string -subst -switch -tclLog -tclPkgSetup -tclPkgUnknown -tcl_findLibrary -tell -text -time -tk -tk_chooseColor -tk_chooseDirectory -tk_getOpenFile -tk_getSaveFile -tk_menuSetFocus -tk_messageBox -tk_popup -tk_textCopy -tk_textCut -tk_textPaste -tkwait -toplevel -ttk::button -ttk::checkbutton -ttk::combobox -ttk::entry -ttk::focusFirst -ttk::frame -ttk::label -ttk::labelframe -ttk::menubutton -ttk::notebook -ttk::paned -ttk::panedwindow -ttk::progressbar -ttk::radiobutton -ttk::scale -ttk::scrollbar -ttk::separator -ttk::setTheme -ttk::sizegrip -ttk::style -ttk::takefocus -ttk::themes -ttk::treeview -trace -unknown -unload -unset -update -uplevel -upvar -variable -vwait -while -winfo -wm diff --git a/.emacs.d/auto-complete/doc/ac-fuzzy.png b/.emacs.d/auto-complete/doc/ac-fuzzy.png deleted file mode 100644 index 9940fa7..0000000 Binary files a/.emacs.d/auto-complete/doc/ac-fuzzy.png and /dev/null differ diff --git a/.emacs.d/auto-complete/doc/ac-isearch.png b/.emacs.d/auto-complete/doc/ac-isearch.png deleted file mode 100644 index e2ce709..0000000 Binary files a/.emacs.d/auto-complete/doc/ac-isearch.png and /dev/null differ diff --git a/.emacs.d/auto-complete/doc/ac.png b/.emacs.d/auto-complete/doc/ac.png deleted file mode 100644 index f304e09..0000000 Binary files a/.emacs.d/auto-complete/doc/ac.png and /dev/null differ diff --git a/.emacs.d/auto-complete/doc/changes.ja.txt b/.emacs.d/auto-complete/doc/changes.ja.txt deleted file mode 100644 index 47ccb4f..0000000 --- a/.emacs.d/auto-complete/doc/changes.ja.txt +++ /dev/null @@ -1,96 +0,0 @@ -Title: Auto Complete Mode - 変更点 -CSS: style.css - -Auto Complete Mode 変更点 -========================= - -[Index](index.ja.txt) - -\[[English](changes.txt)] - -[ユーザーマニュアル](manual.ja.txt)ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。 - -v1.3ã®å¤‰æ›´ç‚¹ {#Changes_v1.3} ------------- - -v1.3ã®ä¸»ãªå¤‰æ›´ç‚¹ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ - -### æ–°ã—ã„オプション ### {#New_Options_v1.3} - -* [`ac-disable-faces`](manual.ja.txt#ac-disable-faces) -* [`ac-show-menu-immediately-on-auto-complete`](manual.ja.txt#ac-show-menu-immediately-on-auto-complete) -* [`ac-expand-on-auto-complete`](manual.ja.txt#ac-expand-on-auto-complete) -* [`ac-use-menu-map`](manual.ja.txt#ac-use-menu-map) - -### æ–°ã—ã„æƒ…å ±æº ### {#New_Sources_v1.3} - -* [`ac-source-semantic-raw`](manual.ja.txt#ac-source-semantic-raw) -* [`ac-source-css-property`](manual.ja.txt#ac-source-css-property) - -### æ–°ã—ã„æƒ…å ±æºã®ãƒ—ロパティ ### {#New_Source_Properties_v1.3} - -* [`summary`](manual.ja.txt#summary) -* [`available`](manual.ja.txt#available) - -### æ–°ã—ã„辞書 ### {#New_Dictionaries_v1.3} - -* tcl-mode -* scheme-mode - -### 変更ã•ã‚ŒãŸæŒ™å‹• ### {#Changed_Behaviors_v1.3} - -* 補完候補ã®é•·ã•を考慮ã—ãŸã‚¹ã‚³ã‚¢ãƒªãƒ³ã‚°ï¼ˆæ–‡å­—列長ã§ã‚½ãƒ¼ãƒˆï¼‰ - -### 修正ã•れãŸãƒã‚° ### {#Fixed_Bugs_v1.3} - -* Emacs 22.1ã§ã®ã‚¨ãƒ©ãƒ¼ -* `flyspell-mode`ã¨ã®è¡çªï¼ˆ`M-x flyspell-workaround`ã§è§£æ±ºï¼‰ - -### ãã®ä»– ### {#Others_v1.3} - -* å˜èªžåŽé›†ã®é€Ÿåº¦ã‚’改善 (#18) -* [pos-tip.el](manual.ja.txt#.E3.83.98.E3.83.AB.E3.83.97.E3.82.92.E7.B6.BA.E9.BA.97.E3.81.AB.E8.A1.A8.E7.A4.BA.E3.81.99.E3.82.8B)ã¨ã®å”調 -* Yasnippet 0.61ã®ã‚µãƒãƒ¼ãƒˆ -* 多ãã®ãƒã‚°ä¿®æ­£ - -v1.2ã®å¤‰æ›´ç‚¹ {#Changes_v1.2} ------------- - -v1.0ã‹ã‚‰v1.2ã®ä¸»ãªå¤‰æ›´ç‚¹ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ - -### 新機能 ### {#New_Features_v1.2} - -* [曖昧マッãƒã«ã‚ˆã‚‹è£œå®Œ](manual.ja.txt#.E6.9B.96.E6.98.A7.E3.83.9E.E3.83.83.E3.83.81.E3.81.AB.E3.82.88.E3.82.8B.E8.A3.9C.E5.AE.8C) -* [辞書ã«ã‚ˆã‚‹è£œå®Œ](manual.ja.txt#.E8.BE.9E.E6.9B.B8.E3.81.AB.E3.82.88.E3.82.8B.E8.A3.9C.E5.AE.8C) -* [補完候補ã®çµžã‚Šè¾¼ã¿](manual.ja.txt#.E8.A3.9C.E5.AE.8C.E5.80.99.E8.A3.9C.E3.81.AE.E7.B5.9E.E3.82.8A.E8.BE.BC.E3.81.BF) -* [補完推測機能](manual.ja.txt#.E8.A3.9C.E5.AE.8C.E6.8E.A8.E6.B8.AC.E6.A9.9F.E8.83.BD) -* [トリガーキー](manual.ja.txt#.E3.83.88.E3.83.AA.E3.82.AC.E3.83.BC.E3.82.AD.E3.83.BC) -* [ヘルプ](manual.ja.txt#.E3.83.98.E3.83.AB.E3.83.97) - -### æ–°ã—ã„コマンド ### {#New_Commands_v1.2} - -* [`auto-complete`](manual.ja.txt#auto-complete.E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89) - -### æ–°ã—ã„オプション ### {#New_Options_v1.2} - -* [`ac-delay`](manual.ja.txt#ac-delay) -* [`ac-auto-show-menu`](manual.ja.txt#ac-auto-show-menu) -* [`ac-use-fuzzy`](manual.ja.txt#ac-use-fuzzy) -* [`ac-use-comphist`](manual.ja.txt#ac-use-comphist) -* [`ac-ignores`](manual.ja.txt#ac-ignores) -* [`ac-ignore-case`](manual.ja.txt#ac-ignore-case) -* [`ac-mode-map`](manual.ja.txt#ac-mode-map) - -### æ–°ã—ã„æƒ…å ±æº ### {#New_Sources_v1.2} - -* [`ac-source-dictionary`](manual.ja.txt#ac-source-dictionary) - -### 変更ã•ã‚ŒãŸæŒ™å‹• ### {#Changed_Behaviors_v1.2} - -* 補完ã®é–‹å§‹ãŒé…å»¶ã•れるよã†ã«ãªã‚Šã¾ã—㟠([`ac-delay`](manual.ja.txt#ac-delay)) -* 補完メニューã®è¡¨ç¤ºãŒé…å»¶ã•れるよã†ã«ãªã‚Šã¾ã—㟠([`ac-auto-show-menu`](manual.ja.txt#ac-auto-show-menu)) - -### ãã®ä»– ### {#Others_v1.2} - -* 多ãã®ãƒã‚°ä¿®æ­£ -* ãƒ‘ãƒ•ã‚©ãƒ¼ãƒžãƒ³ã‚¹ã®æ”¹å–„ diff --git a/.emacs.d/auto-complete/doc/changes.txt b/.emacs.d/auto-complete/doc/changes.txt deleted file mode 100644 index 86b5a9c..0000000 --- a/.emacs.d/auto-complete/doc/changes.txt +++ /dev/null @@ -1,96 +0,0 @@ -Title: Auto Complete Mode - Changes -CSS: style.css - -Auto Complete Mode Changes -========================== - -[Index](index.txt) - -\[[Japanese](changes.ja.txt)] - -See also [documentation](manual.txt). - -v1.3 Changes {#Changes_v1.3} ------------- - -Major changes in v1.3. - -### New Options ### {#New_Options_v1.3} - -* [`ac-disable-faces`](manual.txt#ac-disable-faces) -* [`ac-show-menu-immediately-on-auto-complete`](manual.txt#ac-show-menu-immediately-on-auto-complete) -* [`ac-expand-on-auto-complete`](manual.txt#ac-expand-on-auto-complete) -* [`ac-use-menu-map`](manual.txt#ac-use-menu-map) - -### New Sources ### {#New_Sources_v1.3} - -* [`ac-source-semantic-raw`](manual.txt#ac-source-semantic-raw) -* [`ac-source-css-property`](manual.txt#ac-source-css-property) - -### New Source Properties ### {#New_Source_Properties_v1.3} - -* [`summary`](manual.txt#summary) -* [`available`](manual.txt#available) - -### New Dictionaries ### {#New_Dictionaries_v1.3} - -* tcl-mode -* scheme-mode - -### Changed Behaviors ### {#Changed_Behaviors_v1.3} - -* Scoring regarding to candidate length (sort by length) - -### Fixed Bugs ### {#Fixed_Bugs_v1.3} - -* Error on Emacs 22.1 -* `flyspell-mode` confliction (`M-x flyspell-workaround`) - -### Others ### {#Others_v1.3} - -* Improved word completion performance (#18) -* Cooperate with [pos-tip.el](manual.txt#Show_help_beautifully) -* Yasnippet 0.61 support -* Fix many bugs - -v1.2 Changes {#Changes_v1.2} ------------- - -Major changes in v1.2 since v1.0. - -### New Features ### {#New_Features_v1.2} - -* [Completion by Fuzzy Matching](manual.txt#Completion_by_Fuzzy_Matching) -* [Completion by Dictionary](manual.txt#Completion_by_Dictionary) -* [Incremental Filtering](manual.txt#Filtering_Completion_Candidates) -* [Intelligent Candidate Suggestion](manual.txt#Candidate_Suggestion) -* [Trigger Key](manual.txt#Trigger_Key) -* [Help](manual.txt#Help) - -### New Commands ### {#New_Commands_v1.2} - -* [`auto-complete`](manual.txt#auto-complete_command) - -### New Options ### {#New_Options_v1.2} - -* [`ac-delay`](manual.txt#ac-delay) -* [`ac-auto-show-menu`](manual.txt#ac-auto-show-menu) -* [`ac-use-fuzzy`](manual.txt#ac-use-fuzzy) -* [`ac-use-comphist`](manual.txt#ac-use-comphist) -* [`ac-ignores`](manual.txt#ac-ignores) -* [`ac-ignore-case`](manual.txt#ac-ignore-case) -* [`ac-mode-map`](manual.txt#ac-mode-map) - -### New Sources ### {#New_Sources_v1.2} - -* [`ac-source-dictionary`](manual.txt#ac-source-dictionary) - -### Changed Behaviors ### {#Changed_Behaviors_v1.2} - -* Completion is now delayed to start ([`ac-delay`](manual.txt#ac-delay)) -* Completion menu is now delayed to show ([`ac-auto-show-menu`](manual.txt#ac-auto-show-menu)) - -### Others ### {#Others_v1.2} - -* Fix many bugs -* Improve performance diff --git a/.emacs.d/auto-complete/doc/demo.txt b/.emacs.d/auto-complete/doc/demo.txt deleted file mode 100644 index aa04d7d..0000000 --- a/.emacs.d/auto-complete/doc/demo.txt +++ /dev/null @@ -1,11 +0,0 @@ -Title: Auto Complete Mode - Demo -CSS: style.css - -Auto Complete Mode Demo -======================= - -[Index](index.txt) - -[YouTube mirror](http://www.youtube.com/watch?v=rGVVnDxwJYE) - -