From b5d724dd1f16eb36a3b88de6892c26543f10f1ca Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Wed, 6 Feb 2008 16:54:59 +0000 Subject: [PATCH] emacs, dot-emacs: Overhaul for Emacs22 compatibility. * Remove apparently spurious `t' entries from font-lock-keywords lists. * Configure scroll-bar widths and fringes. * Update divvying so that it asks Emacs for the widths of the frame furniture if possible. * Define a couple of new faces. I'm sure there'll be more of these. * Define line-number-at-pos conditionally, so we don't clobber Emacs's better version. --- dot-emacs.el | 75 ++++++++++++++++++++++++++++++++---------------------------- emacs | 10 +++++--- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/dot-emacs.el b/dot-emacs.el index 0599106..c5e3dfd 100644 --- a/dot-emacs.el +++ b/dot-emacs.el @@ -79,18 +79,37 @@ path. The non-nil value is the filename we found for the library." ;; --- Splitting windows --- -(defconst mdw-scrollbar-width (if window-system 6 1) - "Guessed width of scroll bar.") +(or (and (fboundp 'scroll-bar-columns) + (fboundp 'fringe-columns)) + (progn + (defun scroll-bar-columns (side) + (cond ((eq side 'left) 0) + (window-system 3) + (t 1))) + (defun fringe-columns (side) + (cond ((not window-system) 0) + ((eq side 'left) 1) + (t 2))))) + (defun mdw-divvy-window (&optional w) "Split a wide window into appropriate widths." (interactive) - (or w (setq w 78)) - (let ((win (selected-window)) - (c (/ (+ (window-width) mdw-scrollbar-width) - (+ w mdw-scrollbar-width)))) + (or w (setq w (if (and window-system + (>= emacs-major-version 22)) + 77 + 78))) + (let* ((win (selected-window)) + (sb-width (if (not window-system) + 1 + (+ (scroll-bar-columns 'left) + (scroll-bar-columns 'right) + (fringe-columns 'left) + (fringe-columns 'right)))) + (c (/ (+ (window-width) sb-width) + (+ w sb-width)))) (while (> c 1) (setq c (1- c)) - (split-window-horizontally (+ w mdw-scrollbar-width)) + (split-window-horizontally (+ w sb-width)) (other-window 1)) (select-window win))) @@ -128,18 +147,18 @@ symbols `sunday', `monday', etc. (or a mixture). If the date stored in ;;;----- Utility functions -------------------------------------------------- -(defun line-number-at-pos (&optional pos) - "Print the current buffer line number and narrowed line number of point." - (let ((opoint (or pos (point))) start) - (save-excursion - (save-restriction - (goto-char (point-min)) - (widen) - (forward-line 0) - (setq start (point)) - (goto-char opoint) - (forward-line 0) - (1+ (count-lines 1 (point))))))) +(or (fboundp 'line-number-at-pos) + (defun line-number-at-pos (&optional pos) + (let ((opoint (or pos (point))) start) + (save-excursion + (save-restriction + (goto-char (point-min)) + (widen) + (forward-line 0) + (setq start (point)) + (goto-char opoint) + (forward-line 0) + (1+ (count-lines 1 (point)))))))) ;; --- mdw-uniquify-alist --- @@ -560,6 +579,8 @@ doesn't cope with anything approximating a complicated case." '(:family "courier new" :height 85)) ((eq window-system 'x) '(:family "misc-fixed" :width semi-condensed)))) + (fixed-pitch) + (minibuffer-prompt) (modeline :foreground "blue" :background "yellow" :box (:line-width 1 :style released-button)) (scroll-bar :foreground "black" :background "lightgrey") @@ -775,7 +796,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Fontify include files as strings --- @@ -856,7 +876,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Handle the keywords defined above --- @@ -931,7 +950,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Handle the keywords defined above --- @@ -1012,7 +1030,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Handle the keywords defined above --- @@ -1085,7 +1102,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Handle the keywords defined above --- @@ -1144,7 +1160,6 @@ doesn't cope with anything approximating a complicated case." (setq font-lock-keywords (list - 't ;; --- Set up the keywords defined above --- @@ -1201,7 +1216,6 @@ strip numbers instead." "while" "yield")))) (setq font-lock-keywords (list - 't ;; --- Set up the keywords defined above --- @@ -1280,7 +1294,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't ;; --- Handle numbers too --- ;; @@ -1328,7 +1341,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't (list (concat "\\<0\\([xX][0-9a-fA-F_]+\\|[0-7_]+\\)\\|" "\\<[0-9][0-9_]*\\(\\.[0-9_]*\\|\\)" "\\([eE]\\([-+]\\|\\)[0-9_]+\\|\\)") @@ -1397,7 +1409,6 @@ strip numbers instead." (setq font-lock-keywords (list - 't ;; --- Set up the keywords defined above --- @@ -1450,7 +1461,6 @@ strip numbers instead." (setq font-lock-keywords (list - 't ;; --- Set up the keywords defined above --- @@ -1501,7 +1511,6 @@ strip numbers instead." (setq font-lock-keywords (list - 't (list "--.*$" '(0 font-lock-comment-face)) (list (concat "\\<\\(" haskell-keywords "\\)\\>") @@ -1526,7 +1535,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't ;; --- Environment names are keywords --- @@ -1574,7 +1582,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't ;; --- Environment names are keywords --- @@ -1856,7 +1863,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't (list "\\<[A-Z][a-zA-Z0-9]*\\>" '(0 font-lock-keyword-face)) (list (concat "\\<0\\([xX][0-9a-fA-F_]+\\|[0-7_]+\\)\\|" @@ -1897,7 +1903,6 @@ strip numbers instead." (make-local-variable 'font-lock-keywords) (setq font-lock-keywords (list - 't (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face))))) diff --git a/emacs b/emacs index 995afd6..7ca4cc3 100644 --- a/emacs +++ b/emacs @@ -266,7 +266,10 @@ (vertical-scroll-bars . right)) (and window-system '((cursor-type . bar) - (cursor-blink . t))) + (cursor-blink . t) + (left-fringe . 5) + (right-fringe . 5) + (scroll-bar-width . 15))) '((cursor-color . "red")) (if mdw-black-background '((background-color . "black") @@ -290,6 +293,7 @@ (windmove-default-keybindings) (setq windmove-wrap-around t)) (trap (iswitchb-mode)) +(global-set-key "\M-#" 'calc-dispatch) (global-set-key [f4] 'query-replace-regexp) (global-set-key [f5] 'goto-line) (global-set-key [f6] 'auto-fill-mode) @@ -509,8 +513,8 @@ (add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t) (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t) (trap - (require 'slime) - (slime-setup :autodoc t)) + (require 'slime-autoloads) + (slime-setup '(slime-autodoc))) (trap (require 'xscheme)) (setq-default xscheme-process-command-line "scheme -large -emacs") (add-hook 'inferior-lisp-mode-hook -- 2.11.0