cddd38c9043cf97be3f5160d1f5174d0bd147c75
[emacs-init.git] / setup / emacsstuff.el
1 (let ((dir (concat (file-name-directory
2                     (directory-file-name
3                      (file-name-directory (or load-file-name
4                                          (when (boundp 'bytecomp-filename) bytecomp-filename)
5                                          buffer-file-name))))
6                    (file-name-as-directory "emacsstuff"))))
7   (add-to-list 'load-path dir))
8
9 (require 'g0dilstuff-init)
10 (require 'cc-ide)
11 (require 'softtext)
12 (require 'cc-mode)
13
14 (define-key c++-mode-map "\C-c\C-c" 'recompile)
15 (define-key c++-mode-map "\C-c\C-i" 'comment-indent)
16
17 ;;; remove some unnecessary compilation error regexp settings which just cause problems
18 (setq compilation-error-regexp-alist (delq 'cucumber compilation-error-regexp-alist))
19 (setq compilation-error-regexp-alist (delq 'mips-1 compilation-error-regexp-alist))
20
21 ;;; remove matching whitespace in filenames for 'gnu' style error messages
22 (setf (nth 1 (assoc 'gnu compilation-error-regexp-alist-alist))
23       (replace-regexp-in-string (regexp-quote " [^-/\n]\\|") ""
24                                 (nth 1 (assoc 'gnu compilation-error-regexp-alist-alist)) t t))
25
26 (defun debug-compilation-error-regexps ()
27   (interactive)
28   (save-excursion
29     (save-restriction
30       (beginning-of-line)
31       (narrow-to-region (point) (save-excursion (forward-line 1) (point)))
32       (let ((match (loop for key in compilation-error-regexp-alist
33                          for elt = (assoc key compilation-error-regexp-alist-alist)
34                          if (and elt (re-search-forward (cadr elt) nil t))
35                          thereis key)))
36         (if match
37             (message "compilation-error-regexp-alist-alist key: %s" match)
38           (error "no error line at point"))))))