(concat "(" (buffer-string) ")")))))))
(cdr (assq sym mdw-config)))
+;; Width configuration.
+
+(defvar mdw-column-width
+ (string-to-number (or (mdw-config 'emacs-width) "77"))
+ "Width of Emacs columns.")
+(defvar mdw-text-width mdw-column-width
+ "Expected width of text within columns.")
+(put 'mdw-text-width 'safe-local-variable 'integerp)
+
;; Local variables hacking.
(defun run-local-vars-mode-hook ()
(interactive "P")
(setq width (cond (width (prefix-numeric-value width))
((and window-system (mdw-emacs-version-p 22))
- 77)
- (t 78)))
+ mdw-column-width)
+ (t (1+ mdw-column-width))))
(let* ((win (selected-window))
(sb-width (mdw-horizontal-window-overhead))
(c (/ (+ (window-width) sb-width)
ad-do-it)))
(mdw-advise-to-inhibit-raise-frame select-frame-set-input-focus)
+(mdw-advise-to-inhibit-raise-frame appt-disp-window)
;; Bug fix for markdown-mode, which breaks point positioning during
;; `query-replace'.
(let ((mdw-diary-for-org-mode-p t))
ad-do-it))
-(defadvice diary-add-to-list (before mdw-trim-leading-space activate)
+(defadvice diary-add-to-list (before mdw-trim-leading-space compile activate)
"Trim leading space from the diary entry string."
(save-match-data
- (let ((str (ad-get-arg 1)))
- (ad-set-arg 1
- (cond ((null str) nil)
+ (let ((str (ad-get-arg 1))
+ (done nil) old)
+ (while (not done)
+ (setq old str)
+ (setq str (cond ((null str) nil)
+ ((string-match "\\(^\\|\n\\)[ \t]+" str)
+ (replace-match "\\1" nil nil str))
((and mdw-diary-for-org-mode-p
(string-match (concat
- "^[ \t]*"
+ "\\(^\\|\n\\)"
"\\(" diary-time-regexp
"\\(-" diary-time-regexp "\\)?"
- "\\)[ \t]+")
+ "\\)"
+ "\\(\t[ \t]*\\| [ \t]+\\)")
str))
- (replace-match "\\1 " nil nil str))
- ((string-match "^[ \t]+" str)
- (replace-match "" nil nil str))
+ (replace-match "\\1\\2 " nil nil str))
((and (not mdw-diary-for-org-mode-p)
(string-match "\\[\\[[^][]*]\\[\\([^][]*\\)]]"
str))
(replace-match "\\1" nil nil str))
- (t str))))))
+ (t str)))
+ (if (equal str old) (setq done t)))
+ (ad-set-arg 1 str))))
+
+(defadvice org-bbdb-anniversaries (after mdw-fixup-list compile activate)
+ "Return a string rather than a list."
+ (with-temp-buffer
+ (let ((anyp nil))
+ (dolist (e (let ((ee ad-return-value))
+ (if (atom ee) (list ee) ee)))
+ (when e
+ (when anyp (insert ?\n))
+ (insert e)
+ (setq anyp t)))
+ (setq ad-return-value
+ (and anyp (buffer-string))))))
;; Fighting with Org-mode's evil key maps.
(setq page-delimiter "\f\\|^.*-\\{6\\}.*$")
(setq comment-column 40)
(auto-fill-mode 1)
- (setq fill-column 77)
+ (setq fill-column mdw-text-width)
(and (fboundp 'gtags-mode)
(gtags-mode))
(if (fboundp 'hs-minor-mode)
(trap (turn-on-font-lock)))
(defun mdw-post-local-vars-misc-mode-config ()
+ (setq whitespace-line-column mdw-text-width)
(when (and mdw-do-misc-mode-hacking
(not buffer-read-only))
(setq show-trailing-whitespace t)
(mdw-define-face trailing-whitespace
(((class color)) :background "red")
(t :inverse-video t))
+(mdw-define-face whitespace-line
+ (((class color)) :background "darkred")
+ (t :inverse-video t))
(mdw-define-face mdw-punct-face
(((type tty)) :foreground "yellow") (t :foreground "burlywood2"))
(mdw-define-face mdw-number-face
(mdw-define-face diff-refine-change
(((class color) (type x)) :background "RoyalBlue4")
(t :underline t))
+(mdw-define-face diff-refine-removed
+ (((class color) (type x)) :background "#500")
+ (t :underline t))
+(mdw-define-face diff-refine-added
+ (((class color) (type x)) :background "#050")
+ (t :underline t))
+
+(setq ediff-force-faces t)
+(mdw-define-face ediff-current-diff-A
+ (((class color) (type x)) :background "darkred")
+ (((class color) (type tty)) :background "red")
+ (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-A
+ (((class color) (type x)) :background "red3")
+ (((class color) (type tty)) :inverse-video t)
+ (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-A
+ (((class color) (type x)) :background "#300"))
+(mdw-define-face ediff-odd-diff-A
+ (((class color) (type x)) :background "#300"))
+(mdw-define-face ediff-current-diff-B
+ (((class color) (type x)) :background "darkgreen")
+ (((class color) (type tty)) :background "magenta")
+ (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-B
+ (((class color) (type x)) :background "green4")
+ (((class color) (type tty)) :inverse-video t)
+ (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-B
+ (((class color) (type x)) :background "#020"))
+(mdw-define-face ediff-odd-diff-B
+ (((class color) (type x)) :background "#020"))
+(mdw-define-face ediff-current-diff-C
+ (((class color) (type x)) :background "darkblue")
+ (((class color) (type tty)) :background "blue")
+ (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-C
+ (((class color) (type x)) :background "blue1")
+ (((class color) (type tty)) :inverse-video t)
+ (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-C
+ (((class color) (type x)) :background "#004"))
+(mdw-define-face ediff-odd-diff-C
+ (((class color) (type x)) :background "#004"))
+(mdw-define-face ediff-current-diff-Ancestor
+ (((class color) (type x)) :background "#630")
+ (((class color) (type tty)) :background "blue")
+ (t :inverse-video t))
+(mdw-define-face ediff-even-diff-Ancestor
+ (((class color) (type x)) :background "#320"))
+(mdw-define-face ediff-odd-diff-Ancestor
+ (((class color) (type x)) :background "#320"))
(mdw-define-face dylan-header-background
(((class color) (type x)) :background "NavyBlue")
(inextern-lang . [0])
(label . 0)
(case-label . +)
- (access-label . -)
+ (access-label . -2)
(inclass . +)
(inline-open . ++)
(statement-cont . +)
(modify-syntax-entry ?. "w")
(modify-syntax-entry ?\n ">")
(setf fill-prefix nil)
+ (local-set-key ";" 'self-insert-command)
(mdw-standard-fill-prefix "\\([ \t]*;+[ \t]*\\)"))
(defun mdw-asm-set-comment ()
(list "[$^_{}#&]"
'(0 mdw-punct-face)))))
+(eval-after-load 'font-latex
+ '(defun font-latex-jit-lock-force-redisplay (buf start end)
+ "Compatibility for Emacsen not offering `jit-lock-force-redisplay'."
+ ;; The following block is an expansion of `jit-lock-force-redisplay'
+ ;; and involved macros taken from CVS Emacs on 2007-04-28.
+ (with-current-buffer buf
+ (let ((modified (buffer-modified-p)))
+ (unwind-protect
+ (let ((buffer-undo-list t)
+ (inhibit-read-only t)
+ (inhibit-point-motion-hooks t)
+ (inhibit-modification-hooks t)
+ deactivate-mark
+ buffer-file-name
+ buffer-file-truename)
+ (put-text-property start end 'fontified t))
+ (unless modified
+ (restore-buffer-modified-p nil)))))))
+
;;;--------------------------------------------------------------------------
;;; SGML hacking.