diff options
| author | Ravi R Kiran <aine.marina@gmail.com> | 2015-03-17 04:17:17 (GMT) |
|---|---|---|
| committer | Ravi R Kiran <aine.marina@gmail.com> | 2015-03-17 04:17:17 (GMT) |
| commit | a6e94a30a835ea389fe8fc40df162ff327035ccb (patch) | |
| tree | cf695ab8c77b2c78434b2c6913295641a9287110 /lisp/ravi-init-insertion.el | |
| parent | b94602dccfa28b997b1fc1f2e0373d997f4b95ce (diff) | |
| download | dotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.zip dotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.tar.gz dotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.tar.bz2 | |
Move main emacs directory out of load path
This follows the official emacs recommendation for lisp code inside
emacs.d.
Diffstat (limited to 'lisp/ravi-init-insertion.el')
| -rw-r--r-- | lisp/ravi-init-insertion.el | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/lisp/ravi-init-insertion.el b/lisp/ravi-init-insertion.el new file mode 100644 index 0000000..65ff9db --- /dev/null +++ b/lisp/ravi-init-insertion.el @@ -0,0 +1,136 @@ +;;; ravi-init-insertion.el --- inserting text + +;; Copyright (C) 2013 + +;; Author: <ravi@nero.lan> +;; Keywords: + +;; 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 <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Automatic text insertion + +;;; Code: + +(require 'autoinsert) +(auto-insert-mode) + +(use-package yasnippet + :init + (progn + (setq yas-snippet-dirs + `(,(ravi/emacs-file "snippets") + yas-installed-snippets-dir) + ) + ) + :config + (progn + (yas-global-mode 1) + + ;; No dropdowns + (setq yas/prompt-functions '(yas/ido-prompt yas/completing-prompt)) + + ;; Wrap around region + (setq yas/wrap-around-region t) + + ;; Automatically create throw-away snippets + (use-package auto-yasnippet + :bind (("C-<f4>" . aya-create) + ("<f4>" . aya-expand)) + :ensure t) + ) + :ensure t + :diminish yas-minor-mode + ) + +;; Default completion (some day via "M-/") +(require 'hippie-exp) +(setq hippie-expand-try-functions-list + '(yas/hippie-try-expand + try-expand-dabbrev + try-expand-dabbrev-all-buffers + try-expand-dabbrev-from-kill + try-complete-file-name-partially + try-complete-file-name + try-expand-all-abbrevs + ) + ) + +(use-package company + :init + (progn + (add-hook 'after-init-hook 'global-company-mode)) + :config + (progn + (setq company-tooltip-flip-when-above t + company-idle-delay 0.1 + company-show-numbers t + company-tooltip-align-annotations t + company-require-match nil + company-minimum-prefix-length 2 + company-occurrence-weight-function 'company-occurrence-prefer-any-closest + company-dabbrev-downcase nil) + (defun ravi/complete-or-indent () + (interactive) + (if (company-manual-begin) + (company-complete-common) + (indent-according-to-mode))) + (bind-key "\t" 'ravi/complete-or-indent) + + (use-package company-c-headers + :init + (progn + (add-to-list 'company-backends 'company-c-headers)) + :config + (progn + (defun ravi/get-default-include-paths () + (let* ((gcc-out (shell-command-to-string "g++ -E -x c++ - -v < /dev/null")) + (gcc-list-match (string-match "#include <...> search starts here:\n\\(.*\\(?:\n.*\\)*?\\)End of search list.\n" gcc-out)) + (combined-list (match-string 1 gcc-out)) + ;; Need the following rigamarole to handle paths with spaces in them + (path-list-with-spaces (and combined-list (split-string combined-list "\n" t))) + (path-list (and path-list-with-spaces (mapcar 's-trim-left path-list-with-spaces)))) + path-list)) + (mapc (lambda (dir) (add-to-list 'company-c-headers-path-system dir)) (ravi/get-default-include-paths)) + ) + :ensure t) + + (use-package company-quickhelp + :config + (company-quickhelp-mode 1) + :ensure t) + + (use-package company-statistics + :init + (setq company-statistics-file (expand-file-name "company-statistics-cache.el" + (ravi/emacs-file "past"))) + :config + (progn + (company-statistics-mode)) + :ensure t) + + ;; Get rid of company-semantic as it interferes with clang-based backends + (setq company-backends (delete 'company-semantic company-backends)) + ;; Get rid of company-clang since it is too noisy at this point + (setq company-backends (delete 'company-clang company-backends)) + + (require 'company-yasnippet) + (bind-key "<backtab>" 'company-yasnippet)) + + :diminish company-mode + :ensure t) + +(provide 'ravi-init-insertion) +;;; ravi-init-insertion.el ends here |
