(dolist (key replacements)
(define-key keymap key binding))))))
+(eval-after-load "org"
+ '(progn
+ (push '("strayman"
+ "\\documentclass{strayman}
+\\usepackage[utf8]{inputenc}
+\\usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts}
+\\usepackage[T1]{fontenc}
+\\usepackage{graphicx, tikz, mdwtab, mdwmath, crypto, longtable}"
+ ("\\section{%s}" . "\\section*{%s}")
+ ("\\subsection{%s}" . "\\subsection*{%s}")
+ ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
+ ("\\paragraph{%s}" . "\\paragraph*{%s}")
+ ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
+ org-export-latex-classes)))
+
;;;--------------------------------------------------------------------------
;;; Mail and news hacking.
(setq answer func)))
answer))
+(eval-after-load "w3m-search"
+ '(progn
+ (dolist
+ (item
+ '(("g" "Google" "http://www.google.co.uk/search?q=%s")
+ ("gd" "Google Directory"
+ "http://www.google.com/search?cat=gwd/Top&q=%s")
+ ("gg" "Google Groups" "http://groups.google.com/groups?q=%s")
+ ("ward" "Ward's wiki" "http://c2.com/cgi/wiki?%s")
+ ("gi" "Images" "http://images.google.com/images?q=%s")
+ ("rfc" "RFC"
+ "http://metalzone.distorted.org.uk/ftp/pub/mirrors/rfc/rfc%s.txt.gz")
+ ("wp" "Wikipedia"
+ "http://en.wikipedia.org/wiki/Special:Search?go=Go&search=%s")
+ ("imdb" "IMDb" "http://www.imdb.com/Find?%s")
+ ("nc-wiki" "nCipher wiki"
+ "http://wiki.ncipher.com/wiki/bin/view/Devel/?topic=%s")
+ ("map" "Google maps" "http://maps.google.co.uk/maps?q=%s&hl=en")
+ ("lp" "Launchpad bug by number"
+ "https://bugs.launchpad.net/bugs/%s")
+ ("lppkg" "Launchpad bugs by package"
+ "https://bugs.launchpad.net/%s")
+ ("msdn" "MSDN"
+ "http://social.msdn.microsoft.com/Search/en-GB/?query=%s&ac=8")
+ ("debbug" "Debian bug by number"
+ "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s")
+ ("debbugpkg" "Debian bugs by package"
+ "http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=%s")
+ ("ljlogin" "LJ login" "http://www.livejournal.com/login.bml")))
+ (add-to-list 'w3m-search-engine-alist
+ (list (cadr item) (caddr item) nil))
+ (add-to-list 'w3m-uri-replace-alist
+ (list (concat "\\`" (car item) ":")
+ 'w3m-search-uri-replace
+ (cadr item))))))
+
;;;--------------------------------------------------------------------------
;;; Paragraph filling.
(and (fboundp 'gtags-mode)
(gtags-mode))
(outline-minor-mode t)
+ (hs-minor-mode t)
(mdw-set-font))
(eval-after-load 'gtags
(statement-case-intro . +)))
t))
+(defvar mdw-c-comment-fill-prefix
+ `((,(concat "\\([ \t]*/?\\)"
+ "\\(\*\\|//]\\)"
+ "\\([ \t]*\\)"
+ "\\([A-Za-z]+:[ \t]*\\)?"
+ mdw-hanging-indents)
+ (pad . 1) (match . 2) (pad . 3) (pad . 4) (pad . 5)))
+ "Fill prefix matching C comments (both kinds).")
+
(defun mdw-fontify-c-and-c++ ()
;; Fiddle with some syntax codes.
(setq c-hanging-comment-ender-p nil)
(setq c-backslash-column 72)
(setq c-label-minimum-indentation 0)
- (setq mdw-fill-prefix
- `((,(concat "\\([ \t]*/?\\)"
- "\\([\*/][ \t]*\\)"
- "\\([A-Za-z]+:[ \t]*\\)?"
- mdw-hanging-indents)
- (pad . 1) (match . 2) (pad . 3) (pad . 4))))
+ (setq mdw-fill-prefix mdw-c-comment-fill-prefix)
;; Now define things to be fontified.
(make-local-variable 'font-lock-keywords)
(setq c-backslash-column 72)
(setq comment-start "/* ")
(setq comment-end " */")
- (setq mdw-fill-prefix
- `((,(concat "\\([ \t]*/?\\)"
- "\\([\*/][ \t]*\\)"
- "\\([A-Za-z]+:[ \t]*\\)?"
- mdw-hanging-indents)
- (pad . 1) (match . 2) (pad . 3) (pad . 4))))
+ (setq mdw-fill-prefix mdw-c-comment-fill-prefix)
;; Now define things to be fontified.
(make-local-variable 'font-lock-keywords)
(mdw-java-style)
(setq c-hanging-comment-ender-p nil)
(setq c-backslash-column 72)
- (setq comment-start "/* ")
- (setq comment-end " */")
- (setq mdw-fill-prefix
- `((,(concat "\\([ \t]*/?\\)"
- "\\([\*/][ \t]*\\)"
- "\\([A-Za-z]+:[ \t]*\\)?"
- mdw-hanging-indents)
- (pad . 1) (match . 2) (pad . 3) (pad . 4))))
+ (setq mdw-fill-prefix mdw-c-comment-fill-prefix)
;; Now define things to be fontified.
(make-local-variable 'font-lock-keywords)
(mdw-csharp-style)
(setq c-hanging-comment-ender-p nil)
(setq c-backslash-column 72)
- (setq comment-start "/* ")
- (setq comment-end " */")
- (setq mdw-fill-prefix
- `((,(concat "\\([ \t]*/?\\)"
- "\\([\*/][ \t]*\\)"
- "\\([A-Za-z]+:[ \t]*\\)?"
- mdw-hanging-indents)
- (pad . 1) (match . 2) (pad . 3) (pad . 4))))
+ (setq mdw-fill-prefix mdw-c-comment-fill-prefix)
;; Now define things to be fontified.
(make-local-variable 'font-lock-keywords)
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
'(0 mdw-punct-face))))))
-(defun csharp-mode ()
- (interactive)
- (java-mode)
- (setq major-mode 'csharp-mode)
- (setq mode-name "C#")
- (mdw-fontify-csharp)
- (run-hooks 'csharp-mode-hook))
+(define-derived-mode csharp-mode java-mode "C#"
+ "Major mode for editing C# code.")
;;;--------------------------------------------------------------------------
;;; Awk programming configuration.
(list
;; Set up the keywords defined above.
- (list (concat "\\<\\(" python-keywords "\\)\\>")
+ (list (concat "\\<\\(" keywords "\\)\\>")
'(0 font-lock-keyword-face))
;; At least numbers are simpler than C.
(auto-fill-mode 1))
;;;--------------------------------------------------------------------------
-;;; Outline mode.
+;;; Outline and hide/show modes.
(defun mdw-outline-collapse-all ()
"Completely collapse everything in the entire buffer."
(hide-subtree)
(forward-line))))
+(setq hs-hide-comments-when-hiding-all nil)
+
;;;--------------------------------------------------------------------------
;;; Shell mode.