diff --git a/.emacs b/.emacs index 4169ac9..41a6ecd 100644 --- a/.emacs +++ b/.emacs @@ -58,6 +58,9 @@ ;; Turn on electric-indent-mode (electric-indent-mode 1) +;; Single spaces denote end sentences for use with sentence commands +(setq sentence-end-double-space nil) + ;; Show column number in status bar (column-number-mode) @@ -80,8 +83,17 @@ (add-to-list 'auto-mode-alist '("\\.mpdconf" . conf-mode)) (add-to-list 'auto-mode-alist '("dunstrc" . conf-mode)) -;; bind M-g to M-x goto-line -(global-set-key "\M-g" 'goto-line) +;; Load ~/.emacs.d/site-list-extra which contains various .el files +;; that aren't (yet) available through packages +(add-to-list 'load-path "~/.emacs.d/site-lisp-extra") + +;; Define some alias' for commonly M-x'ed commands +(defalias 'run-sql 'sql-product-interactive) + +;; bind M-g to M-x goto-line *DEPRECIATED* +;; "M-g was made a prefix by RMS in 2005. goto-line has been bound to M-g g and M-g M-g. – XueFuqiao" +;; See: http://www.emacswiki.org/emacs/EmacsNiftyTricks +;;(global-set-key "\M-g" 'goto-line) ;; Make C-x O cycle backwards a pane (oposite to C-x o) (global-set-key "\C-xO" #'(lambda () @@ -121,8 +133,8 @@ ;; activate flyspell-prog-mode for all buffers used for programming (activate-mode-with-hooks 'flyspell-prog-mode code-modes) -;; use flyspell-mode in org-mode and magit-log-edit-mode buffers -(activate-mode-with-hooks 'flyspell-mode '(org-mode-hook magit-log-edit-mode-hook)) +;; use flyspell-mode in 'non-code' text like modes (Eg. org-mode, markup modes and magit-log-edit-mode) +(activate-mode-with-hooks 'flyspell-mode '(text-mode-hook markdown-mode-hook latex-mode-hook org-mode-hook magit-log-edit-mode-hook mu4e-compose-mode-hook)) ;; Enjoy a game of Sudoku on some downtime (require 'sudoku) ;; ELPA @@ -191,6 +203,12 @@ (name . "^dunstrc") (name . "^\\.mpdconf") (name . "^\\.conkerorrc"))) + ("markup" (or + (mode . xml-mode) + (mode . html-mode) + (mode . haml-mode) + (mode . markdown-mode) + (mode . latex-mode))) ("code" (or (mode . c-mode) (mode . c++-mode) @@ -207,15 +225,13 @@ (mode . haskell-mode) (mode . scala-mode) (mode . php-mode) - (mode . xml-mode) - (mode . html-mode) (mode . css-mode) - (mode . haml-mode) (mode . sass-mode) (mode . scss-mode) - (mode . js-mode))) + (mode . js-mode) + (mode . sql-mode))) ("REPL" (or - (mode . geiser-mode) + (mode . geiser-repl-mode) (mode . slime-repl-mode) (mode . inferior-python-mode) (mode . ipython-mode) @@ -225,15 +241,26 @@ (mode . inferior-scheme-mode) (mode . inferior-tcl) (mode . erlang-shell-mode) - (name . "^\\*inferior-lisp\\*$") - (name . "^\\* Racket REPL \\*$"))) + (mode . sql-interactive-mode))) ("git" (or - (name . "^\\*magit: ") ;; this regxp could be better + (name . "^\\*magit: .*\\*$") ;; this regxp could be better (mode . magit-mode) (mode . magit-diff-mode) (mode . magit-log-mode) (mode . magit-commit-mode) - (mode . magit-log-mode))) + (mode . magit-log-mode) + (mode . magit-wazzup-mode) + (mode . magit-process-mode))) + ("bookmarks" (or + (name . "^\\*Bookmark List\\*$"))) + ("help" (or + (mode . help-mode) + (mode . apropos-mode) + (mode . info-mode) + (mode . man-mode))) + ("messages" (or + (name . "^\\*geiser messages\\*$") + (name . "^\\*Shell Command Output\\*$"))) ("planner" (or (name . "^\\*Calendar\\*$") (name . "^diary$") @@ -242,12 +269,22 @@ (name . "^\\*scratch\\*$") (name . "^\\*Messages\\*$") (name . "^\\*Backtrace\\*$") + (name . "^\\*Compile-Log\\*$") + (mode . ediff-meta-mode) + (mode . browse-kill-ring-mode) (mode . package-menu-mode) (mode . compilation-mode))) ("org" (or (mode . org-mode) (name . "^\\.org$") (name . "^\\.org.gpg$"))) + ("mu4e" (or + (mode . mu4e-main-mode) + (mode . mu4e-compose-mode) + (mode . mu4e-headers-mode) + (mode . mu4e-view-mode) + (name . "^mu4e-update$") + (name . "^\\*trace of SMTP session to .*\\*$"))) ("gnus" (or (mode . message-mode) (mode . bbdb-mode) @@ -299,6 +336,9 @@ (autoload 'php-mode "php-mode.el" "Php mode." t) ;; ELPA (setq auto-mode-alist (append '(("/*.\.php[345]?$" . php-mode)) auto-mode-alist)) +;; Setup sql-mode (use mysql instead of ansi) +(setq sql-product 'mysql) + ;; Setup zencoding-mode (require 'emmet-mode) @@ -312,7 +352,7 @@ (add-hook 'emmet-mode-hook (lambda () (setq emmet-indentation 2))) ;; indent 2 spaces. ;; Setup mmm-mode for multiple mode regions in the same buffer -;;(require 'mmm-mode) +(require 'mmm-mode) ;;(setq mmm-global-mode 'maybe) ;; Set default lisp program @@ -363,6 +403,21 @@ ;; (aput 'slime-lisp-implementations 'clojure ;; (list (swank-clojure-cmd) :init 'swank-clojure-init)))) +;; Setup Auctex +(load "auctex.el" nil t t) + +(setq TeX-auto-save t) +(setq TeX-parse-self t) +(setq-default TeX-master nil) + +(add-hook 'LaTeX-mode-hook 'visual-line-mode) +(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode) +(add-hook 'LaTeX-mode-hook 'turn-on-reftex) +(setq reftex-plug-into-AUCTeX t) + +(require 'tex) +(TeX-global-PDF-mode t) + ;; Setup emacs-org-mode (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when global-font-lock-mode is on @@ -452,29 +507,49 @@ (eval-after-load "auto-complete" '(add-to-list 'ac-modes 'geiser-repl-mode)) +;; Make struct stand out in scheme-mode for racket +(defun racket-faces () + (font-lock-add-keywords nil + '(("(struct \\(\\sw+\\)" 1 font-lock-function-name-face) + ("(\\(struct\\)" 1 font-lock-keyword-face) + ("(\\(λ\\)" 1 font-lock-keyword-face)))) + +(add-hook 'scheme-mode-hook 'racket-faces) +(add-hook 'geiser-repl-mode-hook 'racket-faces) + +;; Setup scribble mode (custom .el from ~/.emacs.d/site-lisp-extra) +;; See: http://www.neilvandyke.org/scribble-emacs/ +(require 'scribble) + ;; Setup quack (require 'quack) ;; ELPA ;; Setup paredit (require 'paredit) ;; ELPA -(defvar lispy-langs-hooks '(lisp-mode-hook lisp-interaction-mode-hook emacs-lisp-mode-hook scheme-mode-hook c-mode-hook c++-mode-hook python-mode-hook)) +(defvar lispy-langs-hooks '(lisp-mode-hook lisp-interaction-mode-hook emacs-lisp-mode-hook scheme-mode-hook c-mode-hook c++-mode-hook python-mode-hook geiser-repl-mode-hook)) ;; Apply paredit-mode to modes listed in lispy-langs-hooks (activate-mode-with-hooks (lambda () (paredit-mode 1)) lispy-langs-hooks) +;; Highlight sexp's in lispy languages +(activate-mode-with-hooks (lambda () (highlight-sexp-mode)) lispy-langs-hooks) + ;; Paredit binds to C-j globally and thus disables the binding to ;; eval-print-last-sexp in emacs-lisp-mode (e.g *scratch*, etc..) (add-hook 'emacs-lisp-mode-hook '(lambda () (define-key emacs-lisp-mode-map "\C-xj" 'eval-print-last-sexp))) -;; Highlight paren's in given modes [to apply globally do (show-paren-mode 1)] +;; Match paren's in given modes [to apply globally do (show-paren-mode 1)] (activate-mode-with-hooks (lambda () (show-paren-mode)) lispy-langs-hooks) -;; Setup rainbow-delimiters *BROKEN* +;; Highlight paren's near point +(require 'highlight-parentheses) +(activate-mode-with-hooks (lambda () (highlight-parentheses-mode)) lispy-langs-hooks) + +;; Setup rainbow-delimiters (require 'rainbow-delimiters) ;; ELPA -(add-hook 'prog-mode-hook 'rainbow-delimiters-mode) -;;(activate-mode-with-hooks (lambda () (with-current-buffer buf (rainbow-delimiters-mode))) lispy-langs-hooks) +(global-rainbow-delimiters-mode) ;; Setup rainbow-mode ;; ELPA (require 'rainbow-mode) @@ -490,7 +565,7 @@ (if (member 'paredit-mode active-minor-modes) (paredit-mode -1) (paredit-mode 1)))) (setq geiser-repl-use-other-window nil) -(setq geiser-active-implementations '(racket)) +(setq geiser-active-implementations '(racket guile)) ;; setup pastebin.el for use with pastebin.com *BROKEN* ;(require 'pastebin) ;; ELPA @@ -518,6 +593,9 @@ ;; Setup isearch+ (require 'isearch+) +;; Setup bookmark+ +(require 'bookmark+) + ;; Setup ace-jump-mode (autoload 'ace-jump-mode @@ -549,7 +627,8 @@ ;; Setup yasnippet-mode (not yasnippet-bundle) (require 'yasnippet) ;; ELPA -(yas/load-directory "~/.emacs.d/elpa/yasnippet-20140106.1009") +(yas-load-directory "~/.emacs.d/elpa/yasnippet-20140821.38") +(yas-load-directory "~/.emacs.d/snippets") (yas-global-mode 1) ;; Enable flyspell-mode @@ -563,12 +642,15 @@ (setq auto-insert-directory "~/.emacs.d/templates/") ;;; Or use custom, *NOTE* Trailing slash important (setq auto-insert-query nil) ;;; If you don't want to be prompted before insertion +(setq autoinsert-tpl-author "Collin J. Doering") +(setq autoinsert-tpl-email "collin.doering@rekahsoft.ca") + ;; auto-insert options template and auto-completion (add-hook 'find-file-hooks 'auto-insert) (setq auto-insert-directory (concat (getenv "HOME") "/.emacs.d/templates/")) (setq auto-insert-alist '(("\\.c$" . ["c-template.c" auto-update-generic-template]) - ("\\.cc\\|cpp$" . ["cpp-template.c" auto-update-generic-template]) + ("\\.cc\\|cpp$" . ["cpp-template.cc" auto-update-generic-template]) ("\\.php$" . ["php-template.php" auto-update-generic-template]) ("\\.rb$" . ["ruby-template.rb" auto-update-generic-template]) ("\\.lua$" . ["lua-template.lua" auto-update-generic-template]) @@ -592,10 +674,14 @@ ("\\.sass$" . ["sass-template.sass" auto-update-generic-template]) ("\\.haml$" . ["haml-template.haml" auto-update-generic-template]) ("\\.markdown$" . ["markdown-template.markdown" auto-update-generic-template]) - ("\\.latex$" . ["latex-template.latex" auto-update-generic-template]))) + ("\\.tex$" . ["latex-template.tex" auto-update-generic-template]))) (setq auto-insert 'other) +;; TODO: remove interactive-ness from auto-update-generic-template as it's not needed +;; and there only as a workaround. Python and PHP templates are not filled for +;; some unknown reason. (defun auto-update-generic-template () + (interactive) (save-excursion ;; Replace @!@FILENAME@!@ with file name sans suffix (while (search-forward "@!@FILENAME@!@" nil t) @@ -620,7 +706,21 @@ (while (search-forward "@!@YEAR@!@" nil t) (save-restriction (narrow-to-region (match-beginning 0) (match-end 0)) - (replace-match (format-time-string "%Y" (current-time))))))) + (replace-match (format-time-string "%Y" (current-time)))))) + (save-excursion + ;; Replace @!@AUTHOR@!@ with the current year + (while (search-forward "@!@AUTHOR@!@" nil t) + (save-restriction + (narrow-to-region (match-beginning 0) (match-end 0)) + (replace-match "") + (insert-author)))) + (save-excursion + ;; Replace @!@EMAIL@!@ with the current year + (while (search-forward "@!@EMAIL@!@" nil t) + (save-restriction + (narrow-to-region (match-beginning 0) (match-end 0)) + (replace-match "") + (insert-author-email))))) ;; Insert current date at cursor in the currently active buffer (defun insert-date () @@ -628,6 +728,16 @@ (interactive) (insert (format-time-string "%b %e, %Y" (current-time)))) +(defun insert-author () + "Insert author name at point" + (interactive) + (insert autoinsert-tpl-author)) + +(defun insert-author-email () + "Insert author email at point" + (interactive) + (insert autoinsert-tpl-email)) + ;; (defun open-scratch-buffer () ;; "Opens the scratch buffer; if none exists creates one." ;; (interactive) @@ -793,29 +903,181 @@ consisting of lists of buffers opened by each respective FP argument." ;; ;; Synchronize el-get ;; (el-get 'sync) +;; Setup email using mu4e (offlineimap in the background) and smtpmail +(require 'mu4e) +(require 'smtpmail) + +(setq mail-user-agent 'mu4e-user-agent + mu4e-get-mail-command "mbsync -a" + mu4e-update-interval 300 + mu4e-user-mail-address-list (list "collin.doering@gmail.com" "rekahsoft@gmail.com") + message-kill-buffer-on-exit t + mu4e-use-fancy-chars t + mu4e-sent-messages-behavior 'delete + mu4e-confirm-quit nil + mu4e-headers-date-format "%d/%b/%Y %H:%M" ; date format + message-signature "Collin J. Doering\n\nhttp://rekahsoft.ca\nhttp://blog.rekahsoft.ca\n" + mu4e-compose-signature message-signature + message-signature-insert-empty-line t + mu4e-html2text-command "pandoc -f html -t asciidoc" + + mu4e-view-show-images t + mu4e-view-image-max-width 800 + + ;; Default email for smtp and mu4e + user-mail-address "collin.doering@gmail.com" + + ;; Setup mu4e default sent and draft folders + mu4e-sent-folder "/collin.doering-gmail/[Gmail].Sent" + mu4e-drafts-folder "/collin.doering-gmail/[Gmail].Drafts" + + ;; Set location of maildir + mu4e-maildir "~/.mail" + + ;; Setup smtp defaults + user-full-name "Collin J. Doering" + smtpmail-smtp-server "smtp.gmail.com" + smtpmail-smtp-service 587 + smtpmail-auth-credentials "~/.authinfo.gpg" + smtpmail-stream-type 'starttls + smtpmail-debug-info t + message-send-mail-function 'smtpmail-send-it) + +;; Override default mu4e-bookmarks with custom ones +(setq mu4e-bookmarks + '(("flag:unread AND NOT flag:trashed AND NOT maildir:/collin.doering-gmail/[Gmail].Spam AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Unread messages" ?u) + ("date:today..now AND NOT maildir:/collin.doering-gmail/[Gmail].Spam AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Today's messages" ?t) + ("date:7d..now AND NOT maildir:/collin.doering-gmail/[Gmail].Spam AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Last 7 days" ?w) + ("mime:image/*" "Messages with images" ?p) + + ;; For collin.doering-gmail maildir + ("flag:unread AND maildir:/collin.doering-gmail/INBOX AND NOT flag:trashed AND NOT maildir:/collin.doering-gmail/[Gmail].Spam" "Unread messages to collin.doering-gmail" ?z) + ("date:today..now AND maildir:/collin.doering-gmail/INBOX AND NOT maildir:/collin.doering-gmail/[Gmail].Spam" "Today's messages to collin.doering-gmail" ?x) + ("date:7d..now AND maildir:/collin.doering-gmail/INBOX AND NOT maildir:/collin.doering-gmail/[Gmail].Spam" "Last 7 days (collin.doering-gmail)" ?c) + ("mime:image/* AND maildir:/collin.doering-gmail/INBOX" "Messages with images to collin.doering-gmail" ?v) + + ;; For rekahsoft-gmail maildir + ("flag:unread AND maildir:/rekahsoft-gmail/INBOX AND NOT flag:trashed AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Unread messages to rekahsoft-gmail" ?m) + ("date:today..now AND maildir:/rekahsoft-gmail/INBOX AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Today's messages to rekahsoft-gmail" ?,) + ("date:7d..now AND maildir:/rekahsoft-gmail/INBOX AND NOT maildir:/rekahsoft-gmail/[Gmail].Spam" "Last 7 days (rekahsoft-gmail)" ?.) + ("mime:image/* AND maildir:/rekahsoft-gmail/INBOX" "Messages with images to rekahsoft-gmail" ?/))) + +;; TODO: consolidate my-mu4e-account-alist and smtp-accounts +(defvar my-mu4e-account-alist + '(("collin.doering-gmail" + (mu4e-sent-folder "/collin.doering-gmail/[Gmail].Sent") + (mu4e-drafts-folder "/collin.doering-gmail/[Gmail].Drafts") + (user-mail-address "collin.doering@gmail.com")) + ("rekahsoft-gmail" + (mu4e-sent-folder "/rekahsoft-gmail/[Gmail].Sent") + (mu4e-drafts-folder "/rekahsoft-gmail/[Gmail].Drafts") + (user-mail-address "rekahsoft@gmail.com")))) + +(defun my-mu4e-set-account () + "Set the account for composing a message." + (let* ((account + (if mu4e-compose-parent-message + (let ((maildir (mu4e-message-field mu4e-compose-parent-message :maildir))) + (string-match "/\\(.*?\\)/" maildir) + (match-string 1 maildir)) + (completing-read (format "Compose with account: (%s) " + (mapconcat #'(lambda (var) (car var)) my-mu4e-account-alist "/")) + (mapcar #'(lambda (var) (car var)) my-mu4e-account-alist) + nil t nil nil (caar my-mu4e-account-alist)))) + (account-vars (cdr (assoc account my-mu4e-account-alist)))) + (if account-vars + (mapc #'(lambda (var) + (set (car var) (cadr var))) + account-vars) + (error "No email account found")))) + +(add-hook 'mu4e-compose-pre-hook 'my-mu4e-set-account) + +;; Attach files using dired using 'C-c RET C-a' +;; Thanks to: http://www.djcbsoftware.nl/code/mu/mu4e/Attaching-files-with-dired.html#Attaching-files-with-dired +(require 'gnus-dired) +;; make the `gnus-dired-mail-buffers' function also work on +;; message-mode derived modes, such as mu4e-compose-mode +(defun gnus-dired-mail-buffers () + "Return a list of active message buffers." + (let (buffers) + (save-current-buffer + (dolist (buffer (buffer-list t)) + (set-buffer buffer) + (when (and (derived-mode-p 'message-mode) + (null message-sent-message-via)) + (push (buffer-name buffer) buffers)))) + (nreverse buffers))) + +(setq gnus-dired-mail-mode 'mu4e-user-agent) +(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) + +;; Setup mu4e-maildirs-extension +(require 'mu4e-maildirs-extension) +(mu4e-maildirs-extension) + +(setq smtp-accounts + '(("collin.doering@gmail.com" "Collin J. Doering" "smtp.gmail.com") + ("rekahsoft@gmail.com" "rekahsoft" "smtp.gmail.com"))) + +(defun my-change-smtp () + (save-excursion + (loop with from = (save-restriction + (message-narrow-to-headers) + (message-fetch-field "from")) + for (addr fname server) in smtp-accounts + when (string-match addr from) + do (setq user-mail-address addr + user-full-name fname + smtpmail-smtp-server server + smtpmail-smtp-user addr)))) + +(defadvice smtpmail-via-smtp + (before change-smtp-by-message-from-field (recipient buffer &optional ask) activate) + (with-current-buffer buffer (my-change-smtp))) + +(ad-activate 'smtpmail-via-smtp) + +;; Set environment variables set by gpg-agent --daemon in ~/.gpg-agent-info +;; TODO: perhaps better error handling if ~/.gpg-agent-info doesn't exist +(mapc (lambda (x) (setenv (car x) (cadr x))) + (with-temp-buffer + (insert-file-contents "~/.gpg-agent-info") + (mapcar (lambda (x) (split-string x "=" t)) (split-string (buffer-string) "\n" t)))) + (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. + '(TeX-command-list (quote (("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX") ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") ("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output") ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output") ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX") ("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once") ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion") ("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run BibTeX") ("Biber" "biber %s" TeX-run-Biber nil t :help "Run Biber") ("View" "zathura %s.pdf" TeX-run-discard-or-function t t :help "Run Viewer") ("Print" "%p" TeX-run-command t t :help "Print the file") ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command) ("File" "%(o?)dvips %d -o %f " TeX-run-command t t :help "Generate PostScript file") ("Index" "makeindex %s" TeX-run-command nil t :help "Create index file") ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness") ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document") ("Clean" "TeX-clean" TeX-run-function nil t :help "Delete generated intermediate files") ("Clean All" "(TeX-clean t)" TeX-run-function nil t :help "Delete generated intermediate and output files") ("Other" "" TeX-run-command t t :help "Run an arbitrary command")))) + '(bmkp-last-as-first-bookmark-file "~/.emacs.d/bookmarks") '(coffee-tab-width 2) - '(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" "b5aaedbcd4d81925c8b2bc21dbed6d0a5a6854b6ad745e948efd55e42b48bd04" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" "36a309985a0f9ed1a0c3a69625802f87dee940767c9e200b89cdebdb737e5b29" "dc8693659115ea453f849f47509b903da3801b5f1521a73fa31556a9a3558517" default))) + '(confirm-kill-emacs (quote y-or-n-p)) + '(custom-safe-themes (quote ("96b54f35e473769a388f12984d735092f9163c63aa6724ee49176d865c46071b" "fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" "b5aaedbcd4d81925c8b2bc21dbed6d0a5a6854b6ad745e948efd55e42b48bd04" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" "36a309985a0f9ed1a0c3a69625802f87dee940767c9e200b89cdebdb737e5b29" "dc8693659115ea453f849f47509b903da3801b5f1521a73fa31556a9a3558517" default))) '(fill-column 95) - '(highlight-current-line-globally t nil (highlight-current-line)) - '(highlight-current-line-ignore-regexp "Faces\\|Colors\\| \\*Mini\\|\\**\\*") + '(geiser-default-implementation (quote racket)) + '(geiser-racket-collects (quote ("/usr/share/racket/collects"))) + '(hl-sexp-background-color "#19202B") + '(ido-enable-flex-matching t) '(magit-commit-signoff t t) '(org-agenda-files (quote ("~/.org/tech/notes.org" "~/.org/todo/rekahsoft-mini-todo.org" "~/.org/todo/rekahsoft-todo.org" "~/.org/todo/general.org" "~/.org/todo/work.org"))) '(quack-default-program "racket") '(quack-fontify-style (quote plt)) '(quack-programs (quote ("mzscheme" "bigloo" "csi" "csi -hygienic" "gosh" "gracket" "gsi" "gsi ~~/syntax-case.scm -" "guile" "kawa" "mit-scheme" "racket" "racket -il typed/racket" "rs" "scheme" "scheme48" "scsh" "sisc" "stklos" "sxi"))) + '(quack-remap-find-file-bindings-p nil) '(scroll-bar-mode nil) '(send-mail-function (quote smtpmail-send-it)) '(show-paren-mode t) - '(w3m-content-type-alist (quote (("text/plain" "\\.\\(?:txt\\|tex\\|el\\)\\'" nil nil) ("text/html" "\\.s?html?\\'" ("conkeror" file) nil) ("text/sgml" "\\.sgml?\\'" nil "text/plain") ("text/xml" "\\.xml\\'" nil "text/plain") ("image/jpeg" "\\.jpe?g\\'" ("/usr/bin/display" file) nil) ("image/png" "\\.png\\'" ("/usr/bin/display" file) nil) ("image/gif" "\\.gif\\'" ("/usr/bin/display" file) nil) ("image/tiff" "\\.tif?f\\'" ("/usr/bin/display" file) nil) ("image/x-xwd" "\\.xwd\\'" ("/usr/bin/display" file) nil) ("image/x-xbm" "\\.xbm\\'" ("/usr/bin/display" file) nil) ("image/x-xpm" "\\.xpm\\'" ("/usr/bin/display" file) nil) ("image/x-bmp" "\\.bmp\\'" ("/usr/bin/display" file) nil) ("video/mpeg" "\\.mpe?g\\'" nil nil) ("video/quicktime" "\\.mov\\'" nil nil) ("application/dvi" "\\.dvi\\'" ("xdvi" file) nil) ("application/postscript" "\\.e?ps\\'" ("gs" file) nil) ("application/pdf" "\\.pdf\\'" nil nil) ("application/x-pdf" "\\.pdf\\'" nil nil) ("application/xml" "\\.xml\\'" nil w3m-detect-xml-type) ("application/rdf+xml" "\\.rdf\\'" nil "text/plain") ("application/rss+xml" "\\.rss\\'" nil "text/plain") ("application/xhtml+xml" nil nil "text/html"))) t)) + '(w3m-content-type-alist (quote (("text/plain" "\\.\\(?:txt\\|tex\\|el\\)\\'" nil nil) ("text/html" "\\.s?html?\\'" ("conkeror" file) nil) ("text/sgml" "\\.sgml?\\'" nil "text/plain") ("text/xml" "\\.xml\\'" nil "text/plain") ("image/jpeg" "\\.jpe?g\\'" ("/usr/bin/display" file) nil) ("image/png" "\\.png\\'" ("/usr/bin/display" file) nil) ("image/gif" "\\.gif\\'" ("/usr/bin/display" file) nil) ("image/tiff" "\\.tif?f\\'" ("/usr/bin/display" file) nil) ("image/x-xwd" "\\.xwd\\'" ("/usr/bin/display" file) nil) ("image/x-xbm" "\\.xbm\\'" ("/usr/bin/display" file) nil) ("image/x-xpm" "\\.xpm\\'" ("/usr/bin/display" file) nil) ("image/x-bmp" "\\.bmp\\'" ("/usr/bin/display" file) nil) ("video/mpeg" "\\.mpe?g\\'" nil nil) ("video/quicktime" "\\.mov\\'" nil nil) ("application/dvi" "\\.dvi\\'" ("xdvi" file) nil) ("application/postscript" "\\.e?ps\\'" ("gs" file) nil) ("application/pdf" "\\.pdf\\'" nil nil) ("application/x-pdf" "\\.pdf\\'" nil nil) ("application/xml" "\\.xml\\'" nil w3m-detect-xml-type) ("application/rdf+xml" "\\.rdf\\'" nil "text/plain") ("application/rss+xml" "\\.rss\\'" nil "text/plain") ("application/xhtml+xml" nil nil "text/html"))) t) + '(yas-prompt-functions (quote (yas-ido-prompt)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(highlight-current-line-face ((t (:background "gray10"))))) + '(mode-line ((t (:background "grey20" :foreground "#00afff" :box 1 :slant normal :weight normal :height 111 :width normal :foundry "xos4" :family "Terminus")))) + '(mode-line-inactive ((t (:inherit mode-line :background "grey5" :foreground "grey80" :box 1 :slant normal :weight normal :height 111 :width normal :foundry "xos4" :family "Terminus")))) + '(show-paren-match ((t (:background "dark violet"))))) (put 'dired-find-alternate-file 'disabled nil) +(put 'downcase-region 'disabled nil) diff --git a/.emacs.d/bookmarks b/.emacs.d/bookmarks new file mode 100644 index 0000000..0f7fc72 --- /dev/null +++ b/.emacs.d/bookmarks @@ -0,0 +1,10 @@ +;;;; Emacs Bookmark Format Version 1 ;;;; +;;; This format is meant to be slightly human-readable; +;;; nevertheless, you probably don't want to edit it. +;;; -*- End Of Bookmark File Format Version Stamp -*- +(("org-capture-last-stored" + (filename . "~/.org/notes.org") + (front-context-string . "*** Go get the c") + (rear-context-string . "n emacs further\n") + (position . 151)) +) \ No newline at end of file diff --git a/.emacs.d/site-lisp-extra/scribble.el b/.emacs.d/site-lisp-extra/scribble.el new file mode 100644 index 0000000..8836aad --- /dev/null +++ b/.emacs.d/site-lisp-extra/scribble.el @@ -0,0 +1,1141 @@ +;; $Id: scribble.el,v 1.48 2013-09-28 04:52:05 user Exp $ + +(defconst scribble-mode-title "Racket Scribble Emacs Mode") +(defconst scribble-mode-version "0.4") +(defconst scribble-mode-date "2013-09-28") +(defconst scribble-mode-web "http://www.neilvandyke.org/scribble-emacs/") + +(defconst scribble-mode-legal-notices + "Copyright (c) 2011, 2013 Neil Van Dyke. This program is Free Software; you can +redistribute it and/or modify it under the terms of the GNU Lesser General +Public License as published by the Free Software Foundation; either version +3 of the License (LGPL 3), 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 http://www.gnu.org/licenses/ for details. +For other licenses and consulting, please contact the author.") + +;; Note: Changes to above info must be reflected in "scribble-emacs.scrbl" +;; and "info.rkt". + +;;-------------------------------------------------------------------- Requires + +(require 'eldoc) + +;;---------------------------------------------------------------------- Custom + +(defgroup scribble + nil + "Racket Scribble Emacs Mode" + :group 'wp + :prefix "scribble-") + +(defface scribble-comment-face + '((t :foreground "cyan")) + "Face for Comments in Scribble mode." + :group 'scribble) + +(defface scribble-at-keyword-face + '((t :weight bold :foreground "gray50")) + "Face for `@'-and-name in Scribble mode." + :group 'scribble) + +(defface scribble-square-bracket-face + '((t :weight bold :foreground "#c48080")) + "Face for square brackets in Scribble mode." + :group 'scribble) + +(defface scribble-curly-brace-face + '((t :weight bold :foreground "#c48080")) + "Face for curly braces in Scribble mode." + :group 'scribble) + +(defface scribble-title-face + '((t :family "DejaVu Serif" :height 2.0736 :slant italic)) + "Face for titles in Scribble mode." + :group 'scribble) + +(defface scribble-section-heading-face + '((t :family "DejaVu Serif" :height 2.0736 :weight bold)) + "Face for section headings in Scribble mode." + :group 'scribble) + +(defface scribble-subsection-heading-face + '((t :family "DejaVu Serif" :height 1.728 :weight bold)) + "Face for subsection headings in Scribble mode." + :group 'scribble) + +(defface scribble-subsubsection-heading-face + '((t :family "DejaVu Serif" :height 1.44 :weight bold)) + "Face for subsubsection headings in Scribble mode." + :group 'scribble) + +(defface scribble-sub*section-heading-face + '((t :family "DejaVu Serif" :height 1.2 :weight bold)) + "Face for deep-subsection headings in Scribble mode." + :group 'scribble) + +(defface scribble-bold-face + '((t :weight bold)) + "Face for @bold in Scribble mode." + :group 'scribble) + +(defface scribble-emph-face + '((t :slant italic)) + "Face for @emph in Scribble mode." + :group 'scribble) + +(defface scribble-tt-face + '((t :family "DejaVu Sans Mono")) + "Face for @tt in Scribble mode." + :group 'scribble) + +(defface scribble-link-text-face + '((t :underline t :foreground "blue")) + "Face for link text in Scribble mode." + :group 'scribble) + +(defface scribble-planet-face + '((t)) + "Face for @PLaneT in Scribble mode." + :group 'scribble) + +(defface scribble-racket-result-face + '((t :foreground "blue3")) + "Face for Racket results in Scribble mode." + :group 'scribble) + +(defface scribble-racket-value-face + '((t :foreground "green2")) + "Face for Racket values in Scribble mode." + :group 'scribble) + +(defface scribble-bnf-nonterm-face + '((t :slant italic)) + "Face for @nonterm in Scribble mode." + :group 'scribble) + +(defface scribble-racket-litchar-face + '((t :foreground "#aaaa00" + :background "#f4f4f4" + :slant normal + :weight normal)) + "Face for @litchar in Scribble mode." + :group 'scribble) + +;; Quickref Faces: + +;; (defface scribble-quickref-default-face +;; '((t :family "DejaVu Sans" +;; :foreground "#000000" +;; :background "#e8e8ff" +;; :weight normal +;; :slant normal)) +;; "Face for Quickref in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-meta-face +;; '((t :inherit scribble-quickref-default-face +;; :foreground "#000000")) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-literal-face +;; '((t :family "DejaVu Sans Mono" +;; :inherit scribble-quickref-default-face +;; :foreground "red4" +;; :weight bold)) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-value-face +;; '((t :family "DejaVu Sans Mono" +;; :inherit scribble-quickref-default-face +;; :foreground "green4")) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-at-face +;; '((t :inherit scribble-quickref-literal-face)) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-keyword-face +;; '((t :family "DejaVu Sans" +;; :inherit scribble-quickref-literal-face)) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-form-name-face +;; '((t :inherit scribble-quickref-default-face +;; :foreground "blue4" +;; :weight bold)) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-type-face +;; '((t :inherit scribble-quickref-default-face +;; :foreground "blue")) ;!!! +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; (defface scribble-quickref-arg-face +;; '((t :inherit scribble-quickref-default-face +;; :slant italic +;; :foreground "blue2")) +;; "Face for Quickref !!! in Scribble mode." +;; :group 'scribble) + +;; ElDoc Faces: + +(defface scribble-eldoc-default-face + '((t :family "DejaVu Sans" + :foreground "#000000" + :background "#fffff0" + :weight normal + :slant normal)) + "Face for ElDoc in Scribble mode." + :group 'scribble) + +(defface scribble-eldoc-literal-face + '((t :inherit scribble-eldoc-default-face)) + "Face for ElDoc literals in Scribble mode." + :group 'scribble) + +(defface scribble-eldoc-meta-face + '((t :inherit scribble-eldoc-default-face + :foreground "#4040ff")) + "Face for ElDoc metasyntactic symbols in Scribble mode." + :group 'scribble) + +(defface scribble-eldoc-nonterminal-face + '((t :inherit scribble-eldoc-default-face + :slant italic)) + "Face for ElDoc nonterminals in Scribble mode." + :group 'scribble) + +;;---------------------------------------------------- Customization Procedures + +(defun scribble-customize () + (interactive) + (customize-group 'scribble)) + +;; TODO: Implement making any non-face changes take effect. + +;;-------------------------------------------------------------- Scribble Forms + +(defsubst scribble-get-form-name (form) (aref form 0)) +(defsubst scribble-get-form-args (form) (aref form 1)) +(defsubst scribble-get-form-type (form) (aref form 2)) +(defsubst scribble-get-form-face (form) (aref form 3)) + +;; TODO: Maybe make types be strings. + +(defsubst scribble-get-formarg-kind (arg) (aref arg 0)) +(defsubst scribble-get-formarg-name (arg) (aref arg 1)) +(defsubst scribble-get-formarg-type (arg) (aref arg 2)) +(defsubst scribble-get-formarg-default (arg) (aref arg 3)) + +;; Note: The information is from Racket 5.0.2 Scribble documentation. + +(defconst scribble-style-form-type + '(or/c style? f string? symbol? (listof symbol?))) + +(defconst scribble-optional-style-form-arg + `[k style ,scribble-style-form-type "#f"]) + +(defconst scribble-optional-underline?-form-arg + `[k underline? any/c "#t"]) + +(defconst scribble-optional-tag-form-arg + `[k tag (or/c false/c string? (listof string?)) "#f"]) + +(defconst scribble-heading-form-args + `(,scribble-optional-tag-form-arg + [k tag-prefix (or/c false/c string? module-path?) "#f"] + ,scribble-optional-style-form-arg)) + +;; TODO: Support more than just "scribble/base". + +(defconst scribble-base-forms + `( + ;; scribble/base + ;; file:///usr/local/racket-5.0.2/share/racket/doc/scribble/base.html + + [title (,@scribble-heading-form-args + [k version (or/c string? false/c) "#f"] + [p - pre-content? -] + ...) + title-decl? + scribble-title-face] + [section (,@scribble-heading-form-args + [p - pre-content? -] + ...) + part-start? + scribble-section-heading-face] + [subsection (,@scribble-heading-form-args + [p - pre-content? -] + ...) + part-start? + scribble-subsection-heading-face] + [subsubsection (,@scribble-heading-form-args + [p - pre-content? -] + ...) + part-start? + scribble-subsubsection-heading-face] + [sub*section (,@scribble-heading-form-args + [p - pre-content? -] + ...) + part-start? + scribble-sub*section-heading-face] + [author ([p - content? -]) + block? + nil] + [author+email ([p author elem -] + [p email string? -] + [k obfuscate? any/c "#f"]) + element? + nil] + [para (,scribble-optional-style-form-arg + [p - pre-content? -] + ...) + paragraph? + nil] + [nested (,scribble-optional-style-form-arg + [p - pre-flow? -] + ...) + nested-flow? + nil] + [centered ([p - pre-flow? -] + ...) + nested-flow? + nil] + [margin-note ([p - pre-flow? -] + ...) + block? + nil] + [margin-note* ([p - pre-content? -] + ...) + element? + nil] + [itemlist ([p - item? -] + ... + ,scribble-optional-style-form-arg) + itemization? + nil] + [item ([p - pre-flow? -] + ...) + item? + nil] + [tabular ([p cells (listof (listof (or/c block? content? 'cont))) -] + ,scribble-optional-style-form-arg) + table? + nil] + [verbatim ([p indent exact-nonnegative-integer? "0"] + [p - string? -] + ...) + block? + nil] + [elem ([p - pre-content? -] + ... + ,scribble-optional-style-form-arg) + element? + nil] + [italic ([p - pre-content? -] + ...) + element? + nil] + [bold ([p - pre-content? -] + ...) + element? + scribble-bold-face] + [code ([p - pre-content? -] + ...) + element? + nil] + [codeblock ([p - pre-content? -] + ...) + element? + nil] + [tt ([p - pre-content? -] + ...) + element? + scribble-tt-face] + [subscript ([p - pre-content? -] + ...) + element? + nil] + [superscript ([p - pre-content? -] + ...) + element? + nil] + [smaller ([p - pre-content? -] + ...) + element? + nil] + [larger ([p - pre-content? -] + ...) + element? + nil] + [emph ([p - pre-content? -] + ...) + element? + scribble-emph-face] + [linebreak () + element? + nil] + [hspace ([p - exact-nonnegative-integer? -]) + element? + nil] + [literal ([p - string? -] + ...) + element? + nil] + [image + ([p path (or/c path-string? (cons/c 'collects (listof bytes?))) -] + [k scale real? "1.0"] + [k suffixes (listof (rx "^[.]")) "null"] + [p - pre-content? -] + ...) + element? + nil] + [hyperlink ([p url string? -] + [p - pre-content? -] + ... + ,scribble-optional-underline?-form-arg + [k style + (or/c style? string? symbol? false/c) + "(if underline? #f \"plainlink\")"]) + element? + scribble-link-text-face] + [url ([p dest string? -]) + element? + nil] + [secref ([p tag string -] + [k doc (or/c module-path? false/c) "#f"] + [k tag-prefixes (or/c (listof string?) false/c) "#f"] + ,scribble-optional-underline?-form-arg) + element? + scribble-link-text-face] + [seclink ([p tag string? -] + [k doc (or/c module-path? false/c) "#f"] + [k tag-prefixes (or/c (listof string?) false/c) "#f"] + ,scribble-optional-underline?-form-arg + [p - pre-content? -] + ...) + element? + scribble-link-text-face] + [other-doc ([p module-path module-path? -] + ,scribble-optional-underline?-form-arg) + element? + nil] + [elemtag ([p t (or/c tag? string?) -] + [p - pre-content? -] + ...) + element? + nil] + [elemref ([p t (or/c tag? string?) -] + [p - pre-content? -] + ... + ,scribble-optional-underline?-form-arg) + element? + nil] + [index ([p words (or/c string? (listof string?)) -] + [p - pre-content? -] + ...) + index-element? + nil] + [index* ([p words (listof string?) -] + [p word-contents (listof list?) -] + [p - pre-content? -] + ...) + index-element? + nil] + [as-index ([p - pre-content? -] + ...) + index-element? + nil] + [section-index ([p word string? -] + ...) + part-index-decl? + nil] + [index-section ([k tag (or/c false/c string?) "\"doc-index\""] + ,scribble-optional-tag-form-arg) + part? + nil] + [table-of-contents () + delayed-block? + nil] + [local-table-of-contents (,scribble-optional-style-form-arg) + delayed-block? + nil])) + +(defconst scribble-manual-forms + `( + + [racketblock ([p - datum? -] ...) any/c nil] + [RACKETBLOCK ([p - datum? -] ...) any/c nil] + [racketblock0 ([p - datum? -] ...) any/c nil] + [RACKETBLOCK0 ([p - datum? -] ...) any/c nil] + + [racketresultblock ([p - datum? -] ...) any/c nil] + [RACKETRESULTBLOCK ([p - datum? -] ...) any/c nil] + [racketresultblock0 ([p - datum? -] ...) any/c nil] + [RACKETRESULTBLOCK0 ([p - datum? -] ...) any/c nil] + + [racketinput ([p - datum? -] ...) any/c nil] + [RACKETINPUT ([p - datum? -] ...) any/c nil] + + [racketmod ([k file string? "#f"] + [p - datum? -] + ...) + any/c + nil] + + [racket ([p - datum? -] ...) any/c nil] + [RACKET ([p - datum? -] ...) any/c nil] + + ;; TODO: For "racketresult" and "racketid", maybe override body faces. + [racketresult ([p - datum? -] ...) any/c scribble-racket-result-face] + [racketid ([p - datum? -] ...) any/c nil] + + [racketmodlink ([p - datum? -] + [p - pre-content-expr? -] + ...) + any/c + nil] + + [litchar ([p - string? -] ...) element? scribble-racket-litchar-face] + + [racketfont ([p - pre-content? -] ...) element? nil] + [racketvalfont ([p - pre-content? -] ...) element? scribble-racket-value-face] + [racketresultfont ([p - pre-content? -] ...) element? scribble-racket-result-face] + [racketidfont ([p - pre-content? -] ...) element? nil] + [racketvarfont ([p - pre-content? -] ...) element? nil] + [racketkeywordfont ([p - pre-content? -] ...) element? nil] + [racketparenfont ([p - pre-content? -] ...) element? nil] + [racketmetafont ([p - pre-content? -] ...) element? nil] + [racketerror ([p - pre-content? -] ...) element? nil] + [racketmodfont ([p - pre-content? -] ...) element? nil] + [racketoutputfont ([p - pre-content? -] ...) element? nil] + ;; TODO: Define faces for some of the above? + + ;; TODO: We could use overlays to make "@procedure" content have + ;; "#". + [procedure ([p - pre-content? -] ...) element? nil] + + [var ([p - datum? -] ...) element? nil] + [svar ([p - datum? -] ...) element? nil] + + ;; TODO: Possibly add support for all the "scheme" backword-compatibility + ;; identifiers. + + ;; TODO: !!! CONTINUE ADDING AFTER + ;; file:///usr/local/racket-5.0.2/share/racket/doc/scribble/scribble_manual_code.html + + )) + +(defconst scribble-bnf-forms + `([BNF ([p - (cons element? (listof element?)) -] ...) table? nil] + + [nonterm ([p - pre-content? -] ...) element? scribble-bnf-nonterm-face] + [BNF-seq ([p - element? -] ...) element? nil] + [BNF-group ([p - pre-content? -] ...) element? nil] + + [optional ([p - pre-content? -] ...) element? nil] + [kleenestar ([p - pre-content? -] ...) element? nil] + [kleeneplus ([p - pre-content? -] ...) element? nil] + + [kleenerange ([p n any/c -] + [p m any/c -] + [p - pre-content? -] + ...) + element? + nil] + + [BNF-alt ([p - element? -] ...) element? nil] + [BNF-etc ([p - string? -]) void scribble-comment-face])) + +(defconst scribble-forms + `(,@scribble-base-forms + ,@scribble-manual-forms + ,@scribble-bnf-forms)) + +(defconst scribble-name-string-to-form-hash + (let ((ht (make-hash-table :test 'equal))) + (mapc (lambda (form) + (puthash (symbol-name (scribble-get-form-name form)) form ht)) + scribble-forms) + ht)) + +(defun scribble-minus-to-nil (x) + (if (eq x '-) nil x)) + +(defun scribble-form-type-to-racket (type) + ;; TODO: translate true, false, rx, quote. Or convert types to strings. + (format "%s" type)) + +;;---------------------------------------------------------------- Syntax Table + +(defvar scribble-mode-syntax-table + (let ((st (make-syntax-table))) + + (modify-syntax-entry ? " " st) + (modify-syntax-entry ?\t " " st) + (modify-syntax-entry ?\f " " st) + (modify-syntax-entry ?\n ">" st) + + (modify-syntax-entry ?\" "." st) + + (modify-syntax-entry ?\@ "_ 1" st) + (modify-syntax-entry ?\# "_ 1" st) + (modify-syntax-entry ?\: "_ 1" st) + (modify-syntax-entry ?\; ". 2" st) + + (modify-syntax-entry ?\( "()" st) + (modify-syntax-entry ?\) ")(" st) + (modify-syntax-entry ?\[ "(]" st) + (modify-syntax-entry ?\] ")[" st) + (modify-syntax-entry ?\{ "(}" st) + (modify-syntax-entry ?\} "){" st) + + st)) + +;;------------------------------------------------------------- Forms Reference + +;; (defun scribble-forms-reference () +;; (interactive) +;; (scribble-buffer-display +;; "*Scribble Forms Reference*" +;; (function +;; (lambda () +;; (mapc (lambda (form) +;; (insert (scribble-form-quickref-text form) "\n\n")) +;; scribble-forms))))) + +;;------------------------------------------------------------------- Mode Menu + +(defvar scribble-mode-menu + (let ((km (make-sparse-keymap "Scribble"))) + + (define-key km [scribble-about] + '(menu-item "About Scribble Emacs Mode..." scribble-about + :help "See information about Scribble Emacs mode")) + + (define-key km [scribble-browse-mode-web] + '(menu-item "Browse Scribble Emacs Mode Web..." scribble-browse-mode-web + :help "Browse Web pages for Scribble Emacs mode")) + + ;; TODO: Browse/search scribble docs. + + (define-key km [scribble-separator-2] + `(menu-item "--")) + + ;; TODO: Experiment with this. Use local variable "scribble-modules" to + ;; specify in files, and update it programmatically from this interface. + ;; Can also have operation that scans "#lang" and "@(require" to determine + ;; or update this variable. Unfortunately can't use "-*-" line because + ;; Emacs currently (GNU 23.2) doesn't support it occuring after the "#lang" + ;; line. + (define-key km [scribble-forms-bnf] + '(menu-item "scribble/bnf" nil + :enable nil + :button (:toggle . t) + :help "!!!")) + (define-key km [scribble-forms-manual] + '(menu-item "scribble/manual" nil + :enable nil + :button (:toggle . nil) + :help "!!!")) + (define-key km [scribble-forms-base] + '(menu-item "scribble/base" nil + :enable nil + :button (:toggle . t) + :help "!!!")) + + ;; (define-key km [scribble-forms-reference] + ;; '(menu-item "Forms Reference..." scribble-forms-reference + ;; :help "Show a reference of Scribble forms")) + + (define-key km [scribble-separator-1] + `(menu-item "--")) + + (define-key km [scribble-customize] + '(menu-item "Customize..." scribble-customize + :help "Set Emacs customization options for Scribble")) + ;; TODO: Perhaps wrapping "completion-at-point" with another procedure + ;; that does "call-interactively" will work. + ;; + ;; (define-key km [scribble-completion-at-point] + ;; `(menu-item "Completion at Point" 'completion-at-point)) + + km)) + +;;---------------------------------------------------------------------- Keymap + +(defvar scribble-mode-map + (let ((km (make-sparse-keymap))) + (define-key km (kbd "M-TAB") 'completion-at-point) + (define-key km [menu-bar Scribble] (cons "Scribble" scribble-mode-menu)) + km)) + +;;------------------------------------------------------------------- Font-Lock + +;; TODO: Should probably switch to using something other than font-lock, like +;; handwritten fuzzy parser. + +(defvar scribble-font-lock-keywords + `( + ,@(mapcar (lambda (face-to-namerxs-pair) + (let ((face (car face-to-namerxs-pair))) + `(,(concat "\\(" ; < 1 at-name + "@" + (let ((names (cdr face-to-namerxs-pair))) + (if (cdr names) + (regexp-opt names) + (car names))) + "\\)" ; > 1 at-name + "\\b" + "\\(?:" ; < opt-squares + "\\(\\[\\)" ; = 2 open-square + "[^]]*" ; + "\\(\\]\\)" ; = 3 close-square + "\\)?" ; > opt-squares + "\\(?:" ; < opt-curlies + "\\({\\)" ; ; = 4 open-curly + (if face "\\(" "") + "[^}]*" ; + (if face "\\)" "") + "\\(}\\)" ; = 5,6 close-curly + "\\)?" ; > opt-curlies + ) + (1 'scribble-at-keyword-face) + (2 'scribble-square-bracket-face nil t) + (3 'scribble-square-bracket-face nil t) + (4 'scribble-curly-brace-face nil t) + ,@(if face + `((5 (quote ,face) nil t)) + '()) + (,(if face 6 5) 'scribble-curly-brace-face nil t)))) + (let ((face-to-namerxs-alist '())) + (mapc (lambda (form) + (let* ((namerx (regexp-quote + (symbol-name (scribble-get-form-name + form)))) + (face (scribble-get-form-face form)) + (pair (assq face face-to-namerxs-alist))) + (if pair + (setcdr pair (cons namerx (cdr pair))) + (setq face-to-namerxs-alist + `((,face . (,namerx)) + ,@face-to-namerxs-alist))))) + scribble-forms) + face-to-namerxs-alist)) + + ("\\(@\\)\\(PLaneT\\)" + (1 'scribble-at-keyword-face) + (2 'scribble-planet-face)) + + ;; TODO: Is this right? + ;; + ;; ("\\(@\\)@" + ;; (1 'scribble-at-keyword-face)) + + ("\\(@#reader\\)[ ]+\\([^\r\n]+\\)" + (1 'scribble-at-keyword-face) + (2 'scribble-at-keyword-face)) + + ("\\`\\(#lang\\)[ ]+\\([^\r\n]+\\)" + (1 'scribble-at-keyword-face) + (2 'scribble-at-keyword-face)))) + +(defvar scribble-font-lock-defaults + `(scribble-font-lock-keywords nil)) + +;;----------------------------------------------------------------------- Imenu + +(defvar scribble-imenu-generic-expression + '((nil + "@\\(?:sub\\(?:sub\\)?\\)?section\\(?:\\[[^]]*\\]\\)?{\\([^}]*\\)" + 1))) + +;; TODO: Use one of the lower-level ways of doing this. + +;;------------------------------------------------------------------ Characters + +(defconst scribble-right-arrow-char 8594) + +;;-------------------------------------------------------------------- Quickref + +;; TODO: !!! this needs work since eldoc was forked out of this. +;; +;; (defun scribble-form-type-to-quickref (type) +;; (propertize (scribble-form-type-to-racket type) +;; 'face 'scribble-quickref-type-face)) +;; +;; (defconst scribble-quickref-dotdotdot +;; (propertize "..." 'face 'scribble-quickref-meta-face)) +;; +;; (defconst scribble-quickref-space +;; (propertize " " 'face 'scribble-quickref-default-face)) +;; +;; (defconst scribble-quickref-open-paren +;; (propertize "(" 'face 'scribble-quickref-literal-face)) +;; +;; (defconst scribble-quickref-close-paren +;; (propertize ")" 'face 'scribble-quickref-literal-face)) +;; +;; (defconst scribble-quickref-open-optional +;; (propertize "[" 'face 'scribble-quickref-meta-face)) +;; +;; (defconst scribble-quickref-close-optional +;; (propertize "]" 'face 'scribble-quickref-meta-face)) +;; +;; (defconst scribble-quickref-space-colon-space +;; (concat scribble-quickref-space +;; (propertize ":" 'face 'scribble-quickref-meta-face) +;; scribble-quickref-space)) +;; +;; (defconst scribble-quickref-space-equal-space +;; (concat scribble-quickref-space +;; (propertize "=" 'face 'scribble-quickref-meta-face) +;; scribble-quickref-space)) +;; +;; (defun scribble-form-arg-to-quickref (arg) +;; (if (eq arg '...) +;; scribble-quickref-dotdotdot +;; (let* ((fmt '()) +;; (kind (scribble-get-formarg-kind arg)) +;; (name (scribble-minus-to-nil +;; (scribble-get-formarg-name arg))) +;; (type (scribble-get-formarg-type arg)) +;; (default (scribble-minus-to-nil +;; (scribble-get-formarg-default arg))) +;; (name-str (if name (symbol-name name) nil)) +;; (type-str (scribble-form-type-to-racket type)) +;; (type-ps (propertize type-str +;; 'face 'scribble-quickref-type-face))) +;; (cond ((eq kind 'p) +;; (setq fmt +;; (if name-str +;; `(,type-ps +;; ,scribble-quickref-space-colon-space +;; ,(propertize name-str +;; 'face +;; 'scribble-quickref-arg-face)) +;; `(,type-ps)))) +;; ((eq kind 'k) +;; (or name-str +;; (error "formarg kind k must have name in %s" arg)) +;; (setq fmt +;; `(,type-ps +;; ,scribble-quickref-space-colon-space +;; ,(propertize (concat "#:" name-str) +;; 'face 'scribble-quickref-keyword-face)))) +;; (t (error "invalid formarg kind in %s" arg))) +;; (apply 'concat +;; (if default +;; (reverse +;; `(,(propertize default 'face 'scribble-quickref-value-face) +;; ,scribble-quickref-space-equal-space +;; ,@fmt)) +;; (reverse fmt)))))) +;; +;; (defun scribble-form-quickref-text (form) +;; ;; TODO: !!! working on this +;; (let* ((at (propertize "@" 'face 'scribble-quickref-at-face)) +;; (space-arrow-space +;; (concat scribble-quickref-space +;; (propertize (string scribble-right-arrow-char) +;; 'face +;; 'scribble-quickref-meta-face) +;; scribble-quickref-space))) +;; (apply +;; 'concat +;; `(,at +;; ,(propertize (symbol-name (scribble-get-form-name form)) +;; 'face 'scribble-quickref-form-name-face) +;; ,@(let ((args (scribble-get-form-args form))) +;; (if args +;; (let ((fmt '())) +;; (mapc (lambda (arg) +;; (setq fmt `(,(scribble-form-arg-to-quickref arg) +;; ,scribble-quickref-space +;; ,@fmt))) +;; args) +;; (reverse fmt)) +;; '())) +;; ,closeparen-space-arrow-space +;; ,(scribble-form-type-to-quickref (scribble-get-form-type form)))))) + +;;------------------------------------------------------------------------ ElDoc + +(defconst scribble-eldoc-dotdotdot + (propertize "..." 'face 'scribble-eldoc-meta-face)) + +(defconst scribble-eldoc-space + (propertize " " 'face 'scribble-eldoc-default-face)) + +(defconst scribble-eldoc-open-paren + (propertize "(" 'face 'scribble-eldoc-literal-face)) + +(defconst scribble-eldoc-close-paren + (propertize ")" 'face 'scribble-eldoc-literal-face)) + +(defconst scribble-eldoc-open-optional + (propertize "[" 'face 'scribble-eldoc-meta-face)) + +(defconst scribble-eldoc-close-optional + (propertize "]" 'face 'scribble-eldoc-meta-face)) + +(defconst scribble-eldoc-closeparen-space-arrow-space + (concat scribble-eldoc-close-paren + scribble-eldoc-space + (propertize (string scribble-right-arrow-char) + 'face + 'scribble-eldoc-meta-face) + scribble-eldoc-space)) + +(defun scribble-form-arg-to-eldoc (arg) + (if (eq arg '...) + scribble-eldoc-dotdotdot + (let* ((kind (scribble-get-formarg-kind arg)) + (name (scribble-minus-to-nil (scribble-get-formarg-name arg))) + (name-str (if name (symbol-name name) nil)) + (id-ps + (cond ((eq kind 'p) + (propertize (or name-str + (scribble-form-type-to-racket + (scribble-get-formarg-type arg))) + 'face + 'scribble-eldoc-nonterminal-face)) + ((eq kind 'k) + (propertize + (concat "#:" + (or name-str + (error "formarg kind k must have name in %s" + arg))) + 'face 'scribble-eldoc-literal-face)) + (t (error "invalid formarg kind in %s" arg))))) + (if (eq '- (scribble-get-formarg-default arg)) + id-ps + (concat scribble-eldoc-open-optional + id-ps + scribble-eldoc-close-optional))))) + +(defun scribble-make-form-eldoc-message (form) + (apply + 'concat + `(,scribble-eldoc-open-paren + ,(propertize (symbol-name (scribble-get-form-name form)) + 'face 'scribble-eldoc-literal-face) + ,@(let ((args (scribble-get-form-args form))) + (if args + (let ((fmt '())) + (mapc (lambda (arg) + (setq fmt `(,(scribble-form-arg-to-eldoc arg) + ,scribble-eldoc-space + ,@fmt))) + args) + (reverse fmt)) + '())) + ,scribble-eldoc-closeparen-space-arrow-space + ,(propertize (scribble-form-type-to-racket (scribble-get-form-type form)) + 'face + 'scribble-eldoc-nonterminal-face)))) + +(defconst scribble-name-to-eldoc-message-hash + (let ((ht (make-hash-table :test 'equal))) + (mapc (lambda (form) + (puthash (symbol-name (scribble-get-form-name form)) + (scribble-make-form-eldoc-message form) + ht)) + scribble-forms) + ht)) + +(defun scribble-get-form-eldoc-message (form) + (scribble-make-form-eldoc-message form)) + +(defun scribble-eldoc-documentation-function () + ;; TODO: Implement this properly, figuring out which form we're in. Might + ;; wait until we implement better fontification, using the same parsing + ;; mechanism. + ;; + ;; TODO: !!! Maybe look for "@"-name under point, and if that fails, then + ;; up-sexp, and then look for an @-name to left of point (or left-sexp if + ;; there is a square-bracket to left of point. + (let ((word (let ((c (char-after (point)))) + (and c + (memq (char-syntax c) '(?w ?_)) + (current-word))))) + (and (> (length word) 0) + (equal ?@ (aref word 0)) + (gethash (substring word 1) + scribble-name-to-eldoc-message-hash + nil)))) + +;;------------------------------------------------------------------ Completion + +(defun scribble-build-completion-table () + (sort (let ((kw-seen-hash (make-hash-table :test 'eq)) + (result '("Felleisen"))) + (mapc (lambda (form) + (setq result (cons (symbol-name (scribble-get-form-name form)) + result)) + (mapc (lambda (arg) + (and (vectorp arg) + (eq 'k (scribble-get-formarg-kind arg)) + (let ((sym (scribble-get-formarg-name arg))) + (or (gethash sym kw-seen-hash) + (progn (puthash sym t kw-seen-hash) + (setq result + (cons (concat + "#:" + (symbol-name sym)) + result))))))) + (scribble-get-form-args form))) + scribble-forms) + result) + 'string<)) + +(defconst scribble-completion-table (scribble-build-completion-table)) + +(defconst scribble-completion-at-point-tail + (list scribble-completion-table + ;; :annotation-function 'scribble-completion-annotate-function + )) + +(defun scribble-completion-at-point-function () + (let* ((end (point)) + (start (let ((c (char-before end))) + (if (and c (memq (char-syntax c) '(?w ?_))) + (save-excursion + (backward-sexp 1) + (and (eq ?\@ (char-after (point))) + (forward-char 1)) + (point)) + end)))) + `(,start ,end ,@scribble-completion-at-point-tail))) + +;;-------------------------------------------------------------- Buffer Display + +(defun scribble-buffer-display (name proc) + (save-excursion + (set-buffer (get-buffer-create name)) + (toggle-read-only 0) + (buffer-disable-undo) + (goto-char (point-min)) + (delete-region (point-min) (point-max)) + (funcall proc) + (buffer-enable-undo) + (set-buffer-modified-p nil) + (toggle-read-only 1) + (goto-char (point-min)) + ;; TODO: Maybe make "q" restore window config. + (local-set-key "q" 'scribble-quit-buffer-display) + (pop-to-buffer (current-buffer)) + (message "Press \"q\" to quit the \"%s\" buffer." name))) + +(defun scribble-quit-buffer-display () + (interactive) + (let ((buf (current-buffer))) + (condition-case nil + (delete-window) + (error nil)) + (kill-buffer buf))) + +;;---------------------------------------------------------------- Web Browsing + +(defun scribble-browse-mode-web () + (interactive) + (browse-url scribble-mode-web)) + +;; TODO: Add browsing to Scribble documentation. First try to find URLs to +;; their existing documentation (based "~/.racket" and on dir of "racket" +;; command). Fall back to public Web version. + +;;----------------------------------------------------------------------- About + +(defun scribble-about () + (interactive) + (scribble-buffer-display + "*About Scribble Mode*" + (function + (lambda () + (insert (propertize scribble-mode-title 'face 'bold) + "\n\n" + "Version " + (propertize scribble-mode-version 'face 'bold) + "\n\n" + (propertize scribble-mode-web 'face 'bold) + "\n\n" + scribble-mode-legal-notices + "\n"))))) + +;;--------------------------------------------------------------- Mode Function + +;;;###autoload +(defun scribble-mode () + "!!! `\[COMMAND]', `\{KEYMAP}', and `\'" + (interactive) + + (kill-all-local-variables) + + (use-local-map scribble-mode-map) + + (set-syntax-table scribble-mode-syntax-table) + + (setq fill-column 79) + + ;; Comments: + (set (make-local-variable 'comment-start) "@;") + (set (make-local-variable 'comment-end) "") + (set (make-local-variable 'comment-padding) 1) + (set (make-local-variable 'comment-multi-line) nil) + (set (make-local-variable 'comment-start-skip) + "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *") + + ;; TODO: comment-indent-function + + ;; TODO: indent-line-function + + ;; TODO: abbrev + + ;; Font-Lock: + (set (make-local-variable 'font-lock-defaults) scribble-font-lock-defaults) + + ;; Imenu: + (set (make-local-variable 'imenu-generic-expression) + scribble-imenu-generic-expression) + (set (make-local-variable 'imenu-case-fold-search) nil) + (imenu-add-to-menubar "Imenu") + + ;; ElDoc: + (set (make-local-variable 'eldoc-documentation-function) + 'scribble-eldoc-documentation-function) + (turn-on-eldoc-mode) + + ;; Completion: + (set (make-local-variable 'completion-at-point-functions) + (list 'scribble-completion-at-point-function)) + + ;; Mode Identification: + (setq mode-name "Scribble") + (setq major-mode 'scribble-mode) + + ;; Hooks: + (run-mode-hooks 'scribble-mode-hook)) + +;;------------------------------------------------------------------- Auto-Mode + +;;;###autoload +(mapc (lambda (pair) + (or (assoc (car pair) auto-mode-alist) + (push pair auto-mode-alist))) + '(("\\.scrbl\\'" . scribble-mode))) + +;;--------------------------------------------------------------------- Provide + +(provide 'scribble) + +;;; scribble.el ends here diff --git a/.emacs.d/snippets/latex-mode/.yas-compiled-snippets.el b/.emacs.d/snippets/latex-mode/.yas-compiled-snippets.el new file mode 100644 index 0000000..a25720d --- /dev/null +++ b/.emacs.d/snippets/latex-mode/.yas-compiled-snippets.el @@ -0,0 +1,8 @@ +;;; Compiled snippets and support files for `latex-mode' +;;; Snippet definitions: +;;; +(yas-define-snippets 'latex-mode + '(("begin" "\\begin{$1}\n\n $0\n\n\\end{$1}\n" "begin" nil nil nil nil nil nil))) + + +;;; Do not edit! File generated at Mon Jun 2 06:32:05 2014 diff --git a/.emacs.d/snippets/latex-mode/begin b/.emacs.d/snippets/latex-mode/begin new file mode 100644 index 0000000..55dc1bd --- /dev/null +++ b/.emacs.d/snippets/latex-mode/begin @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: begin +# key: begin +# -- +\begin{$1} + + $0 + +\end{$1} diff --git a/.emacs.d/snippets/markdown-mode/.yas-compiled-snippets.el b/.emacs.d/snippets/markdown-mode/.yas-compiled-snippets.el new file mode 100644 index 0000000..a3cf21b --- /dev/null +++ b/.emacs.d/snippets/markdown-mode/.yas-compiled-snippets.el @@ -0,0 +1,8 @@ +;;; Compiled snippets and support files for `markdown-mode' +;;; Snippet definitions: +;;; +(yas-define-snippets 'markdown-mode + '(("blog" "---\ntitle: ${1:title}\nauthor: `(insert-author)`\ndate: `(insert-date)`\ndescription: ${2:description}\nupdated: ${3:updated}\ntags: ${4:general}\n---\n\n$0" "blog" nil nil nil nil nil nil))) + + +;;; Do not edit! File generated at Mon Jun 2 06:32:05 2014 diff --git a/.emacs.d/snippets/markdown-mode/blog b/.emacs.d/snippets/markdown-mode/blog new file mode 100644 index 0000000..8276806 --- /dev/null +++ b/.emacs.d/snippets/markdown-mode/blog @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: blog +# key: blog +# -- +--- +title: ${1:title} +author: `(insert-author)` +date: `(insert-date)` +description: ${2:description} +updated: ${3:updated} +tags: ${4:general} +--- + +$0 \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/and b/.emacs.d/snippets/scheme-mode/and new file mode 100755 index 0000000..63e9df9 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/and @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: and +# key: and +# key: a +# -- +(and $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/append b/.emacs.d/snippets/scheme-mode/append new file mode 100755 index 0000000..2256218 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/append @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: append +# key: append +# -- +(append $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/apply b/.emacs.d/snippets/scheme-mode/apply new file mode 100755 index 0000000..c066886 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/apply @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: apply +# key: apply +# -- +(apply $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/car b/.emacs.d/snippets/scheme-mode/car new file mode 100755 index 0000000..3e68c3a --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/car @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: car +# key: car +# -- +(car $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/cdr b/.emacs.d/snippets/scheme-mode/cdr new file mode 100755 index 0000000..9f65f4f --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/cdr @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: cdr +# key: cdr +# -- +(cdr $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/class b/.emacs.d/snippets/scheme-mode/class new file mode 100644 index 0000000..0c24a3e --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/class @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: class +# key: cls +# -- +(class ${1:object%} + (super-new$2) + (init$3) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/cond b/.emacs.d/snippets/scheme-mode/cond new file mode 100644 index 0000000..a23dd86 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/cond @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: cond +# key: cond +# -- +(cond [${1:expr} ${2:body}] + [$0]) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/cons b/.emacs.d/snippets/scheme-mode/cons new file mode 100755 index 0000000..216490a --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/cons @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: cons +# key: cons +# -- +(cons $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define b/.emacs.d/snippets/scheme-mode/define new file mode 100644 index 0000000..38fbf8a --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (define (head args) body ...+) +# key: def +# -- +(define (${1:fun} ${2:args}) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define-match b/.emacs.d/snippets/scheme-mode/define-match new file mode 100644 index 0000000..aafa133 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define-match @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: define/match +# key: defm +# -- +(define/match (${1:fun} ${2:args}) + [(${3:pat})${4: #:when ${5:expr}} ${6:body}]$0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define-public b/.emacs.d/snippets/scheme-mode/define-public new file mode 100644 index 0000000..743c247 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define-public @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: define/public +# key: defp +# -- +(define/public (${1:fun} ${2:args}) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define-syntax b/.emacs.d/snippets/scheme-mode/define-syntax new file mode 100644 index 0000000..b8276b8 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define-syntax @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (define-syntax id expr) +# key: defs +# -- +(define-syntax ${1:id} + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define-syntax-rule b/.emacs.d/snippets/scheme-mode/define-syntax-rule new file mode 100644 index 0000000..7101634 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define-syntax-rule @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: define-syntax-rule +# key: defsr +# -- +(define-syntax-rule (${1:id} ${2:pat}) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/define-syntax.1 b/.emacs.d/snippets/scheme-mode/define-syntax.1 new file mode 100644 index 0000000..c89ee61 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define-syntax.1 @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (define-syntax (head args) body ...+) +# key: defs +# -- +(define-syntax (${1:id} ${2:stx}) + $0) diff --git a/.emacs.d/snippets/scheme-mode/define.1 b/.emacs.d/snippets/scheme-mode/define.1 new file mode 100644 index 0000000..04cfb47 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/define.1 @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (define id expr) +# key: def +# -- +(define ${1:var} $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/lambda b/.emacs.d/snippets/scheme-mode/lambda new file mode 100755 index 0000000..5ebb939 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/lambda @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (lambda (args ...) body ...+) +# key: lambda +# -- +(lambda (${1:args}) $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/lambda.1 b/.emacs.d/snippets/scheme-mode/lambda.1 new file mode 100644 index 0000000..c7da781 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/lambda.1 @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (lambda rest-id body ...+) +# key: lambda +# -- +(lambda ${1:rest-id} $0) diff --git a/.emacs.d/snippets/scheme-mode/lambda.2 b/.emacs.d/snippets/scheme-mode/lambda.2 new file mode 100644 index 0000000..65e1a49 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/lambda.2 @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (lambda (args ...+ . rest-id) body ...+) +# key: lambda +# -- +(lambda (${1:args} . ${2:rst}) $0) diff --git a/.emacs.d/snippets/scheme-mode/length b/.emacs.d/snippets/scheme-mode/length new file mode 100755 index 0000000..da00ace --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/length @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: length +# key: length +# -- +(length $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/let b/.emacs.d/snippets/scheme-mode/let new file mode 100755 index 0000000..51bfb1e --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/let @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (let ([id val-expr] ...) body ...+) +# key: let +# -- +(let ([$1]$2) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/let* b/.emacs.d/snippets/scheme-mode/let* new file mode 100644 index 0000000..5596f15 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/let* @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (let* ([id val-expr] ...) body ...+) +# key: let* +# -- +(let* ([$1]$2) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/let.1 b/.emacs.d/snippets/scheme-mode/let.1 new file mode 100644 index 0000000..d9d8e24 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/let.1 @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (let proc-id ([id init-expr] ...) body ...+) +# key: let +# -- +(let ${1:proc-id} ([$2]$3) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/letrec b/.emacs.d/snippets/scheme-mode/letrec new file mode 100644 index 0000000..e71f3b1 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/letrec @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: (letrec ([id val-expr] ...) body ...+) +# key: letr +# -- +(letrec ([$1]$2) + $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/list b/.emacs.d/snippets/scheme-mode/list new file mode 100755 index 0000000..11be961 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/list @@ -0,0 +1,5 @@ +#contributor: Xah Lee (XahLee.org) +#name: list +#key: list +# -- +(list $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/match b/.emacs.d/snippets/scheme-mode/match new file mode 100644 index 0000000..916d440 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/match @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: match +# key: mat +# -- +(match ${1:val} + [${2:pat}${3: #:when ${4:expr}} ${5:body}]$0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/match* b/.emacs.d/snippets/scheme-mode/match* new file mode 100644 index 0000000..ae31960 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/match* @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Collin J. Doering +# name: match* +# key: mat* +# -- +(match* (${1:vals}) + [${2:pat}${3: #:when ${4:expr}} ${5:body}]$0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/or b/.emacs.d/snippets/scheme-mode/or new file mode 100755 index 0000000..506fcc9 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/or @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: or +# key: or +# key: o +# -- +(or $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/quote b/.emacs.d/snippets/scheme-mode/quote new file mode 100644 index 0000000..afa3b31 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/quote @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: quote +# key: quo +# -- +(quote $0) \ No newline at end of file diff --git a/.emacs.d/snippets/scheme-mode/repeat b/.emacs.d/snippets/scheme-mode/repeat new file mode 100755 index 0000000..8b71195 --- /dev/null +++ b/.emacs.d/snippets/scheme-mode/repeat @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# contributor: Xah Lee (XahLee.org) +# name: repeat +# key: repeat +# -- +(repeat $0) \ No newline at end of file diff --git a/.emacs.d/templates/c-template.c b/.emacs.d/templates/c-template.c index b544a40..c4eb9a3 100644 --- a/.emacs.d/templates/c-template.c +++ b/.emacs.d/templates/c-template.c @@ -1,5 +1,5 @@ /** - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ /** * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/clojure-template.clj b/.emacs.d/templates/clojure-template.clj index 1eb7deb..91d07e2 100644 --- a/.emacs.d/templates/clojure-template.clj +++ b/.emacs.d/templates/clojure-template.clj @@ -1,4 +1,4 @@ -;; (C) Copyright Collin Doering @!@YEAR@!@ +;; (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ ;; ;; 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 @@ -14,6 +14,6 @@ ;; along with this program. If not, see . ;; File: @!@FILE@!@ -;; Author: Collin J. Doering +;; Author: @!@AUTHOR@!@ <@!@EMAIL@!@ ;; Date: @!@DATE@!@ diff --git a/.emacs.d/templates/css-template.css b/.emacs.d/templates/css-template.css index b544a40..0cc3d3a 100644 --- a/.emacs.d/templates/css-template.css +++ b/.emacs.d/templates/css-template.css @@ -1,5 +1,5 @@ /** - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ /** * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@ * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/emacs-lisp-template.el b/.emacs.d/templates/emacs-lisp-template.el index 1eb7deb..e1e1976 100644 --- a/.emacs.d/templates/emacs-lisp-template.el +++ b/.emacs.d/templates/emacs-lisp-template.el @@ -1,4 +1,4 @@ -;; (C) Copyright Collin Doering @!@YEAR@!@ +;; (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ ;; ;; 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 @@ -14,6 +14,6 @@ ;; along with this program. If not, see . ;; File: @!@FILE@!@ -;; Author: Collin J. Doering +;; Author: @!@AUTHOR@!@ <@!@EMAIL@!@> ;; Date: @!@DATE@!@ diff --git a/.emacs.d/templates/erlang-template.erl b/.emacs.d/templates/erlang-template.erl index eddacfe..bf749f4 100644 --- a/.emacs.d/templates/erlang-template.erl +++ b/.emacs.d/templates/erlang-template.erl @@ -1,4 +1,4 @@ -% (C) Copyright Collin Doering @!@YEAR@!@ +% (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ % % 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 @@ -14,6 +14,6 @@ % along with this program. If not, see . % File: @!@FILE@!@ -% Author: Collin J. Doering +% Author: @!@AUTHOR@!@ <@!@EMAIL@!@> % Date: @!@DATE@!@ diff --git a/.emacs.d/templates/haml-template.haml b/.emacs.d/templates/haml-template.haml index ba240fc..d78559c 100644 --- a/.emacs.d/templates/haml-template.haml +++ b/.emacs.d/templates/haml-template.haml @@ -1,4 +1,4 @@ -// (C) Copyright Collin Doering @!@YEAR@!@ +// (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ // // 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 @@ -14,6 +14,6 @@ // along with this program. If not, see . // File: @!@FILE@!@ -// Author: Collin J. Doering +// Author: @!@AUTHOR@!@ <@!@EMAIL@!@> // Date: @!@DATE@!@ diff --git a/.emacs.d/templates/haskell-template.hs b/.emacs.d/templates/haskell-template.hs index 4c841a8..03b35d6 100644 --- a/.emacs.d/templates/haskell-template.hs +++ b/.emacs.d/templates/haskell-template.hs @@ -1,4 +1,4 @@ --- (C) Copyright Collin Doering @!@YEAR@!@ +-- (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ -- -- 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 @@ -14,6 +14,6 @@ -- along with this program. If not, see . -- File: @!@FILE@!@ --- Author: Collin J. Doering +-- Author: @!@AUTHOR@!@ <@!@EMAIL@!@> -- Date: @!@DATE@!@ diff --git a/.emacs.d/templates/java-script-template.js b/.emacs.d/templates/java-script-template.js index b544a40..c4eb9a3 100644 --- a/.emacs.d/templates/java-script-template.js +++ b/.emacs.d/templates/java-script-template.js @@ -1,5 +1,5 @@ /** - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ /** * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/java-template.java b/.emacs.d/templates/java-template.java index f555d69..fd87abf 100644 --- a/.emacs.d/templates/java-template.java +++ b/.emacs.d/templates/java-template.java @@ -1,5 +1,5 @@ /** - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,6 +17,6 @@ /** * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/lisp-template.lisp b/.emacs.d/templates/lisp-template.lisp index 1eb7deb..e1e1976 100644 --- a/.emacs.d/templates/lisp-template.lisp +++ b/.emacs.d/templates/lisp-template.lisp @@ -1,4 +1,4 @@ -;; (C) Copyright Collin Doering @!@YEAR@!@ +;; (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ ;; ;; 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 @@ -14,6 +14,6 @@ ;; along with this program. If not, see . ;; File: @!@FILE@!@ -;; Author: Collin J. Doering +;; Author: @!@AUTHOR@!@ <@!@EMAIL@!@> ;; Date: @!@DATE@!@ diff --git a/.emacs.d/templates/lua-template.lua b/.emacs.d/templates/lua-template.lua index 4c841a8..03b35d6 100644 --- a/.emacs.d/templates/lua-template.lua +++ b/.emacs.d/templates/lua-template.lua @@ -1,4 +1,4 @@ --- (C) Copyright Collin Doering @!@YEAR@!@ +-- (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ -- -- 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 @@ -14,6 +14,6 @@ -- along with this program. If not, see . -- File: @!@FILE@!@ --- Author: Collin J. Doering +-- Author: @!@AUTHOR@!@ <@!@EMAIL@!@> -- Date: @!@DATE@!@ diff --git a/.emacs.d/templates/ocaml-template.ml b/.emacs.d/templates/ocaml-template.ml index f9c12a6..8c9b0ec 100644 --- a/.emacs.d/templates/ocaml-template.ml +++ b/.emacs.d/templates/ocaml-template.ml @@ -1,5 +1,5 @@ (* - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ (* * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> * Date: @!@DATE@!@ *) diff --git a/.emacs.d/templates/php-template.php b/.emacs.d/templates/php-template.php index a04a5f1..a9b89f4 100644 --- a/.emacs.d/templates/php-template.php +++ b/.emacs.d/templates/php-template.php @@ -1,7 +1,7 @@ * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/python-template.py b/.emacs.d/templates/python-template.py index 0c076c1..cfd7b97 100644 --- a/.emacs.d/templates/python-template.py +++ b/.emacs.d/templates/python-template.py @@ -1,4 +1,4 @@ -# (C) Copyright Collin Doering @!@YEAR@!@ +# (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ # # 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 @@ -14,6 +14,6 @@ # along with this program. If not, see . # File: @!@FILE@!@ -# Author: Collin J. Doering +# Author: @!@AUTHOR@!@ <@!@EMAIL@!@> # Date: @!@DATE@!@ diff --git a/.emacs.d/templates/racket-template.rkt b/.emacs.d/templates/racket-template.rkt index d0ef66f..43dd5c0 100644 --- a/.emacs.d/templates/racket-template.rkt +++ b/.emacs.d/templates/racket-template.rkt @@ -1,6 +1,6 @@ #lang racket -;; (C) Copyright Collin Doering @!@YEAR@!@ +;; (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ ;; ;; 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 @@ -16,6 +16,6 @@ ;; along with this program. If not, see . ;; File: @!@FILE@!@ -;; Author: Collin J. Doering +;; Author: @!@AUTHOR@!@ <@!@EMAIL@!@> ;; Date: @!@DATE@!@ diff --git a/.emacs.d/templates/ruby-template.rb b/.emacs.d/templates/ruby-template.rb index 0c076c1..cfd7b97 100644 --- a/.emacs.d/templates/ruby-template.rb +++ b/.emacs.d/templates/ruby-template.rb @@ -1,4 +1,4 @@ -# (C) Copyright Collin Doering @!@YEAR@!@ +# (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ # # 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 @@ -14,6 +14,6 @@ # along with this program. If not, see . # File: @!@FILE@!@ -# Author: Collin J. Doering +# Author: @!@AUTHOR@!@ <@!@EMAIL@!@> # Date: @!@DATE@!@ diff --git a/.emacs.d/templates/sass-template.sass b/.emacs.d/templates/sass-template.sass index ba240fc..d78559c 100644 --- a/.emacs.d/templates/sass-template.sass +++ b/.emacs.d/templates/sass-template.sass @@ -1,4 +1,4 @@ -// (C) Copyright Collin Doering @!@YEAR@!@ +// (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ // // 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 @@ -14,6 +14,6 @@ // along with this program. If not, see . // File: @!@FILE@!@ -// Author: Collin J. Doering +// Author: @!@AUTHOR@!@ <@!@EMAIL@!@> // Date: @!@DATE@!@ diff --git a/.emacs.d/templates/scala-template.scala b/.emacs.d/templates/scala-template.scala index b544a40..c4eb9a3 100644 --- a/.emacs.d/templates/scala-template.scala +++ b/.emacs.d/templates/scala-template.scala @@ -1,5 +1,5 @@ /** - * (C) Copyright Collin Doering @!@YEAR@!@ + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ /** * File: @!@FILE@!@ - * Author: Collin J. Doering + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> * Date: @!@DATE@!@ */ diff --git a/.emacs.d/templates/scheme-template.scm b/.emacs.d/templates/scheme-template.scm index 1eb7deb..e1e1976 100644 --- a/.emacs.d/templates/scheme-template.scm +++ b/.emacs.d/templates/scheme-template.scm @@ -1,4 +1,4 @@ -;; (C) Copyright Collin Doering @!@YEAR@!@ +;; (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ ;; ;; 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 @@ -14,6 +14,6 @@ ;; along with this program. If not, see . ;; File: @!@FILE@!@ -;; Author: Collin J. Doering +;; Author: @!@AUTHOR@!@ <@!@EMAIL@!@> ;; Date: @!@DATE@!@ diff --git a/.emacs.d/templates/scss-template.scss b/.emacs.d/templates/scss-template.scss index ba240fc..d78559c 100644 --- a/.emacs.d/templates/scss-template.scss +++ b/.emacs.d/templates/scss-template.scss @@ -1,4 +1,4 @@ -// (C) Copyright Collin Doering @!@YEAR@!@ +// (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ // // 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 @@ -14,6 +14,6 @@ // along with this program. If not, see . // File: @!@FILE@!@ -// Author: Collin J. Doering +// Author: @!@AUTHOR@!@ <@!@EMAIL@!@> // Date: @!@DATE@!@ diff --git a/.emacs.d/templates/shell-template.sh b/.emacs.d/templates/shell-template.sh index c661c84..356eef2 100644 --- a/.emacs.d/templates/shell-template.sh +++ b/.emacs.d/templates/shell-template.sh @@ -1,6 +1,6 @@ #!/bin/sh -# (C) Copyright Collin Doering @!@YEAR@!@ +# (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ # # 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 @@ -16,6 +16,6 @@ # along with this program. If not, see . # File: @!@FILE@!@ -# Author: Collin J. Doering +# Author: @!@AUTHOR@!@ <@!@EMAIL@!@> # Date: @!@DATE@!@ diff --git a/.emacs.d/templates/sml-template.ml b/.emacs.d/templates/sml-template.ml index ab82496..b902b63 100644 --- a/.emacs.d/templates/sml-template.ml +++ b/.emacs.d/templates/sml-template.ml @@ -1,5 +1,5 @@ (* - * (C) Copyright Collin Doering 2013 + * (C) Copyright @!@AUTHOR@!@ @!@YEAR@!@ * * 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 @@ -17,7 +17,7 @@ (* * File: sml-template.ml - * Author: Collin J. Doering - * Date: Mar 5, 2013 + * Author: @!@AUTHOR@!@ <@!@EMAIL@!@> + * Date: @!@DATE@!@ *) diff --git a/.emacs.d/themes/manoj-transparent-theme.el b/.emacs.d/themes/manoj-transparent-theme.el index f1a573e..6e1cd3b 100644 --- a/.emacs.d/themes/manoj-transparent-theme.el +++ b/.emacs.d/themes/manoj-transparent-theme.el @@ -539,15 +539,15 @@ jarring angry fruit salad look to reduce eye fatigue.") '(man-xref ((t (:underline t)))) '(match ((t (:background "RoyalBlue3")))) '(minibuffer-prompt ((t (:foreground "cyan")))) - '(mode-line ((t (:background "grey75" :foreground "Blue" + '(mode-line ((t (:background "grey20" :foreground "#00afff" :box '(:line-width -1 :style released-button) :height 0.9)))) - '(mode-line-buffer-id ((t (:background "grey65" :foreground "red" + '(mode-line-buffer-id ((t (:background "grey15" :foreground "OrangeRed" :bold t :weight bold :height 0.9)))) '(mode-line-emphasis ((t (:bold t :weight bold)))) '(mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button :height 0.9))))) - '(mode-line-inactive ((t (:background "grey30" :foreground "grey80" + '(mode-line-inactive ((t (:background "grey5" :foreground "grey80" :box '(:line-width -1 :color "grey40") :weight light :height 0.9)))) '(mouse ((t (:background "OrangeRed"))))