commit 3b04d39c3c13d91a4cfbc314b0d10a71e75348fb (HEAD, refs/remotes/origin/master) Author: Juri Linkov Date: Sun Aug 9 02:48:14 2020 +0300 * lisp/custom.el (custom-add-choice): Fix previous commit. diff --git a/lisp/custom.el b/lisp/custom.el index 0cb136330d..db7f6a056d 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1544,7 +1544,7 @@ This means reset VARIABLE. (The argument IGNORED is ignored)." (defun custom-add-choice (variable choice) "Add CHOICE to the custom type of VARIABLE. If a choice with the same tag already exists, no action is taken." - (let ((choices (get 'tab-bar-new-tab-choice 'custom-type))) + (let ((choices (get variable 'custom-type))) (unless (eq (car choices) 'choice) (error "Not a choice type: %s" choices)) (unless (seq-find (lambda (elem) @@ -1553,7 +1553,7 @@ If a choice with the same tag already exists, no action is taken." (cdr choices)) ;; Put the new choice at the end. (put variable 'custom-type - (append (get variable 'custom-type) (list choice)))))) + (append choices (list choice)))))) ;;; The End. commit 444e404325e5ea7f3caf93d348fd283f6246ad24 Author: Basil L. Contovounesios Date: Sat Aug 8 23:53:14 2020 +0100 ; Fix typos in recent message.el changes * doc/misc/message.texi (OpenPGP Header): * etc/NEWS: * lisp/gnus/message.el (message-add-openpgp-header): Fix spelling of function name. diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 687ee1f970..204a6386e0 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1265,7 +1265,7 @@ for a long time. For more details, see To use this in Message, say: @lisp -(add-hook 'message-send-hook 'messasge-add-openpgp-header) +(add-hook 'message-send-hook 'message-add-openpgp-header) @end lisp @noindent diff --git a/etc/NEWS b/etc/NEWS index 269b07610a..71c037631a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -249,7 +249,7 @@ not. +++ *** Message now supports the OpenPGP header. To generate these headers, add the new function -'messasge-add-openpgp-header' to 'message-send-hook'. The header will +'message-add-openpgp-header' to 'message-send-hook'. The header will be generated according to the new 'message-openpgp-header' variable. --- diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index d8fef67de2..0aca31ac88 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2763,7 +2763,7 @@ will not be inserted." (const "signencrypt" :tag "Sign and Encrypt")))) :version "28.1") -(defun messasge-add-openpgp-header () +(defun message-add-openpgp-header () "Add OpenPGP header to point to public key. Header will be constructed as specified in `message-openpgp-header'. commit 878924e881528f8b87216f571db91a960c733d9a Author: Glenn Morris Date: Sat Aug 8 08:35:34 2020 -0700 * lisp/outline.el (outline-minor-mode-prefix): Fix compilation. diff --git a/lisp/outline.el b/lisp/outline.el index aa8ed58ad9..6158ed594e 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -297,6 +297,7 @@ The value of this variable is checked as part of loading Outline mode. After that, changing the prefix key requires manipulating keymaps." :type 'key-sequence :group 'outlines + :initialize 'custom-initialize-default :set (lambda (sym val) (define-key outline-minor-mode-map outline-minor-mode-prefix nil) (define-key outline-minor-mode-map val outline-mode-prefix-map) commit 843b55f6822bc1e8b97b91222e7bc03b5caa9919 Author: Eli Zaretskii Date: Sat Aug 8 17:06:45 2020 +0300 ; Fix recent message.el-related changes * lisp/gnus/message.el (message-openpgp-header): * doc/misc/message.texi (OpenPGP Header): Fix the documentation added in recent commits. diff --git a/doc/misc/message.texi b/doc/misc/message.texi index d6df1a62cf..687ee1f970 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1256,7 +1256,7 @@ according to two different standards, namely @acronym{PGP} or @subsection OpenPGP Header The @samp{OpenPGP} header can be used to provide information about the -sender's OpenPGP key. This is a formalisation and modernisation of +sender's OpenPGP key. This is a formalization and modernization of the non-standard @samp{X-PGP-Key} (etc.) headers that have been in use for a long time. For more details, see @uref{https://tools.ietf.org/html/draft-josefsson-openpgp-mailnews-header}. @@ -1268,9 +1268,10 @@ To use this in Message, say: (add-hook 'message-send-hook 'messasge-add-openpgp-header) @end lisp -Then customize the @code{message-openpgp-header} variable according to +@noindent +then customize the @code{message-openpgp-header} variable according to your PGP setup. The variable is a list of the key ID, the key URL or -ASCII armoured, and the protection preference, one of +ASCII armored key, and the protection preference, one of @samp{"unprotected"}, @samp{"sign"}, @samp{"encrypt"} or @samp{"signencrypt"}. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index e5ddfcffff..d8fef67de2 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2738,18 +2738,18 @@ systematically send encrypted emails when possible." (mml-secure-message-sign-encrypt))) (defcustom message-openpgp-header nil - "Specification for \"OpenPGP\" header. + "Specification for the \"OpenPGP\" header of outgoing messages. -Otherwise, the variable must be a -list with three elements, all strings: -- Key ID, in hexadecimal form -- Key URL or ASCII armoured key. +The value must be a list of three elements, all strings: +- Key ID, in hexadecimal form; +- Key URL or ASCII armoured key; and - Protection preference, one of: \"unprotected\", \"sign\", \"encrypt\" or \"signencrypt\". -Each value may be nil, in which case it won't be inserted. If all -the values are nil, or `message-openpgp-header' is nil itself, -don't insert any header." +Each of the elements may be nil, in which case its part in the +OpenPGP header will be left out. If all the values are nil, +or `message-openpgp-header' is itself nil, the OpenPGP header +will not be inserted." :type '(choice (const nil :tag "Don't add OpenPGP header") (list (choice (string :tag "ID") commit ed943db794987cb6fc87b55d68d6164190ba9a24 Author: Lars Ingebrigtsen Date: Sat Aug 8 15:49:48 2020 +0200 Document the OpenPGP header * doc/misc/message.texi (Using the OpenPGP Header): Document the OpenPGP header (bug#39964). diff --git a/doc/misc/message.texi b/doc/misc/message.texi index d8a889e29f..d6df1a62cf 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1042,6 +1042,7 @@ and/or encrypted messages as explained in the following. * Signing and encryption:: Signing and encrypting commands. * Using S/MIME:: Using S/MIME * Using OpenPGP:: Using OpenPGP +* OpenPGP Header:: Adding OpenPGP headers to messages. * Passphrase caching:: How to cache passphrases * PGP Compatibility:: Compatibility with older implementations * Encrypt-to-self:: Reading your own encrypted messages @@ -1251,6 +1252,28 @@ according to two different standards, namely @acronym{PGP} or @code{mml-default-sign-method} determine which variant to prefer, @acronym{PGP/MIME} by default. +@node OpenPGP Header +@subsection OpenPGP Header + +The @samp{OpenPGP} header can be used to provide information about the +sender's OpenPGP key. This is a formalisation and modernisation of +the non-standard @samp{X-PGP-Key} (etc.) headers that have been in use +for a long time. For more details, see +@uref{https://tools.ietf.org/html/draft-josefsson-openpgp-mailnews-header}. + +@vindex message-openpgp-header +To use this in Message, say: + +@lisp +(add-hook 'message-send-hook 'messasge-add-openpgp-header) +@end lisp + +Then customize the @code{message-openpgp-header} variable according to +your PGP setup. The variable is a list of the key ID, the key URL or +ASCII armoured, and the protection preference, one of +@samp{"unprotected"}, @samp{"sign"}, @samp{"encrypt"} or +@samp{"signencrypt"}. + @node Passphrase caching @subsection Passphrase caching diff --git a/etc/NEWS b/etc/NEWS index d2903449be..269b07610a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -246,6 +246,7 @@ not. ** Message ++++ *** Message now supports the OpenPGP header. To generate these headers, add the new function 'messasge-add-openpgp-header' to 'message-send-hook'. The header will commit b799cc271d69fc494da1fe04ca8ec6c529a19a19 Author: Philip K Date: Sat Aug 8 15:40:32 2020 +0200 Add support for the OpenPGP header to Emacs * lisp/gnus/message.el (message-openpgp-header): New variable (bug#39964). (messasge-add-openpgp-header): New function to use it. diff --git a/etc/NEWS b/etc/NEWS index 5cef0eb4c8..d2903449be 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -246,6 +246,11 @@ not. ** Message +*** Message now supports the OpenPGP header. +To generate these headers, add the new function +'messasge-add-openpgp-header' to 'message-send-hook'. The header will +be generated according to the new 'message-openpgp-header' variable. + --- *** A change to how Mail-Copies-To: never is handled. If a user has specified Mail-Copies-To: never, and Message was asked diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 819f3e41d3..e5ddfcffff 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2737,6 +2737,64 @@ systematically send encrypted emails when possible." (when (message-all-epg-keys-available-p) (mml-secure-message-sign-encrypt))) +(defcustom message-openpgp-header nil + "Specification for \"OpenPGP\" header. + +Otherwise, the variable must be a +list with three elements, all strings: +- Key ID, in hexadecimal form +- Key URL or ASCII armoured key. +- Protection preference, one of: \"unprotected\", \"sign\", + \"encrypt\" or \"signencrypt\". + +Each value may be nil, in which case it won't be inserted. If all +the values are nil, or `message-openpgp-header' is nil itself, +don't insert any header." + :type '(choice + (const nil :tag "Don't add OpenPGP header") + (list (choice (string :tag "ID") + (const nil :tag "No ID")) + (choice (string :tag "Key") + (const nil :tag "No Key")) + (choice (other nil :tag "None") + (const "unprotected" :tag "Unprotected") + (const "sign" :tag "Sign") + (const "encrypt" :tag "Encrypt") + (const "signencrypt" :tag "Sign and Encrypt")))) + :version "28.1") + +(defun messasge-add-openpgp-header () + "Add OpenPGP header to point to public key. + +Header will be constructed as specified in `message-openpgp-header'. + +Consider adding this function to `message-send-hook'." + ;; See https://tools.ietf.org/html/draft-josefsson-openpgp-mailnews-header + (when (and message-openpgp-header + (or (nth 0 message-openpgp-header) + (nth 1 message-openpgp-header) + (nth 2 message-openpgp-header))) + (with-temp-buffer + (insert "OpenPGP: ") + ;; add ID + (let (need-sep) + (when (nth 0 message-openpgp-header) + (insert "id=" (nth 0 message-openpgp-header)) + (setq need-sep t)) + ;; add URL + (when (nth 1 message-openpgp-header) + (when need-sep (insert "; ")) + (if (string-match-p ";") + (insert "url=\"" (nth 1 message-openpgp-header) "\"") + (insert "url=\"" (nth 1 message-openpgp-header) "\"")) + (setq need-sep t)) + ;; add preference + (when (nth 2 message-openpgp-header) + (when need-sep (insert "; ")) + (insert "preference=" (nth 2 message-openpgp-header)))) + ;; insert header + (message-add-header (buffer-string))))) + ;;; commit 289d6b2265e19822ed5ad44e5c62e9bf3750f606 Author: Florian v. Savigny Date: Sat Aug 8 15:33:58 2020 +0200 Handle '' in strings in SQL Mode * lisp/progmodes/sql.el (sql--syntax-propertize-escaped-apostrophe): Handle '' in strings (bug#40231). (sql-mode): Use it. diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index c86fc59ac1..8e3191c9b4 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -1508,6 +1508,22 @@ Based on `comint-mode-map'.") table) "Syntax table used in `sql-mode' and `sql-interactive-mode'.") +;;; Syntax Properties + +;; `sql--syntax-propertize-escaped-apostrophe', as follows, was +;; (analysed and) adapted from `pascal--syntax-propertize' in +;; pascal.el because basic syntax parsing cannot handle the SQL '' +;; construct within strings. + +(defconst sql--syntax-propertize-escaped-apostrophe + (syntax-propertize-rules + ("''" + (0 + (if (save-excursion (nth 3 (syntax-ppss (match-beginning 0)))) + (string-to-syntax ".") + (forward-char -1) + nil))))) + ;; Font lock support (defvar sql-mode-font-lock-object-name @@ -4210,6 +4226,11 @@ must tell Emacs. Here's how to do that in your init file: (setq-local abbrev-all-caps 1) ;; Contains the name of database objects (set (make-local-variable 'sql-contains-names) t) + ;; Activate punctuation syntax table property for + ;; escaped apostrophes within strings: + (setq-local syntax-propertize-function + sql--syntax-propertize-escaped-apostrophe) + (setq-local parse-sexp-lookup-properties t) ; just to make sure it is used ;; Set syntax and font-face highlighting ;; Catch changes to sql-product and highlight accordingly (sql-set-product (or sql-product 'ansi)) ; Fixes bug#13591 commit b42df36757e7c86f33730090a8a0789e957f8fba Author: Lars Ingebrigtsen Date: Sat Aug 8 15:17:33 2020 +0200 Modernise a code example in os.texi * doc/lispref/os.texi (Session Management): Use with-current-buffer in the example instead of save+switch (bug#40341). diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index a7f353407c..504f0dfb23 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -2688,9 +2688,8 @@ Emacs is restarted by the session manager. @group (defun save-yourself-test () (insert - (format "%S" '(save-current-buffer - (switch-to-buffer "*scratch*") - (insert "I am restored")))) + (format "%S" '(with-current-buffer "*scratch*" + (insert "I am restored")))) nil) @end group @end example commit 527b8a807143253ed8e52de004fb3cc9a17123c0 Author: Bruno Félix Rezende Ribeiro Date: Sat Aug 8 15:13:57 2020 +0200 * doc/lispref/os.texi (Session Management): Make example homoiconic * doc/lispref/os.texi (Session Management): Don't insert Lisp as strings, but use format (bug#40341). Copyright-paperwork-exempt: yes diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 942bda105f..a7f353407c 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -2687,9 +2687,10 @@ Emacs is restarted by the session manager. @group (defun save-yourself-test () - (insert "(save-current-buffer - (switch-to-buffer \"*scratch*\") - (insert \"I am restored\"))") + (insert + (format "%S" '(save-current-buffer + (switch-to-buffer "*scratch*") + (insert "I am restored")))) nil) @end group @end example commit 2e669305fca1d20e9224dfe0146cef8267c47071 Author: Eli Zaretskii Date: Sat Aug 8 16:07:16 2020 +0300 ; * etc/NEWS: Rearrange some entries and add entry for recentf change. diff --git a/etc/NEWS b/etc/NEWS index 01245d14f9..5cef0eb4c8 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -130,18 +130,6 @@ same for a button. * Changes in Specialized Modes and Packages in Emacs 28.1 -** Miscellaneous - ---- -*** The width of the buffer-name column in 'list-buffers' is now dynamic. -The width now depends of the width of the window, but will never be -wider than the length of the longest buffer name, except that it will -never be narrower than 19 characters. - -*** Bookmarks can now be targets for new tabs. -When the 'bookmark.el' library is loaded, a customize choice is added -to 'tab-bar-new-tab-choice' for new tabs to show the bookmark list. - ** Windows *** The key prefix 'C-x 4 1' displays next command buffer in the same window. @@ -709,6 +697,23 @@ custom rules, see the variables 'bug-reference-setup-from-vc-alist', It's bound to the 'C-c C-c f' keystroke, and prompts for a local file name. +--- +** Recentf +The recentf files are no longer backed up. + + +** Miscellaneous + +--- +*** The width of the buffer-name column in 'list-buffers' is now dynamic. +The width now depends of the width of the window, but will never be +wider than the length of the longest buffer name, except that it will +never be narrower than 19 characters. + +*** Bookmarks can now be targets for new tabs. +When the 'bookmark.el' library is loaded, a customize choice is added +to 'tab-bar-new-tab-choice' for new tabs to show the bookmark list. + * New Modes and Packages in Emacs 28.1 commit 99f8a1c91733a8aaa47818e78dfe86c5635ce086 Author: Fabrice Niessen Date: Sat Aug 8 14:21:38 2020 +0200 Update Leuven-theme * etc/themes/leuven-theme.el (class): Update theme (bug#40759). diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el index c298b536d2..f104c845ff 100644 --- a/etc/themes/leuven-theme.el +++ b/etc/themes/leuven-theme.el @@ -4,7 +4,7 @@ ;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")> ;; URL: https://github.com/fniessen/emacs-leuven-theme -;; Version: 20200425.0837 +;; Version: 20200513.1928 ;; Keywords: color theme ;; This file is part of GNU Emacs. @@ -31,42 +31,98 @@ ;; ;; (load-theme 'leuven t) ;; -;; Requirements: Emacs 24. +;; Requirements: Emacs 24+. +;; +;; NOTE -- Would you like implement a version of this for dark backgrounds, +;; please do so! I'm willing to integrate it... ;;; Code: +;;; Options. + +(defgroup leuven nil + "Leuven theme options. +The theme has to be reloaded after changing anything in this group." + :group 'faces) + +(defcustom leuven-scale-outline-headlines t + "Scale `outline' (and `org') level-1 headlines. +This can be nil for unscaled, t for using the theme default, or a scaling +number." + :type '(choice + (const :tag "Unscaled" nil) + (const :tag "Default provided by theme" t) + (number :tag "Set scaling")) + :group 'leuven) + +(defcustom leuven-scale-org-agenda-structure t + "Scale Org agenda structure lines, like dates. +This can be nil for unscaled, t for using the theme default, or a scaling +number." + :type '(choice + (const :tag "Unscaled" nil) + (const :tag "Default provided by theme" t) + (number :tag "Set scaling"))) + +(defun leuven-scale-font (control default-height) + "Function for splicing optional font heights into face descriptions. +CONTROL can be a number, nil, or t. When t, use DEFAULT-HEIGHT." + (cond + ((numberp control) (list :height control)) + ((eq t control) (list :height default-height)) + (t nil))) + +;;; Theme Faces. + (deftheme leuven "Face colors with a light background. -Basic, Font Lock, Isearch, Gnus, Message, Diff, Ediff, Flyspell, -Semantic, and Ansi-Color faces are included -- and much more...") +Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff, +Flyspell, Semantic, and Ansi-Color faces are included -- and much +more...") (let ((class '((class color) (min-colors 89))) - ;; Leuven generic colors - (cancel '(:slant italic :strike-through t :foreground "gray55")) + ;; Leuven generic colors. + (cancel '(:slant italic :strike-through t :foreground "#A9A9A9")) (clock-line '(:box (:line-width 1 :color "#335EA8") :foreground "black" :background "#EEC900")) (code-block '(:foreground "#000088" :background "#FFFFE0")) (code-inline '(:foreground "#006400" :background "#FDFFF7")) (column '(:height 1.0 :weight normal :slant normal :underline nil :strike-through nil :foreground "#E6AD4F" :background "#FFF2DE")) - (diff-added '(:foreground "#008000" :background "#DDFFDD")) + (completion-inline '(:weight normal :foreground "#C0C0C0" :inherit hl-line)) ; Like Google. + (completion-other-candidates '(:weight bold :foreground "black" :background "#EBF4FE")) + (completion-selected-candidate '(:weight bold :foreground "white" :background "#0052A4")) + (diff-added '(:background "#DDFFDD")) (diff-changed '(:foreground "#0000FF" :background "#DDDDFF")) - (diff-header '(:foreground "#800000" :background "#FFFFAF")) + (diff-header '(:weight bold :foreground "#800000" :background "#FFFFAF")) (diff-hunk-header '(:foreground "#990099" :background "#FFEEFF")) - (diff-none '(:foreground "gray33")) - (diff-removed '(:foreground "#A60000" :background "#FFDDDD")) + (diff-none '(:foreground "#888888")) + (diff-refine-added '(:background "#97F295")) + (diff-refine-removed '(:background "#FFB6BA")) + (diff-removed '(:background "#FEE8E9")) (directory '(:weight bold :foreground "blue" :background "#FFFFD2")) - (highlight-line '(:background "#FFFFD7")) ; #F5F5F5 - (highlight-line-gnus '(:background "#DAEAFC")) ; defined in `gnus-leuven.el' + (file '(:foreground "black")) + (function-param '(:foreground "#247284")) + (grep-file-name '(:weight bold :foreground "#2A489E")) ; Used for grep hits. + (grep-line-number '(:weight bold :foreground "#A535AE")) + (highlight-blue '(:background "#E6ECFF")) + (highlight-blue2 '(:background "#E4F1F9")) + (highlight-gray '(:background "#E4E4E3")) + (highlight-green '(:background "#D5F1CF")) + (highlight-red '(:background "#FFC8C8")) + (highlight-yellow '(:background "#F6FECD")) (link '(:weight normal :underline t :foreground "#006DAF")) + (link-no-underline '(:weight normal :foreground "#006DAF")) (mail-header-name '(:family "Sans Serif" :weight normal :foreground "#A3A3A2")) (mail-header-other '(:family "Sans Serif" :slant normal :foreground "#666666")) - (mail-read '(:weight normal :foreground "#86878B")) - (mail-ticked '(:weight bold :background "#FBE6EF")) + (mail-read '(:foreground "#8C8C8C")) + (mail-read-high '(:foreground "#808080")) + (mail-ticked '(:foreground "#FF3300")) (mail-to '(:family "Sans Serif" :underline nil :foreground "#006DAF")) - (mail-unread '(:weight bold :foreground "black")) - (marked-line '(:weight bold :foreground "white" :background "red")) - (match '(:weight bold :background "#FBE448")) ; occur patterns - (ol1 '(:height 1.3 :weight bold :overline "#A7A7A7" :foreground "#3C3C3C" :background "#F0F0F0")) + (mail-unread '(:weight bold :foreground "#000000")) + (mail-unread-high '(:weight bold :foreground "#135985")) + (marked-line '(:foreground "#AA0000" :background "#FFAAAA")) + (match '(:weight bold :background "#FFFF00")) ; occur patterns + match in helm for files + match in Org files. + (ol1 `(,@(leuven-scale-font leuven-scale-outline-headlines 1.3) :weight bold :overline "#A7A7A7" :foreground "#3C3C3C" :background "#F0F0F0")) (ol2 '(:height 1.0 :weight bold :overline "#123555" :foreground "#123555" :background "#E5F4FB")) (ol3 '(:height 1.0 :weight bold :foreground "#005522" :background "#EFFFEF")) (ol4 '(:height 1.0 :weight bold :slant normal :foreground "#EA6300")) @@ -74,15 +130,22 @@ Semantic, and Ansi-Color faces are included -- and much more...") (ol6 '(:height 1.0 :weight bold :slant italic :foreground "#0077CC")) (ol7 '(:height 1.0 :weight bold :slant italic :foreground "#2EAE2C")) (ol8 '(:height 1.0 :weight bold :slant italic :foreground "#FD8008")) - (paren-matched '(:background "#99CCFF")) - (paren-unmatched '(:underline "red" :foreground nil :background "#FFDCDC")) - (region '(:background "#ABDFFA")) + (paren-matched '(:background "#C0E8C3")) ; Or take that green for region? + (paren-unmatched '(:weight bold :underline "red" :foreground "black" :background "#FFA5A5")) + (region '(:background "#8ED3FF")) (shadow '(:foreground "#7F7F7F")) (string '(:foreground "#008000")) ; or #D0372D (subject '(:family "Sans Serif" :weight bold :foreground "black")) - (symlink '(:foreground "deep sky blue")) - (volatile-highlight '(:underline nil :background "#FFF876")) - (vc-branch '(:box (:line-width 1 :color "#00CC33") :foreground "black" :background "#AAFFAA"))) + (symlink '(:foreground "#1F8DD6")) + (tab '(:foreground "#E8E8E8" :background "white")) + (trailing '(:foreground "#E8E8E8" :background "#FFFFAB")) + (volatile-highlight '(:underline nil :foreground "white" :background "#9E3699")) + (volatile-highlight-supersize '(:height 1.1 :underline nil :foreground "white" :background "#9E3699")) ; flash-region + (vc-branch '(:box (:line-width 1 :color "#00CC33") :foreground "black" :background "#AAFFAA")) + (xml-attribute '(:foreground "#F36335")) + (xml-tag '(:foreground "#AE1B9A")) + (highlight-current-tag '(:background "#E8E8FF")) ; #EEF3F6 or #FFEB26 + ) (custom-theme-set-faces 'leuven @@ -91,40 +154,43 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(bold-italic ((,class (:weight bold :slant italic :foreground "black")))) `(italic ((,class (:slant italic :foreground "#1A1A1A")))) `(underline ((,class (:underline t)))) - `(cursor ((,class (:background "#0FB300")))) + `(cursor ((,class (:background "#21BDFF")))) + + ;; Lucid toolkit emacs menus. + `(menu ((,class (:foreground "#FFFFFF" :background "#333333")))) - ;; Highlighting faces - `(fringe ((,class (:foreground "#9B9B9B" :background "#EDEDED")))) - `(highlight ((,class ,volatile-highlight))) + ;; Highlighting faces. + `(fringe ((,class (:foreground "#4C9ED9" :background "white")))) + `(highlight ((,class ,highlight-blue))) `(region ((,class ,region))) - `(secondary-selection ((,class ,match))) ; used by Org-mode for highlighting matched entries and keywords - `(isearch ((,class (:weight bold :underline "#FF9632" :foreground nil :background "#FDBD33")))) - `(isearch-fail ((,class (:weight bold :foreground "black" :background "#FF9999")))) - `(lazy-highlight ((,class (:underline "#FF9632" :background "#FFFF00")))) ; isearch others - `(trailing-whitespace ((,class (:background "#FFFF57")))) - `(whitespace-hspace ((,class (:foreground "#D2D2D2")))) - `(whitespace-indentation ((,class (:foreground "#A1A1A1" :background "white")))) + `(secondary-selection ((,class ,match))) ; Used by Org-mode for highlighting matched entries and keywords. + `(isearch ((,class (:underline "black" :foreground "white" :background "#5974AB")))) + `(isearch-fail ((,class (:weight bold :foreground "black" :background "#FFCCCC")))) + `(lazy-highlight ((,class (:foreground "black" :background "#FFFF00")))) ; Isearch others (see `match'). + `(trailing-whitespace ((,class ,trailing))) + `(query-replace ((,class (:inherit isearch)))) + `(whitespace-hspace ((,class (:foreground "#D2D2D2")))) ; see also `nobreak-space' + `(whitespace-indentation ((,class ,tab))) `(whitespace-line ((,class (:foreground "#CC0000" :background "#FFFF88")))) - `(whitespace-tab ((,class (:foreground "#A1A1A1" :background "white")))) - `(whitespace-trailing ((,class (:foreground "#B3B3B3" :background "#FFFF57")))) + `(whitespace-tab ((,class ,tab))) + `(whitespace-trailing ((,class ,trailing))) - ;; Mode line faces + ;; Mode line faces. `(mode-line ((,class (:box (:line-width 1 :color "#1A2F54") :foreground "#85CEEB" :background "#335EA8")))) `(mode-line-inactive ((,class (:box (:line-width 1 :color "#4E4E4C") :foreground "#F0F0EF" :background "#9B9C97")))) `(mode-line-buffer-id ((,class (:weight bold :foreground "white")))) `(mode-line-emphasis ((,class (:weight bold :foreground "white")))) `(mode-line-highlight ((,class (:foreground "yellow")))) - ;; Escape and prompt faces + ;; Escape and prompt faces. `(minibuffer-prompt ((,class (:weight bold :foreground "black" :background "gold")))) `(minibuffer-noticeable-prompt ((,class (:weight bold :foreground "black" :background "gold")))) `(escape-glyph ((,class (:foreground "#008ED1")))) - `(homoglyph ((,class (:foreground "#008ED1")))) `(error ((,class (:foreground "red")))) `(warning ((,class (:weight bold :foreground "orange")))) `(success ((,class (:foreground "green")))) - ;; Font lock faces + ;; Font lock faces. `(font-lock-builtin-face ((,class (:foreground "#006FE0")))) `(font-lock-comment-delimiter-face ((,class (:foreground "#8D8D84")))) ; #696969 `(font-lock-comment-face ((,class (:slant italic :foreground "#8D8D84")))) ; #696969 @@ -140,32 +206,32 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(font-lock-variable-name-face ((,class (:weight normal :foreground "#BA36A5")))) ; #800080 `(font-lock-warning-face ((,class (:weight bold :foreground "red")))) - ;; Button and link faces + ;; Button and link faces. `(link ((,class ,link))) `(link-visited ((,class (:underline t :foreground "#E5786D")))) `(button ((,class (:underline t :foreground "#006DAF")))) - `(header-line ((,class (:weight bold :underline "black" :overline "black" :foreground "black" :background "#FFFF88")))) + `(header-line ((,class (:box (:line-width 1 :color "black") :foreground "black" :background "#F0F0F0")))) - ;; Gnus faces + ;; Gnus faces. `(gnus-button ((,class (:weight normal)))) `(gnus-cite-attribution-face ((,class (:foreground "#5050B0")))) - `(gnus-cite-face-1 ((,class (:foreground "#5050B0")))) - `(gnus-cite-face-10 ((,class (:foreground "#990000")))) - `(gnus-cite-face-2 ((,class (:foreground "#660066")))) - `(gnus-cite-face-3 ((,class (:foreground "#007777")))) - `(gnus-cite-face-4 ((,class (:foreground "#990000")))) - `(gnus-cite-face-5 ((,class (:foreground "#000099")))) - `(gnus-cite-face-6 ((,class (:foreground "#BB6600")))) - `(gnus-cite-face-7 ((,class (:foreground "#5050B0")))) - `(gnus-cite-face-8 ((,class (:foreground "#660066")))) - `(gnus-cite-face-9 ((,class (:foreground "#007777")))) + `(gnus-cite-1 ((,class (:foreground "#5050B0" :background "#F6F6F6")))) + `(gnus-cite-2 ((,class (:foreground "#660066" :background "#F6F6F6")))) + `(gnus-cite-3 ((,class (:foreground "#007777" :background "#F6F6F6")))) + `(gnus-cite-4 ((,class (:foreground "#990000" :background "#F6F6F6")))) + `(gnus-cite-5 ((,class (:foreground "#000099" :background "#F6F6F6")))) + `(gnus-cite-6 ((,class (:foreground "#BB6600" :background "#F6F6F6")))) + `(gnus-cite-7 ((,class (:foreground "#5050B0" :background "#F6F6F6")))) + `(gnus-cite-8 ((,class (:foreground "#660066" :background "#F6F6F6")))) + `(gnus-cite-9 ((,class (:foreground "#007777" :background "#F6F6F6")))) + `(gnus-cite-10 ((,class (:foreground "#990000" :background "#F6F6F6")))) `(gnus-emphasis-bold ((,class (:weight bold)))) `(gnus-emphasis-highlight-words ((,class (:foreground "yellow" :background "black")))) `(gnus-group-mail-1 ((,class (:weight bold :foreground "#FF50B0")))) `(gnus-group-mail-1-empty ((,class (:foreground "#5050B0")))) `(gnus-group-mail-2 ((,class (:weight bold :foreground "#FF0066")))) `(gnus-group-mail-2-empty ((,class (:foreground "#660066")))) - `(gnus-group-mail-3 ((,class (:weight bold :foreground "black")))) + `(gnus-group-mail-3 ((,class ,mail-unread))) `(gnus-group-mail-3-empty ((,class ,mail-read))) `(gnus-group-mail-low ((,class ,cancel))) `(gnus-group-mail-low-empty ((,class ,cancel))) @@ -173,8 +239,8 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-group-news-1-empty ((,class (:foreground "#5050B0")))) `(gnus-group-news-2 ((,class (:weight bold :foreground "#FF0066")))) `(gnus-group-news-2-empty ((,class (:foreground "#660066")))) - `(gnus-group-news-3 ((,class (:weight bold :foreground "black")))) - `(gnus-group-news-3-empty ((,class (:foreground "#808080")))) + `(gnus-group-news-3 ((,class ,mail-unread))) + `(gnus-group-news-3-empty ((,class ,mail-read))) `(gnus-group-news-4 ((,class (:weight bold :foreground "#FF0000")))) `(gnus-group-news-4-empty ((,class (:foreground "#990000")))) `(gnus-group-news-5 ((,class (:weight bold :foreground "#FF0099")))) @@ -194,11 +260,11 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-signature ((,class (:slant italic :foreground "#8B8D8E")))) `(gnus-splash ((,class (:foreground "#FF8C00")))) `(gnus-summary-cancelled ((,class ,cancel))) - `(gnus-summary-high-ancient ((,class (:weight normal :foreground "#808080" :background "#FFFFE6")))) - `(gnus-summary-high-read ((,class (:weight normal :foreground "#999999" :background "#FFFFE6")))) + `(gnus-summary-high-ancient ((,class ,mail-unread-high))) + `(gnus-summary-high-read ((,class ,mail-read-high))) `(gnus-summary-high-ticked ((,class ,mail-ticked))) - `(gnus-summary-high-unread ((,class (:weight bold :foreground "black" :background "#FFFFCC")))) - `(gnus-summary-low-ancient ((,class (:slant italic :foreground "gray55")))) + `(gnus-summary-high-unread ((,class ,mail-unread-high))) + `(gnus-summary-low-ancient ((,class (:slant italic :foreground "black")))) `(gnus-summary-low-read ((,class (:slant italic :foreground "#999999" :background "#E0E0E0")))) `(gnus-summary-low-ticked ((,class ,mail-ticked))) `(gnus-summary-low-unread ((,class (:slant italic :foreground "black")))) @@ -209,82 +275,105 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-summary-selected ((,class (:foreground "white" :background "#008CD7")))) `(gnus-x-face ((,class (:foreground "black" :background "white")))) - ;; Message faces + ;; Message faces. `(message-header-name ((,class ,mail-header-name))) `(message-header-cc ((,class ,mail-to))) `(message-header-other ((,class ,mail-header-other))) `(message-header-subject ((,class ,subject))) `(message-header-to ((,class ,mail-to))) - `(message-cited-text ((,class (:foreground "#5050B0")))) + `(message-cited-text ((,class (:foreground "#5050B0" :background "#F6F6F6")))) `(message-separator ((,class (:family "Sans Serif" :weight normal :foreground "#BDC2C6")))) `(message-header-newsgroups ((,class (:family "Sans Serif" :foreground "#3399CC")))) `(message-header-xheader ((,class ,mail-header-other))) `(message-mml ((,class (:foreground "forest green")))) - ;; Diff + ;; Diff. `(diff-added ((,class ,diff-added))) `(diff-changed ((,class ,diff-changed))) `(diff-context ((,class ,diff-none))) `(diff-file-header ((,class ,diff-header))) `(diff-file1-hunk-header ((,class (:foreground "dark magenta" :background "#EAF2F5")))) `(diff-file2-hunk-header ((,class (:foreground "#2B7E2A" :background "#EAF2F5")))) - `(diff-function ((,class (:foreground "darkgray")))) + `(diff-function ((,class (:foreground "#CC99CC")))) `(diff-header ((,class ,diff-header))) `(diff-hunk-header ((,class ,diff-hunk-header))) `(diff-index ((,class ,diff-header))) - `(diff-indicator-added ((,class (:background "#AAFFAA")))) - `(diff-indicator-changed ((,class (:background "#8080FF")))) - `(diff-indicator-removed ((,class (:background "#FFBBBB")))) + `(diff-indicator-added ((,class (:foreground "#3A993A" :background "#CDFFD8")))) + `(diff-indicator-changed ((,class (:background "#DBEDFF")))) + `(diff-indicator-removed ((,class (:foreground "#CC3333" :background "#FFDCE0")))) + `(diff-refine-added ((,class ,diff-refine-added))) `(diff-refine-change ((,class (:background "#DDDDFF")))) + `(diff-refine-removed ((,class ,diff-refine-removed))) `(diff-removed ((,class ,diff-removed))) - ;; SMerge + ;; SMerge. + `(smerge-mine ((,class ,diff-changed))) + `(smerge-other ((,class ,diff-added))) + `(smerge-base ((,class ,diff-removed))) + `(smerge-markers ((,class (:background "#FFE5CC")))) `(smerge-refined-change ((,class (:background "#AAAAFF")))) - ;; Ediff - `(ediff-current-diff-A ((,class (:foreground "gray33" :background "#FFDDDD")))) - `(ediff-current-diff-B ((,class (:foreground "gray33" :background "#DDFFDD")))) - `(ediff-current-diff-C ((,class (:foreground "black" :background "cyan")))) - `(ediff-even-diff-A ((,class (:foreground "black" :background "light grey")))) - `(ediff-even-diff-B ((,class (:foreground "black" :background "light grey")))) - `(ediff-fine-diff-A ((,class (:foreground "#A60000" :background "#FFAAAA")))) - `(ediff-fine-diff-B ((,class (:foreground "#008000" :background "#55FF55")))) - `(ediff-odd-diff-A ((,class (:foreground "black" :background "light grey")))) - `(ediff-odd-diff-B ((,class (:foreground "black" :background "light grey")))) - - ;; Flyspell -;; (when (version< emacs-version "24.XXX") - `(flyspell-duplicate ((,class (:underline "#008000" :inherit nil)))) - `(flyspell-incorrect ((,class (:underline "red" :inherit nil)))) -;; `(flyspell-duplicate ((,class (:underline (:style wave :color "#008000") :inherit nil)))) -;; `(flyspell-incorrect ((,class (:underline (:style wave :color "red") :inherit nil)))) - - ;; ;; Semantic faces + ;; Ediff. + `(ediff-current-diff-A ((,class (:background "#FFDDDD")))) + `(ediff-current-diff-B ((,class (:background "#DDFFDD")))) + `(ediff-current-diff-C ((,class (:background "cyan")))) + `(ediff-even-diff-A ((,class (:background "light grey")))) + `(ediff-even-diff-B ((,class (:background "light grey")))) + `(ediff-fine-diff-A ((,class (:background "#FFAAAA")))) + `(ediff-fine-diff-B ((,class (:background "#55FF55")))) + `(ediff-odd-diff-A ((,class (:background "light grey")))) + `(ediff-odd-diff-B ((,class (:background "light grey")))) + + ;; Flyspell. + (if (version< emacs-version "24.4") + `(flyspell-duplicate ((,class (:underline "#F4EB80" :inherit nil)))) + `(flyspell-duplicate ((,class (:underline (:style wave :color "#F4EB80") :background "#FAF7CC" :inherit nil))))) + (if (version< emacs-version "24.4") + `(flyspell-incorrect ((,class (:underline "#FAA7A5" :inherit nil)))) + `(flyspell-incorrect ((,class (:underline (:style wave :color "#FAA7A5") :background "#F4D7DA":inherit nil))))) + + ;; ;; Semantic faces. ;; `(semantic-decoration-on-includes ((,class (:underline ,cham-4)))) ;; `(semantic-decoration-on-private-members-face ((,class (:background ,alum-2)))) ;; `(semantic-decoration-on-protected-members-face ((,class (:background ,alum-2)))) - ;; `(semantic-decoration-on-unknown-includes ((,class (:background ,choc-3)))) + `(semantic-decoration-on-unknown-includes ((,class (:background "#FFF8F8")))) ;; `(semantic-decoration-on-unparsed-includes ((,class (:underline ,orange-3)))) - ;; `(semantic-tag-boundary-face ((,class (:overline ,blue-1)))) + `(semantic-highlight-func-current-tag-face ((,class ,highlight-current-tag))) + `(semantic-tag-boundary-face ((,class (:overline "#777777")))) ; Method separator. ;; `(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))) `(Info-title-1-face ((,class ,ol1))) `(Info-title-2-face ((,class ,ol2))) `(Info-title-3-face ((,class ,ol3))) `(Info-title-4-face ((,class ,ol4))) - `(ac-completion-face ((,class (:underline nil :foreground "#C0C0C0")))) ; like Google - `(ace-jump-face-foreground ((,class (:foreground "black" :background "#FBE448")))) + `(ace-jump-face-foreground ((,class (:weight bold :foreground "black" :background "#FEA500")))) + `(ahs-face ((,class (:background "#E4E4FF")))) + `(ahs-definition-face ((,class (:background "#FFB6C6")))) + `(ahs-plugin-defalt-face ((,class (:background "#FFE4FF")))) ; Current. + `(anzu-match-1 ((,class (:foreground "black" :background "aquamarine")))) + `(anzu-match-2 ((,class (:foreground "black" :background "springgreen")))) + `(anzu-match-3 ((,class (:foreground "black" :background "red")))) + `(anzu-mode-line ((,class (:foreground "black" :background "#80FF80")))) + `(anzu-mode-line-no-match ((,class (:foreground "black" :background "#FF8080")))) + `(anzu-replace-highlight ((,class (:inherit query-replace)))) + `(anzu-replace-to ((,class (:weight bold :foreground "#BD33FD" :background "#FDBD33")))) `(auto-dim-other-buffers-face ((,class (:background "#F7F7F7")))) + `(avy-background-face ((,class (:background "#A9A9A9")))) + `(avy-lead-face ((,class (:weight bold :foreground "black" :background "#FEA500")))) `(bbdb-company ((,class (:slant italic :foreground "steel blue")))) `(bbdb-field-name ((,class (:weight bold :foreground "steel blue")))) `(bbdb-field-value ((,class (:foreground "steel blue")))) `(bbdb-name ((,class (:underline t :foreground "#FF6633")))) - `(bmkp-light-autonamed ((,class (:background "#C2DDFD")))) - `(bmkp-light-fringe-autonamed ((,class (:background "#90AFD5")))) - `(bmkp-light-fringe-non-autonamed ((,class (:background "#D5FFD5")))) - `(bmkp-light-non-autonamed ((,class (:background "#C4FFC4")))) - `(browse-kill-ring-separator-face ((,class (:weight bold :foreground "slate gray")))) + `(bmkp-light-autonamed ((,class (:background "#F0F0F0")))) + `(bmkp-light-fringe-autonamed ((,class (:foreground "#5A5A5A" :background "#D4D4D4")))) + `(bmkp-light-fringe-non-autonamed ((,class (:foreground "#FFFFCC" :background "#01FFFB")))) ; default + `(bmkp-light-non-autonamed ((,class (:background "#BFFFFE")))) + `(bmkp-no-local ((,class (:background "pink")))) + `(browse-kill-ring-separator-face ((,class (:foreground "red")))) + `(calendar-month-header ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) `(calendar-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) + `(calendar-weekday-header ((,class (:weight bold :foreground "#1662AF")))) + `(calendar-weekend-header ((,class (:weight bold :foreground "#4E4E4E")))) `(cfw:face-annotation ((,class (:foreground "green" :background "red")))) `(cfw:face-day-title ((,class (:foreground "#C9C9C9")))) `(cfw:face-default-content ((,class (:foreground "#2952A3")))) @@ -299,12 +388,14 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(cfw:face-sunday ((,class (:foreground "#4E4E4E" :background "white" :weight bold)))) `(cfw:face-title ((,class (:height 2.0 :foreground "#676767" :weight bold :inherit variable-pitch)))) `(cfw:face-today ((,class (:foreground "#4F4A3D" :background "#FFFFCC")))) - `(cfw:face-today-title ((,class (:foreground "#4A95EB" :background "#FFFFCC")))) + `(cfw:face-today-title ((,class (:foreground "white" :background "#1766B1")))) `(cfw:face-toolbar ((,class (:background "white")))) `(cfw:face-toolbar-button-off ((,class (:foreground "#CFCFCF" :background "white")))) `(cfw:face-toolbar-button-on ((,class (:foreground "#5E5E5E" :background "#F6F6F6")))) - `(change-log-date-face ((,class (:foreground "purple")))) + `(change-log-date ((,class (:foreground "purple")))) `(change-log-file ((,class (:weight bold :foreground "#4183C4")))) + `(change-log-list ((,class (:foreground "black" :background "#75EEC7")))) + `(change-log-name ((,class (:foreground "#008000")))) `(circe-highlight-all-nicks-face ((,class (:foreground "blue" :background "#F0F0F0")))) ; other nick names `(circe-highlight-nick-face ((,class (:foreground "#009300" :background "#F0F0F0")))) ; messages with my nick cited `(circe-my-message-face ((,class (:foreground "#8B8B8B" :background "#F0F0F0")))) @@ -314,15 +405,38 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(comint-highlight-input ((,class (:weight bold :foreground "#0000FF" :inherit nil)))) ;; `(comint-highlight-prompt ((,class (:weight bold :foreground "black" :background "gold")))) `(comint-highlight-prompt ((,class (:weight bold :foreground "#0000FF" :inherit nil)))) - `(company-preview-common ((,class (:foreground "#C0C0C0" :background "#FFFFD7")))) ; same background as highlight-line - `(company-tooltip-annotation ((,class (:foreground "#999999" :background "cornsilk")))) - `(company-tooltip-common ((,class (:weight bold :inherit company-tooltip)))) - `(company-tooltip-common-selection ((,class (:weight bold :inherit company-tooltip-selection)))) + + ;; `(ac-selection-face ((,class ,completion-selected-candidate))) + `(ac-selection-face ((,class (:weight bold :foreground "white" :background "orange")))) ; TEMP For diff'ing AC from Comp. + `(ac-candidate-face ((,class ,completion-other-candidates))) + `(ac-completion-face ((,class ,completion-inline))) + `(ac-candidate-mouse-face ((,class (:inherit highlight)))) + `(popup-scroll-bar-background-face ((,class (:background "#EBF4FE")))) + `(popup-scroll-bar-foreground-face ((,class (:background "#D1DAE4")))) ; Scrollbar (visible). + + `(company-tooltip-common-selection ((,class (:weight normal :foreground "#F9ECCC" :inherit company-tooltip-selection)))) ; Prefix + common part in tooltip (for selection). + `(company-tooltip-selection ((,class ,completion-selected-candidate))) ; Suffix in tooltip (for selection). + `(company-tooltip-annotation-selection ((,class (:weight normal :foreground "#F9ECCC")))) ; Annotation (for selection). + + `(company-tooltip-common ((,class (:weight normal :foreground "#B000B0" :inherit company-tooltip)))) ; Prefix + common part in tooltip. + `(company-tooltip ((,class ,completion-other-candidates))) ; Suffix in tooltip. + `(company-tooltip-annotation ((,class (:weight normal :foreground "#2415FF")))) ; Annotation. + + `(company-preview-common ((,class ,completion-inline))) + + `(company-scrollbar-bg ((,class (:background "#EBF4FE")))) + `(company-scrollbar-fg ((,class (:background "#D1DAE4")))) ; Scrollbar (visible). + `(compare-windows ((,class (:background "#FFFF00")))) - `(compilation-error ((,class (:weight bold :foreground "red")))) - `(compilation-info ((,class (:weight bold :foreground "#2A489E")))) ; used for grep - `(compilation-line-number ((,class (:weight bold :foreground "#A535AE")))) + ;; `(completions-common-part ((,class (:foreground "red" :weight bold)))) + ;; `(completions-first-difference ((,class (:foreground "green" :weight bold)))) + `(compilation-error ((,class (:weight bold :foreground "red")))) ; Used for grep error messages. + `(compilation-info ((,class (:weight bold :foreground "#6784d7")))) + `(compilation-line-number ((,class ,grep-line-number))) `(compilation-warning ((,class (:weight bold :foreground "orange")))) + `(compilation-mode-line-exit ((,class (:weight bold :foreground "green")))) ; :exit[matched] + `(compilation-mode-line-fail ((,class (:weight bold :foreground "violet")))) ; :exit[no match] + `(compilation-mode-line-run ((,class (:weight bold :foreground "orange")))) ; :run `(css-property ((,class (:foreground "#00AA00")))) `(css-selector ((,class (:weight bold :foreground "blue")))) `(custom-button ((,class (:box (:line-width 2 :style released-button) :foreground "black" :background "lightgrey")))) @@ -348,11 +462,14 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(custom-variable-button ((,class (:weight bold :underline t)))) `(custom-variable-tag ((,class (:family "Sans Serif" :height 1.2 :weight bold :foreground "blue1")))) `(custom-visibility ((,class ,link))) - `(diff-hl-change ((,class (:foreground "blue3" :inherit diff-changed)))) - `(diff-hl-delete ((,class (:foreground "red3" :inherit diff-removed)))) - `(diff-hl-dired-change ((,class (:background "#FFA335" :foreground "black" :weight bold)))) + `(diff-hl-change ((,class (:foreground "blue3" :background "#DBEDFF")))) + `(diff-hl-delete ((,class (:foreground "red3" :background "#FFDCE0")))) + `(diff-hl-dired-change ((,class (:weight bold :foreground "black" :background "#FFA335")))) + `(diff-hl-dired-delete ((,class (:weight bold :foreground "#D73915")))) + `(diff-hl-dired-ignored ((,class (:weight bold :foreground "white" :background "#C0BBAB")))) + `(diff-hl-dired-insert ((,class (:weight bold :foreground "#B9B9BA")))) `(diff-hl-dired-unknown ((,class (:foreground "white" :background "#3F3BB4")))) - `(diff-hl-insert ((,class (:foreground "green4" :inherit diff-added)))) + `(diff-hl-insert ((,class (:foreground "green4" :background "#CDFFD8")))) `(diff-hl-unknown ((,class (:foreground "white" :background "#3F3BB4")))) `(diary-face ((,class (:foreground "#87C9FC")))) `(dircolors-face-asm ((,class (:foreground "black")))) @@ -385,17 +502,36 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(diredp-compressed-file-suffix ((,class (:foreground "red")))) `(diredp-date-time ((,class (:foreground "purple")))) `(diredp-dir-heading ((,class ,directory))) + `(diredp-dir-name ((,class ,directory))) `(diredp-dir-priv ((,class ,directory))) `(diredp-exec-priv ((,class (:background "#03C03C")))) `(diredp-executable-tag ((,class (:foreground "ForestGreen" :background "white")))) - `(diredp-file-name ((,class (:foreground "black")))) + `(diredp-file-name ((,class ,file))) `(diredp-file-suffix ((,class (:foreground "#C0C0C0")))) `(diredp-flag-mark-line ((,class ,marked-line))) `(diredp-ignored-file-name ((,class ,shadow))) `(diredp-read-priv ((,class (:background "#0A99FF")))) `(diredp-write-priv ((,class (:foreground "white" :background "#FF4040")))) + `(eldoc-highlight-function-argument ((,class (:weight bold :foreground "red" :background "#FFE4FF")))) + `(elfeed-search-filter-face ((,class (:foreground "gray")))) + ;; `(eww-form-checkbox ((,class ()))) + ;; `(eww-form-select ((,class ()))) + ;; `(eww-form-submit ((,class ()))) + `(eww-form-text ((,class (:weight bold :foreground "#40586F" :background "#A7CDF1")))) + ;; `(eww-form-textarea ((,class ()))) `(file-name-shadow ((,class ,shadow))) + `(flycheck-error ((,class (:underline (:color "#FE251E" :style wave) :weight bold :background "#FFE1E1")))) + `(flycheck-error-list-line-number ((,class (:foreground "#A535AE")))) + `(flycheck-fringe-error ((,class (:foreground "#FE251E")))) + `(flycheck-fringe-info ((,class (:foreground "#158A15")))) + `(flycheck-fringe-warning ((,class (:foreground "#F4A939")))) + `(flycheck-info ((,class (:underline (:color "#158A15" :style wave) :weight bold)))) + `(flycheck-warning ((,class (:underline (:color "#F4A939" :style wave) :weight bold :background "#FFFFBE")))) `(font-latex-bold-face ((,class (:weight bold :foreground "black")))) + `(fancy-narrow-blocked-face ((,class (:foreground "#9998A4")))) + `(flycheck-color-mode-line-error-face ((, class (:background "#CF5B56")))) + `(flycheck-color-mode-line-warning-face ((, class (:background "#EBC700")))) + `(flycheck-color-mode-line-info-face ((, class (:background "yellow")))) `(font-latex-italic-face ((,class (:slant italic :foreground "#1A1A1A")))) `(font-latex-math-face ((,class (:foreground "blue")))) `(font-latex-sectioning-1-face ((,class (:family "Sans Serif" :height 2.7 :weight bold :foreground "cornflower blue")))) @@ -408,36 +544,65 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(font-latex-verbatim-face ((,class (:foreground "#000088" :background "#FFFFE0" :inherit nil)))) `(git-commit-summary-face ((,class (:foreground "#000000")))) `(git-commit-comment-face ((,class (:slant italic :foreground "#696969")))) + `(git-timemachine-commit ((,class ,diff-removed))) + `(git-timemachine-minibuffer-author-face ((,class ,diff-added))) + `(git-timemachine-minibuffer-detail-face ((,class ,diff-header))) + `(google-translate-text-face ((,class (:foreground "#777777" :background "#F5F5F5")))) + `(google-translate-phonetic-face ((,class (:inherit shadow)))) + `(google-translate-translation-face ((,class (:weight normal :foreground "#3079ED" :background "#E3EAF2")))) + `(google-translate-suggestion-label-face ((,class (:foreground "red")))) + `(google-translate-suggestion-face ((,class (:slant italic :underline t)))) + `(google-translate-listen-button-face ((,class (:height 0.8)))) `(helm-action ((,class (:foreground "black")))) + `(helm-bookmark-file ((,class ,file))) `(helm-bookmarks-su-face ((,class (:foreground "red")))) + `(helm-buffer-directory ((,class ,directory))) + ;; `(helm-non-file-buffer ((,class (:slant italic :foreground "blue")))) + ;; `(helm-buffer-file ((,class (:foreground "#333333")))) + `(helm-buffer-modified ((,class (:slant italic :foreground "#BA36A5")))) `(helm-buffer-process ((,class (:foreground "#008200")))) `(helm-candidate-number ((,class (:foreground "black" :background "#FFFF66")))) `(helm-dir-heading ((,class (:foreground "blue" :background "pink")))) `(helm-dir-priv ((,class (:foreground "dark red" :background "light grey")))) `(helm-ff-directory ((,class ,directory))) + `(helm-ff-dotted-directory ((,class ,directory))) `(helm-ff-executable ((,class (:foreground "green3" :background "white")))) `(helm-ff-file ((,class (:foreground "black")))) `(helm-ff-invalid-symlink ((,class (:foreground "yellow" :background "red")))) `(helm-ff-symlink ((,class ,symlink))) `(helm-file-name ((,class (:foreground "blue")))) `(helm-gentoo-match-face ((,class (:foreground "red")))) + `(helm-grep-file ((,class ,grep-file-name))) + `(helm-grep-lineno ((,class ,grep-line-number))) `(helm-grep-match ((,class ,match))) `(helm-grep-running ((,class (:weight bold :foreground "white")))) - `(helm-grep-lineno ((,class ,shadow))) `(helm-isearch-match ((,class (:background "#CCFFCC")))) + `(helm-lisp-show-completion ((,class ,volatile-highlight-supersize))) ; See `helm-dabbrev'. + ;; `(helm-ls-git-added-copied-face ((,class (:foreground "")))) + ;; `(helm-ls-git-added-modified-face ((,class (:foreground "")))) + ;; `(helm-ls-git-conflict-face ((,class (:foreground "")))) + ;; `(helm-ls-git-deleted-and-staged-face ((,class (:foreground "")))) + ;; `(helm-ls-git-deleted-not-staged-face ((,class (:foreground "")))) + ;; `(helm-ls-git-modified-and-staged-face ((,class (:foreground "")))) + `(helm-ls-git-modified-not-staged-face ((,class (:foreground "#BA36A5")))) + ;; `(helm-ls-git-renamed-modified-face ((,class (:foreground "")))) + ;; `(helm-ls-git-untracked-face ((,class (:foreground "")))) `(helm-match ((,class ,match))) `(helm-moccur-buffer ((,class (:foreground "#0066CC")))) - `(helm-selection ((,class ,volatile-highlight))) - `(helm-selection-line ((,class ,volatile-highlight))) - `(helm-source-header ((,class (:family "Sans Serif" :height 1.3 :weight bold :foreground "white" :background "#2F69BF")))) - `(helm-swoop-target-line-face ((,class ,volatile-highlight))) + `(helm-selection ((,class (:background "#3875D6" :foreground "white")))) + `(helm-selection-line ((,class ,highlight-gray))) ; ??? + `(helm-separator ((,class (:foreground "red")))) + `(helm-source-header ((,class (:weight bold :box (:line-width 1 :color "#C7C7C7") :background "#DEDEDE" :foreground "black")))) `(helm-swoop-target-line-block-face ((,class (:background "#CCCC00" :foreground "#222222")))) + `(helm-swoop-target-line-face ((,class (:background "#CCCCFF")))) `(helm-swoop-target-word-face ((,class (:weight bold :foreground nil :background "#FDBD33")))) `(helm-visible-mark ((,class ,marked-line))) `(helm-w3m-bookmarks-face ((,class (:underline t :foreground "cyan1")))) + `(highlight-changes ((,class (:foreground nil)))) ;; blue "#2E08B5" + `(highlight-changes-delete ((,class (:strike-through nil :foreground nil)))) ;; red "#B5082E" `(highlight-symbol-face ((,class (:background "#FFFFA0")))) - `(hl-line ((,class ,highlight-line))) - `(hl-tags-face ((,class (:background "#FEFCAE")))) + `(hl-line ((,class ,highlight-yellow))) ; Highlight current line. + `(hl-tags-face ((,class ,highlight-current-tag))) ; ~ Pair highlighting (matching tags). `(holiday-face ((,class (:foreground "#777777" :background "#E4EBFE")))) `(html-helper-bold-face ((,class (:weight bold :foreground "black")))) `(html-helper-italic-face ((,class (:slant italic :foreground "black")))) @@ -448,9 +613,11 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(ilog-echo-face ((,class (:height 2.0 :foreground "#006FE0")))) `(ilog-load-face ((,class (:foreground "#BA36A5")))) `(ilog-message-face ((,class (:foreground "#808080")))) + `(indent-guide-face ((,class (:foreground "#D3D3D3")))) `(info-file ((,class (:family "Sans Serif" :height 1.8 :weight bold :box (:line-width 1 :color "#0000CC") :foreground "cornflower blue" :background "LightSteelBlue1")))) `(info-header-node ((,class (:underline t :foreground "orange")))) ; nodes in header `(info-header-xref ((,class (:underline t :foreground "dodger blue")))) ; cross references in header + `(info-index-match ((,class (:weight bold :foreground nil :background "#FDBD33")))) ; when using `i' `(info-menu-header ((,class ,ol2))) ; menu titles (headers) -- major topics `(info-menu-star ((,class (:foreground "black")))) ; every 3rd menu item `(info-node ((,class (:underline t :foreground "blue")))) ; node names @@ -459,16 +626,49 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(info-title-1 ((,class ,ol1))) `(info-xref ((,class (:underline t :foreground "#006DAF")))) ; unvisited cross-references `(info-xref-visited ((,class (:underline t :foreground "magenta4")))) ; previously visited cross-references + ;; js2-highlight-vars-face (~ auto-highlight-symbol) + `(js2-error ((,class (:box (:line-width 1 :color "#FF3737") :background "#FFC8C8")))) ; DONE. + `(js2-external-variable ((,class (:foreground "#FF0000" :background "#FFF8F8")))) ; DONE. + `(js2-function-param ((,class ,function-param))) + `(js2-instance-member ((,class (:foreground "DarkOrchid")))) + `(js2-jsdoc-html-tag-delimiter ((,class (:foreground "#D0372D")))) + `(js2-jsdoc-html-tag-name ((,class (:foreground "#D0372D")))) + `(js2-jsdoc-tag ((,class (:weight normal :foreground "#6434A3")))) + `(js2-jsdoc-type ((,class (:foreground "SteelBlue")))) + `(js2-jsdoc-value ((,class (:weight normal :foreground "#BA36A5")))) ; #800080 + `(js2-magic-paren ((,class (:underline t)))) + `(js2-private-function-call ((,class (:foreground "goldenrod")))) + `(js2-private-member ((,class (:foreground "PeachPuff3")))) + `(js2-warning ((,class (:underline "orange")))) + + ;; Org non-standard faces. + `(leuven-org-deadline-overdue ((,class (:foreground "#F22659")))) + `(leuven-org-deadline-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) + `(leuven-org-deadline-tomorrow ((,class (:foreground "#40A80B")))) + `(leuven-org-deadline-future ((,class (:foreground "#40A80B")))) + `(leuven-gnus-unseen ((,class (:weight bold :foreground "#FC7202")))) + `(leuven-gnus-date ((,class (:foreground "#FF80BF")))) + `(leuven-gnus-size ((,class (:foreground "#8FBF60")))) + `(leuven-todo-items-face ((,class (:weight bold :foreground "#FF3125" :background "#FFFF88")))) + `(light-symbol-face ((,class (:background "#FFFFA0")))) - `(linum ((,class (:inherit (default shadow) :foreground "#9A9A9A" :background "#EDEDED")))) + `(linum ((,class (:foreground "#9A9A9A" :background "#EDEDED")))) `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5")))) + `(log-view-message ((,class (:foreground "black" :background "#EDEA74")))) + `(lsp-ui-doc-background ((,class (:background "#F6FECD")))) `(lui-button-face ((,class ,link))) `(lui-highlight-face ((,class (:box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88")))) ; my nickname `(lui-time-stamp-face ((,class (:foreground "purple")))) + `(magit-blame-header ((,class (:inherit magit-diff-file-header)))) + `(magit-blame-heading ((,class (:overline "#A7A7A7" :foreground "red" :background "#E6E6E6")))) + `(magit-blame-hash ((,class (:overline "#A7A7A7" :foreground "red" :background "#E6E6E6")))) + `(magit-blame-name ((,class (:overline "#A7A7A7" :foreground "#036A07" :background "#E6E6E6")))) + `(magit-blame-date ((,class (:overline "#A7A7A7" :foreground "blue" :background "#E6E6E6")))) + `(magit-blame-summary ((,class (:overline "#A7A7A7" :weight bold :foreground "#707070" :background "#E6E6E6")))) `(magit-branch ((,class ,vc-branch))) `(magit-diff-add ((,class ,diff-added))) `(magit-diff-del ((,class ,diff-removed))) - `(magit-diff-file-header ((,class (:family "Sans Serif" :height 1.1 :weight bold :foreground "#4183C4")))) + `(magit-diff-file-header ((,class (:height 1.1 :weight bold :foreground "#4183C4")))) `(magit-diff-hunk-header ((,class ,diff-hunk-header))) `(magit-diff-none ((,class ,diff-none))) `(magit-header ((,class (:foreground "white" :background "#FF4040")))) @@ -476,48 +676,82 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(magit-item-mark ((,class ,marked-line))) `(magit-log-head-label ((,class (:box (:line-width 1 :color "blue" :style nil))))) `(magit-log-tag-label ((,class (:box (:line-width 1 :color "#00CC00" :style nil))))) + `(magit-section-highlight ((,class (:background "#F6FECD")))) `(magit-section-title ((,class (:family "Sans Serif" :height 1.8 :weight bold :foreground "cornflower blue" :inherit nil)))) `(makefile-space-face ((,class (:background "hot pink")))) `(makefile-targets ((,class (:weight bold :foreground "blue")))) - `(match ((,class ,match))) + ;; `(markdown-blockquote-face ((,class ()))) + `(markdown-bold-face ((,class (:inherit bold)))) + ;; `(markdown-comment-face ((,class ()))) + ;; `(markdown-footnote-face ((,class ()))) + ;; `(markdown-header-delimiter-face ((,class ()))) + ;; `(markdown-header-face ((,class ()))) + `(markdown-header-face-1 ((,class ,ol1))) + `(markdown-header-face-2 ((,class ,ol2))) + `(markdown-header-face-3 ((,class ,ol3))) + `(markdown-header-face-4 ((,class ,ol4))) + `(markdown-header-face-5 ((,class ,ol5))) + `(markdown-header-face-6 ((,class ,ol6))) + ;; `(markdown-header-rule-face ((,class ()))) + `(markdown-inline-code-face ((,class ,code-inline))) + `(markdown-italic-face ((,class (:inherit italic)))) + `(markdown-language-keyword-face ((,class (:inherit org-block-begin-line)))) + ;; `(markdown-line-break-face ((,class ()))) + `(markdown-link-face ((,class ,link-no-underline))) + ;; `(markdown-link-title-face ((,class ()))) + ;; `(markdown-list-face ((,class ()))) + ;; `(markdown-math-face ((,class ()))) + ;; `(markdown-metadata-key-face ((,class ()))) + ;; `(markdown-metadata-value-face ((,class ()))) + ;; `(markdown-missing-link-face ((,class ()))) + `(markdown-pre-face ((,class (:inherit org-block-background)))) + ;; `(markdown-reference-face ((,class ()))) + ;; `(markdown-strike-through-face ((,class ()))) + `(markdown-url-face ((,class ,link))) + `(match ((,class ,match))) ; Used for grep matches. + `(mc/cursor-bar-face ((,class (:height 1.0 :foreground "#1664C4" :background "#1664C4")))) + `(mc/cursor-face ((,class (:inverse-video t)))) + `(mc/region-face ((,class (:inherit region)))) `(mm-uu-extract ((,class ,code-block))) `(moccur-current-line-face ((,class (:foreground "black" :background "#FFFFCC")))) `(moccur-face ((,class (:foreground "black" :background "#FFFF99")))) - `(next-error ((,class ,volatile-highlight))) + `(next-error ((,class ,volatile-highlight-supersize))) `(nobreak-space ((,class (:background "#CCE8F6")))) - `(nxml-attribute-local-name-face ((,class (:foreground "magenta")))) + `(nxml-attribute-local-name-face ((,class ,xml-attribute))) `(nxml-attribute-value-delimiter-face ((,class (:foreground "green4")))) `(nxml-attribute-value-face ((,class (:foreground "green4")))) `(nxml-comment-content-face ((,class (:slant italic :foreground "red")))) `(nxml-comment-delimiter-face ((,class (:foreground "red")))) - `(nxml-element-local-name ((,class (:box (:line-width 1 :color "#999999") :foreground "#000088" :background "#DEDEDE")))) + `(nxml-element-local-name ((,class ,xml-tag))) `(nxml-element-local-name-face ((,class (:foreground "blue")))) `(nxml-processing-instruction-target-face ((,class (:foreground "purple1")))) `(nxml-tag-delimiter-face ((,class (:foreground "blue")))) `(nxml-tag-slash-face ((,class (:foreground "blue")))) `(org-agenda-block-count ((,class (:weight bold :foreground "#A5A5A5")))) - `(org-agenda-calendar-event ((,class (:weight bold :foreground "#3774CC" :background "#A8C5EF")))) - `(org-agenda-calendar-sexp ((,class (:foreground "#777777" :background "#E4EBFE")))) + `(org-agenda-calendar-event ((,class (:weight bold :foreground "#3774CC" :background "#E4EBFE")))) + `(org-agenda-calendar-sexp ((,class (:foreground "#327ACD" :background "#F3F7FC")))) `(org-agenda-clocking ((,class (:foreground "black" :background "#EEC900")))) `(org-agenda-column-dateline ((,class ,column))) `(org-agenda-current-time ((,class (:underline t :foreground "#1662AF")))) - `(org-agenda-date ((,class (:height 1.6 :weight bold :foreground "#1662AF")))) - `(org-agenda-date-today ((,class (:height 1.6 :weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) - `(org-agenda-date-weekend ((,class (:height 1.6 :weight bold :foreground "#4E4E4E")))) + `(org-agenda-date ((,class (,@(leuven-scale-font leuven-scale-org-agenda-structure 1.6) :weight bold :foreground "#1662AF")))) + `(org-agenda-date-today ((,class (,@(leuven-scale-font leuven-scale-org-agenda-structure 1.6) :weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) + `(org-agenda-date-weekend ((,class (,@(leuven-scale-font leuven-scale-org-agenda-structure 1.6) :weight bold :foreground "#4E4E4E")))) `(org-agenda-diary ((,class (:weight bold :foreground "green4" :background "light blue")))) `(org-agenda-dimmed-todo-face ((,class (:foreground "gold2")))) `(org-agenda-done ((,class (:foreground "#555555")))) `(org-agenda-filter-category ((,class (:weight bold :foreground "orange")))) + `(org-agenda-filter-effort ((,class (:weight bold :foreground "orange")))) + `(org-agenda-filter-regexp ((,class (:weight bold :foreground "orange")))) `(org-agenda-filter-tags ((,class (:weight bold :foreground "orange")))) `(org-agenda-restriction-lock ((,class (:background "#E77D63")))) - `(org-agenda-structure ((,class (:height 1.6 :weight bold :foreground "#1F8DD6")))) + `(org-agenda-structure ((,class (,@(leuven-scale-font leuven-scale-org-agenda-structure 1.6) :weight bold :foreground "#1F8DD6")))) `(org-archived ((,class (:foreground "gray70")))) `(org-beamer-tag ((,class (:box (:line-width 1 :color "#FABC18") :foreground "#2C2C2C" :background "#FFF8D0")))) `(org-block ((,class ,code-block))) - `(org-block-background ((,class (:background "#FFFFE0")))) + `(org-block-background ((,class (:background "#FFFFE0")))) ;; :inherit fixed-pitch)))) `(org-block-begin-line ((,class (:underline "#A7A6AA" :foreground "#555555" :background "#E2E1D5")))) `(org-block-end-line ((,class (:overline "#A7A6AA" :foreground "#555555" :background "#E2E1D5")))) - `(org-checkbox ((,class (:weight bold :box (:line-width 1 :style pressed-button) :foreground "white" :background "#777777")))) + `(org-checkbox ((,class (:weight bold :box (:line-width 1 :style pressed-button) :foreground "#123555" :background "#A3A3A3")))) `(org-clock-overlay ((,class (:foreground "white" :background "SkyBlue4")))) `(org-code ((,class ,code-inline))) `(org-column ((,class ,column))) @@ -527,14 +761,14 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-dim ((,class (:foreground "#AAAAAA")))) `(org-document-info ((,class (:foreground "#484848")))) `(org-document-info-keyword ((,class (:foreground "#008ED1" :background "#EAEAFF")))) - `(org-document-title ((,class (:family "Sans Serif" :height 1.8 :weight bold :foreground "black")))) + `(org-document-title ((,class (:height 1.8 :weight bold :foreground "black")))) `(org-done ((,class (:weight bold :box (:line-width 1 :color "#BBBBBB") :foreground "#BBBBBB" :background "#F0F0F0")))) - `(org-drawer ((,class (:foreground "light sky blue")))) - `(org-ellipsis ((,class (:underline nil :box (:line-width 1 :color "#999999") :foreground "#999999" :background "#FFF8C0")))) ; #FFEE62 + `(org-drawer ((,class (:weight bold :foreground "#00BB00" :background "#EAFFEA" :extend nil)))) + `(org-ellipsis ((,class (:underline nil :foreground "#999999")))) ; #FFEE62 `(org-example ((,class (:foreground "blue" :background "#EAFFEA")))) `(org-footnote ((,class (:underline t :foreground "#008ED1")))) `(org-formula ((,class (:foreground "chocolate1")))) - `(org-headline-done ((,class (:height 1.0 :weight normal :strike-through t :foreground "#ADADAD")))) + `(org-headline-done ((,class (:height 1.0 :weight normal :foreground "#ADADAD")))) `(org-hide ((,class (:foreground "#E2E2E2")))) `(org-inlinetask ((,class (:box (:line-width 1 :color "#EBEBEB") :foreground "#777777" :background "#FFFFD6")))) `(org-latex-and-related ((,class (:foreground "#336699" :background "white")))) @@ -548,25 +782,25 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-level-8 ((,class ,ol8))) `(org-link ((,class ,link))) `(org-list-dt ((,class (:weight bold :foreground "#335EA8")))) - `(org-macro ((,class (:foreground "white" :background "#EDB802")))) + `(org-macro ((,class (:weight bold :foreground "#EDB802")))) `(org-meta-line ((,class (:slant normal :foreground "#008ED1" :background "#EAEAFF")))) - `(org-mode-line-clock ((,class ,clock-line))) + `(org-mode-line-clock ((,class (:box (:line-width 1 :color "#335EA8") :foreground "black" :background "#FFA335")))) `(org-mode-line-clock-overrun ((,class (:weight bold :box (:line-width 1 :color "#335EA8") :foreground "white" :background "#FF4040")))) `(org-number-of-items ((,class (:weight bold :foreground "white" :background "#79BA79")))) `(org-property-value ((,class (:foreground "#00A000")))) `(org-quote ((,class (:slant italic :foreground "dim gray" :background "#FFFFE0")))) `(org-scheduled ((,class (:foreground "#333333")))) - `(org-scheduled-previously ((,class (:foreground "#F22659")))) + `(org-scheduled-previously ((,class (:foreground "#1466C6")))) `(org-scheduled-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) `(org-sexp-date ((,class (:foreground "#3774CC")))) `(org-special-keyword ((,class (:weight bold :foreground "#00BB00" :background "#EAFFEA")))) - `(org-table ((,class (:foreground "dark green" :background "#EAFFEA")))) + `(org-table ((,class (:foreground "dark green" :background "#EAFFEA")))) ;; :inherit fixed-pitch)))) `(org-tag ((,class (:weight normal :slant italic :foreground "#9A9FA4" :background "white")))) - `(org-target ((,class ,link))) + `(org-target ((,class (:foreground "#FF6DAF")))) `(org-time-grid ((,class (:foreground "#CFCFCF")))) `(org-todo ((,class (:weight bold :box (:line-width 1 :color "#D8ABA7") :foreground "#D8ABA7" :background "#FFE6E4")))) `(org-upcoming-deadline ((,class (:foreground "#FF5555")))) - `(org-verbatim ((,class (:foreground "#0066CC")))) + `(org-verbatim ((,class (:foreground "#0066CC" :background "#F7FDFF")))) `(org-verse ((,class (:slant italic :foreground "dim gray" :background "#EEEEEE")))) `(org-warning ((,class (:weight bold :foreground "black" :background "#CCE7FF")))) `(outline-1 ((,class ,ol1))) @@ -577,17 +811,17 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(outline-6 ((,class ,ol6))) `(outline-7 ((,class ,ol7))) `(outline-8 ((,class ,ol8))) - `(pabbrev-debug-display-label-face ((,class (:background "chartreuse")))) + `(pabbrev-debug-display-label-face ((,class (:foreground "white" :background "#A62154")))) `(pabbrev-suggestions-face ((,class (:weight bold :foreground "white" :background "red")))) `(pabbrev-suggestions-label-face ((,class (:weight bold :foreground "white" :background "purple")))) `(paren-face-match ((,class ,paren-matched))) `(paren-face-mismatch ((,class ,paren-unmatched))) `(paren-face-no-match ((,class ,paren-unmatched))) `(persp-selected-face ((,class (:weight bold :foreground "#EEF5FE")))) - `(powerline-active1 ((,class (:background "grey22" :inherit mode-line)))) - `(powerline-active2 ((,class (:background "#4070B6" :inherit mode-line)))) - `(powerline-inactive1 ((,class (:background "#686868" :inherit mode-line-inactive)))) - `(powerline-inactive2 ((,class (:background "#A9A9A9" :inherit mode-line-inactive)))) + `(powerline-active1 ((,class (:foreground "#85CEEB" :background "#383838" :inherit mode-line)))) + `(powerline-active2 ((,class (:foreground "#85CEEB" :background "#4070B6" :inherit mode-line)))) + `(powerline-inactive1 ((,class (:foreground "#F0F0EF" :background "#686868" :inherit mode-line-inactive)))) + `(powerline-inactive2 ((,class (:foreground "#F0F0EF" :background "#A9A9A9" :inherit mode-line-inactive)))) `(rainbow-delimiters-depth-1-face ((,class (:foreground "#707183")))) `(rainbow-delimiters-depth-2-face ((,class (:foreground "#7388D6")))) `(rainbow-delimiters-depth-3-face ((,class (:foreground "#909183")))) @@ -599,29 +833,33 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(rainbow-delimiters-depth-9-face ((,class (:foreground "#887070")))) `(rainbow-delimiters-mismatched-face ((,class ,paren-unmatched))) `(rainbow-delimiters-unmatched-face ((,class ,paren-unmatched))) - `(realgud-overlay-arrow1 ((,class (:foreground "#005522")))) - `(realgud-overlay-arrow2 ((,class (:foreground "#c18401")))) - `(realgud-overlay-arrow3 ((,class (:foreground "#909183")))) - `(realgud-bp-disabled-face ((,class (:foreground "#909183")))) - `(realgud-bp-line-enabled-face ((,class (:underline "red")))) - `(realgud-bp-line-disabled-face ((,class (:underline "#909183")))) - `(realgud-file-name ((,class :foreground "#005522"))) - `(realgud-line-number ((,class :foreground "#A535AE"))) - `(realgud-backtrace-number ((,class :foreground "#A535AE" :weight bold))) `(recover-this-file ((,class (:weight bold :background "#FF3F3F")))) `(rng-error ((,class (:weight bold :foreground "red" :background "#FBE3E4")))) `(sh-heredoc ((,class (:foreground "blue" :background "#EEF5FE")))) `(sh-quoted-exec ((,class (:foreground "#FF1493")))) - `(shadow ((,class ,shadow))) + `(shadow ((,class ,shadow))) ; Used for grep context lines. `(shell-option-face ((,class (:foreground "forest green")))) `(shell-output-2-face ((,class (:foreground "blue")))) `(shell-output-3-face ((,class (:foreground "purple")))) `(shell-output-face ((,class (:foreground "black")))) ;; `(shell-prompt-face ((,class (:weight bold :foreground "yellow")))) + `(shm-current-face ((,class (:background "#EEE8D5")))) + `(shm-quarantine-face ((,class (:background "lemonchiffon")))) `(show-paren-match ((,class ,paren-matched))) `(show-paren-mismatch ((,class ,paren-unmatched))) `(sml-modeline-end-face ((,class (:background "#6BADF6")))) ; #335EA8 `(sml-modeline-vis-face ((,class (:background "#1979CA")))) + `(term ((,class (:foreground "#333333" :background "#FFFFFF")))) + + ;; `(sp-pair-overlay-face ((,class ()))) + ;; `(sp-show-pair-enclosing ((,class ()))) + ;; `(sp-show-pair-match-face ((,class ()))) ; ~ Pair highlighting (matching tags). + ;; `(sp-show-pair-mismatch-face ((,class ()))) + ;; `(sp-wrap-overlay-closing-pair ((,class ()))) + ;; `(sp-wrap-overlay-face ((,class ()))) + ;; `(sp-wrap-overlay-opening-pair ((,class ()))) + ;; `(sp-wrap-tag-overlay-face ((,class ()))) + `(speedbar-button-face ((,class (:foreground "green4")))) `(speedbar-directory-face ((,class (:foreground "blue4")))) `(speedbar-file-face ((,class (:foreground "cyan4")))) @@ -639,7 +877,6 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(tex-verbatim ((,class (:foreground "blue")))) `(tool-bar ((,class (:box (:line-width 1 :style released-button) :foreground "black" :background "gray75")))) `(tooltip ((,class (:foreground "black" :background "light yellow")))) - `(trailing-whitespace ((,class (:background "#F6EBFE")))) `(traverse-match-face ((,class (:weight bold :foreground "blue violet")))) `(vc-annotate-face-3F3FFF ((,class (:foreground "#3F3FFF" :background "black")))) `(vc-annotate-face-3F6CFF ((,class (:foreground "#3F3FFF" :background "black")))) @@ -654,11 +891,24 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(vc-annotate-face-83FF3F ((,class (:foreground "#B0FF3F" :background "black")))) `(vc-annotate-face-B0FF3F ((,class (:foreground "#B0FF3F" :background "black")))) `(vc-annotate-face-DDFF3F ((,class (:foreground "#FFF33F" :background "black")))) + `(vc-annotate-face-F6FFCC ((,class (:foreground "black" :background "#FFFFC0")))) `(vc-annotate-face-FF3F3F ((,class (:foreground "#FF3F3F" :background "black")))) `(vc-annotate-face-FF6C3F ((,class (:foreground "#FF3F3F" :background "black")))) `(vc-annotate-face-FF993F ((,class (:foreground "#FF993F" :background "black")))) `(vc-annotate-face-FFC63F ((,class (:foreground "#FF993F" :background "black")))) `(vc-annotate-face-FFF33F ((,class (:foreground "#FFF33F" :background "black")))) + + ;; ;; vc + ;; (vc-up-to-date-state ((,c :foreground ,(gc 'green-1)))) + ;; (vc-edited-state ((,c :foreground ,(gc 'yellow+1)))) + ;; (vc-missing-state ((,c :foreground ,(gc 'red)))) + ;; (vc-conflict-state ((,c :foreground ,(gc 'red+2) :weight bold))) + ;; (vc-locked-state ((,c :foreground ,(gc 'cyan-1)))) + ;; (vc-locally-added-state ((,c :foreground ,(gc 'blue)))) + ;; (vc-needs-update-state ((,c :foreground ,(gc 'magenta)))) + ;; (vc-removed-state ((,c :foreground ,(gc 'red-1)))) + + `(vhl/default-face ((,class ,volatile-highlight))) ; `volatile-highlights.el' (for undo, yank). `(w3m-anchor ((,class ,link))) `(w3m-arrived-anchor ((,class (:foreground "purple1")))) `(w3m-bitmap-image-face ((,class (:foreground "gray4" :background "green")))) @@ -675,38 +925,138 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(w3m-link-numbering ((,class (:foreground "#B4C7EB")))) ; mouseless browsing `(w3m-strike-through-face ((,class (:strike-through t)))) `(w3m-underline-face ((,class (:underline t)))) - `(which-func ((,class (:weight bold :foreground "white")))) + + ;; `(web-mode-block-attr-name-face ((,class ()))) + ;; `(web-mode-block-attr-value-face ((,class ()))) + ;; `(web-mode-block-comment-face ((,class ()))) + ;; `(web-mode-block-control-face ((,class ()))) + ;; `(web-mode-block-delimiter-face ((,class ()))) + ;; `(web-mode-block-face ((,class ()))) + ;; `(web-mode-block-string-face ((,class ()))) + ;; `(web-mode-bold-face ((,class ()))) + ;; `(web-mode-builtin-face ((,class ()))) + ;; `(web-mode-comment-face ((,class ()))) + ;; `(web-mode-comment-keyword-face ((,class ()))) + ;; `(web-mode-constant-face ((,class ()))) + ;; `(web-mode-css-at-rule-face ((,class ()))) + ;; `(web-mode-css-color-face ((,class ()))) + ;; `(web-mode-css-comment-face ((,class ()))) + ;; `(web-mode-css-function-face ((,class ()))) + ;; `(web-mode-css-priority-face ((,class ()))) + ;; `(web-mode-css-property-name-face ((,class ()))) + ;; `(web-mode-css-pseudo-class-face ((,class ()))) + ;; `(web-mode-css-selector-face ((,class ()))) + ;; `(web-mode-css-string-face ((,class ()))) + ;; `(web-mode-css-variable-face ((,class ()))) + ;; `(web-mode-current-column-highlight-face ((,class ()))) + `(web-mode-current-element-highlight-face ((,class (:background "#99CCFF")))) ; #FFEE80 + ;; `(web-mode-doctype-face ((,class ()))) + ;; `(web-mode-error-face ((,class ()))) + ;; `(web-mode-filter-face ((,class ()))) + `(web-mode-folded-face ((,class (:box (:line-width 1 :color "#777777") :foreground "#9A9A6A" :background "#F3F349")))) + ;; `(web-mode-function-call-face ((,class ()))) + ;; `(web-mode-function-name-face ((,class ()))) + ;; `(web-mode-html-attr-custom-face ((,class ()))) + ;; `(web-mode-html-attr-engine-face ((,class ()))) + ;; `(web-mode-html-attr-equal-face ((,class ()))) + `(web-mode-html-attr-name-face ((,class ,xml-attribute))) + ;; `(web-mode-html-attr-value-face ((,class ()))) + ;; `(web-mode-html-entity-face ((,class ()))) + `(web-mode-html-tag-bracket-face ((,class ,xml-tag))) + ;; `(web-mode-html-tag-custom-face ((,class ()))) + `(web-mode-html-tag-face ((,class ,xml-tag))) + ;; `(web-mode-html-tag-namespaced-face ((,class ()))) + ;; `(web-mode-inlay-face ((,class ()))) + ;; `(web-mode-italic-face ((,class ()))) + ;; `(web-mode-javascript-comment-face ((,class ()))) + ;; `(web-mode-javascript-string-face ((,class ()))) + ;; `(web-mode-json-comment-face ((,class ()))) + ;; `(web-mode-json-context-face ((,class ()))) + ;; `(web-mode-json-key-face ((,class ()))) + ;; `(web-mode-json-string-face ((,class ()))) + ;; `(web-mode-jsx-depth-1-face ((,class ()))) + ;; `(web-mode-jsx-depth-2-face ((,class ()))) + ;; `(web-mode-jsx-depth-3-face ((,class ()))) + ;; `(web-mode-jsx-depth-4-face ((,class ()))) + ;; `(web-mode-keyword-face ((,class ()))) + ;; `(web-mode-param-name-face ((,class ()))) + ;; `(web-mode-part-comment-face ((,class ()))) + `(web-mode-part-face ((,class (:background "#FFFFE0")))) + ;; `(web-mode-part-string-face ((,class ()))) + ;; `(web-mode-preprocessor-face ((,class ()))) + `(web-mode-script-face ((,class (:background "#EFF0F1")))) + ;; `(web-mode-sql-keyword-face ((,class ()))) + ;; `(web-mode-string-face ((,class ()))) + ;; `(web-mode-style-face ((,class ()))) + ;; `(web-mode-symbol-face ((,class ()))) + ;; `(web-mode-type-face ((,class ()))) + ;; `(web-mode-underline-face ((,class ()))) + ;; `(web-mode-variable-name-face ((,class ()))) + ;; `(web-mode-warning-face ((,class ()))) + ;; `(web-mode-whitespace-face ((,class ()))) + + `(which-func ((,class (:weight bold :slant italic :foreground "white")))) + ;; `(which-key-command-description-face) + ;; `(which-key-group-description-face) + ;; `(which-key-highlighted-command-face) + ;; `(which-key-key-face) + `(which-key-local-map-description-face ((,class (:weight bold :background "#F3F7FC" :inherit which-key-command-description-face)))) + ;; `(which-key-note-face) + ;; `(which-key-separator-face) + ;; `(which-key-special-key-face) `(widget-button ((,class ,link))) `(widget-button-pressed ((,class (:foreground "red")))) `(widget-documentation ((,class (:foreground "green4")))) `(widget-field ((,class (:background "gray85")))) `(widget-inactive ((,class (:foreground "dim gray")))) `(widget-single-line-field ((,class (:background "gray85")))) - `(yas/field-debug-face ((,class (:background "ivory2")))) - `(yas/field-highlight-face ((,class (:background "DarkSeaGreen1")))) + `(woman-bold ((,class (:weight bold :foreground "#F13D3D")))) + `(woman-italic ((,class (:weight bold :slant italic :foreground "#46BE1B")))) + `(woman-symbol ((,class (:weight bold :foreground "purple")))) + `(yas-field-debug-face ((,class (:foreground "white" :background "#A62154")))) + `(yas-field-highlight-face ((,class (:box (:line-width 1 :color "#838383") :foreground "black" :background "#D4DCD8")))) + + ;; `(ztreep-arrow-face ((,class ()))) + ;; `(ztreep-diff-header-face ((,class ()))) + ;; `(ztreep-diff-header-small-face ((,class ()))) + `(ztreep-diff-model-add-face ((,class (:weight bold :foreground "#008800")))) + `(ztreep-diff-model-diff-face ((,class (:weight bold :foreground "#0044DD")))) + `(ztreep-diff-model-ignored-face ((,class (:strike-through t :foreground "#9E9E9E")))) + `(ztreep-diff-model-normal-face ((,class (:foreground "#000000")))) + ;; `(ztreep-expand-sign-face ((,class ()))) + ;; `(ztreep-header-face ((,class ()))) + ;; `(ztreep-leaf-face ((,class ()))) + ;; `(ztreep-node-face ((,class ()))) + )) (custom-theme-set-variables 'leuven - '(ansi-color-faces-vector - [default default default italic underline success warning error]) - '(ansi-color-names-vector - ["black" "red3" "ForestGreen" "yellow3" "blue" "magenta3" "DeepSkyBlue" "gray50"]) - ; colors used in Shell mode + + ;; highlight-sexp-mode. + '(hl-sexp-background-color "#efebe9") + + '(ansi-color-faces-vector + [default default default italic underline success warning error]) + + ;; Colors used in Shell mode. + '(ansi-color-names-vector + ["black" "red3" "ForestGreen" "yellow3" "blue" "magenta3" "DeepSkyBlue" "gray50"]) ) ;;;###autoload (when (and (boundp 'custom-theme-load-path) load-file-name) - ;; add theme folder to `custom-theme-load-path' when installing over MELPA + ;; Add theme folder to `custom-theme-load-path' when installing over MELPA. (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name)))) (provide-theme 'leuven) +;; This is for the sake of Emacs. ;; Local Variables: +;; time-stamp-end: "$" ;; time-stamp-format: "%:y%02m%02d.%02H%02M" ;; time-stamp-start: "Version: " -;; time-stamp-end: "$" ;; End: ;;; leuven-theme.el ends here commit a8e3b29b2b73292c8497fee8932b04fa07a2c08a Author: Philip K Date: Sat Aug 8 13:59:03 2020 +0200 Use write-region when saving recentf file * lisp/recentf.el (recentf-save-list): Don't generate backups for recentf files (bug#41060). diff --git a/lisp/recentf.el b/lisp/recentf.el index 27918a9739..877edd4be1 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el @@ -1289,7 +1289,8 @@ Write data into the file specified by `recentf-save-file'." (insert "\n \n;; Local Variables:\n" (format ";; coding: %s\n" recentf-save-file-coding-system) ";; End:\n") - (write-file (expand-file-name recentf-save-file)) + (write-region (point-min) (point-max) + (expand-file-name recentf-save-file)) (when recentf-save-file-modes (set-file-modes recentf-save-file recentf-save-file-modes)) nil) commit 8264e8deaf6d67492964b63bb729ab6fcc350781 Author: Philip K Date: Sat Aug 8 13:56:05 2020 +0200 outline-minor-mode-prefix is a key sequence, not a string * lisp/outline.el (outline-minor-mode-prefix): Fix the type (bug#41072). diff --git a/lisp/outline.el b/lisp/outline.el index d2a5d42d74..aa8ed58ad9 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -295,7 +295,7 @@ Turning on outline mode calls the value of `text-mode-hook' and then of "Prefix key to use for Outline commands in Outline minor mode. The value of this variable is checked as part of loading Outline mode. After that, changing the prefix key requires manipulating keymaps." - :type 'string + :type 'key-sequence :group 'outlines :set (lambda (sym val) (define-key outline-minor-mode-map outline-minor-mode-prefix nil) commit 50dd037338784381300f411c64d39a9fbaaa7f5a Author: Philip K Date: Sat Aug 8 13:52:46 2020 +0200 Make Customize changes to outline-minor-mode-prefix happen immediately * lisp/outline.el (outline-minor-mode-prefix): Update the key map after changing the value in Customize (bug#41073). diff --git a/lisp/outline.el b/lisp/outline.el index 28ea8a86e6..d2a5d42d74 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -289,12 +289,18 @@ Turning on outline mode calls the value of `text-mode-hook' and then of (list (list nil (concat "^\\(?:" outline-regexp "\\).*$") 0))) (add-hook 'change-major-mode-hook 'outline-show-all nil t)) +(defvar outline-minor-mode-map) + (defcustom outline-minor-mode-prefix "\C-c@" "Prefix key to use for Outline commands in Outline minor mode. The value of this variable is checked as part of loading Outline mode. After that, changing the prefix key requires manipulating keymaps." :type 'string - :group 'outlines) + :group 'outlines + :set (lambda (sym val) + (define-key outline-minor-mode-map outline-minor-mode-prefix nil) + (define-key outline-minor-mode-map val outline-mode-prefix-map) + (set-default sym val))) ;;;###autoload (define-minor-mode outline-minor-mode commit 1b8f9081b9d06575e81cb2b52bf7f62089f844ac Author: Matthias Meulien Date: Sat Aug 8 13:45:23 2020 +0200 lisp/bookmark.el: Customize choice to show bookmark list in a new tab * lisp/bookmark.el (bookmark-bmenu-get-buffer): Add as a choice for new-tab targets (bug#41225). diff --git a/etc/NEWS b/etc/NEWS index 2b3cc80df1..01245d14f9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -138,6 +138,10 @@ The width now depends of the width of the window, but will never be wider than the length of the longest buffer name, except that it will never be narrower than 19 characters. +*** Bookmarks can now be targets for new tabs. +When the 'bookmark.el' library is loaded, a customize choice is added +to 'tab-bar-new-tab-choice' for new tabs to show the bookmark list. + ** Windows *** The key prefix 'C-x 4 1' displays next command buffer in the same window. diff --git a/lisp/bookmark.el b/lisp/bookmark.el index de7d60f97e..fb293adb77 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1666,6 +1666,19 @@ Don't affect the buffer ring order." (bookmark-bmenu-list))))) +;;;###autoload +(defun bookmark-bmenu-get-buffer () + "Return the Bookmark List, building it if it doesn't exists. +Don't affect the buffer ring order." + (or (get-buffer bookmark-bmenu-buffer) + (save-excursion + (save-window-excursion + (bookmark-bmenu-list) + (get-buffer bookmark-bmenu-buffer))))) + +(custom-add-choice 'tab-bar-new-tab-choice + '(const :tag "Bookmark List" bookmark-bmenu-get-buffer)) + ;;;###autoload (defun bookmark-bmenu-list () "Display a list of existing bookmarks. commit c3a6bcac86fd386a31a3287a9818aa7c3568769c Author: Lars Ingebrigtsen Date: Sat Aug 8 13:42:48 2020 +0200 Add new utility function custom-add-choice * lisp/custom.el (custom-add-choice): New function (bug#41225). diff --git a/etc/NEWS b/etc/NEWS index de10b4a613..2b3cc80df1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -782,6 +782,11 @@ have now been removed. * Lisp Changes in Emacs 28.1 +--- +** New function 'custom-add-choice'. +This function can be used by modes to add elements to the +'choice' customization type of a variable. + +++ ** New function 'file-modes-number-to-symbolic' to convert a numeric file mode specification into symbolic form. diff --git a/lisp/custom.el b/lisp/custom.el index 885c486c5e..0cb136330d 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1541,6 +1541,20 @@ Each of the arguments ARGS has this form: This means reset VARIABLE. (The argument IGNORED is ignored)." (apply #'custom-theme-reset-variables 'user args)) +(defun custom-add-choice (variable choice) + "Add CHOICE to the custom type of VARIABLE. +If a choice with the same tag already exists, no action is taken." + (let ((choices (get 'tab-bar-new-tab-choice 'custom-type))) + (unless (eq (car choices) 'choice) + (error "Not a choice type: %s" choices)) + (unless (seq-find (lambda (elem) + (equal (caddr (member :tag elem)) + (caddr (member :tag choice)))) + (cdr choices)) + ;; Put the new choice at the end. + (put variable 'custom-type + (append (get variable 'custom-type) (list choice)))))) + ;;; The End. (provide 'custom) commit f07bbb67d16365da2abd288b9993f1938dae4c20 Author: Lars Ingebrigtsen Date: Sat Aug 8 13:01:42 2020 +0200 Fix up previous list-buffers patch to work when there's no buffer * lisp/buff-menu.el (Buffer-menu--dynamic-name-width): Use apply #'max instead of seq-max since the list may be empty. diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 359d6381e8..aa5c47ca7f 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -77,9 +77,9 @@ but will never be narrower than 19 characters." ;; This gives 19 on an 80 column window, and take up ;; proportionally more space as the window widens. (min (truncate (/ (window-width) 4.2)) - (seq-max (mapcar (lambda (b) - (length (buffer-name b))) - buffers))))) + (apply #'max 0 (mapcar (lambda (b) + (length (buffer-name b))) + buffers))))) (defcustom Buffer-menu-name-width #'Buffer-menu--dynamic-name-width "Width of buffer name column in the Buffer Menu. commit 119c34cc0aa3d7c814dff4f5b78dd589f0e2a75a Author: Lars Ingebrigtsen Date: Sat Aug 8 12:00:57 2020 +0200 Mark an mml-sec test as unstable * test/lisp/gnus/mml-sec-tests.el (mml-secure-en-decrypt-sign-1-1-single): Mark the test as unstable (bug#42720). It sometimes fails on some systems (Fedora?) when run with "-j5", so there may be a race condition in the code somewhere. diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el index 917e627c7e..8f78a66f61 100644 --- a/test/lisp/gnus/mml-sec-tests.el +++ b/test/lisp/gnus/mml-sec-tests.el @@ -623,6 +623,7 @@ In this test, encrypt-to-self variables are set to lists." (ert-deftest mml-secure-en-decrypt-sign-1-1-single () "Sign and encrypt message; then decrypt and test for expected result. In this test, just multiple encryption and signing keys may be available." + :tags '(:unstable) (skip-unless (test-conf)) (mml-secure-test-key-fixture (lambda () commit 4085a2c15e4f9e162bf8c9b77f4a1a2a84ad9437 Author: Lars Ingebrigtsen Date: Sat Aug 8 11:53:09 2020 +0200 Tweak how whitespace-mode marks the end of the buffer * lisp/whitespace.el (whitespace-missing-newline-at-eof): Change the colours to not be as angry. (whitespace-color-on): Don't mark the end of the buffer if point is there. diff --git a/lisp/whitespace.el b/lisp/whitespace.el index fb5f28c002..42c4b61daf 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -594,7 +594,7 @@ line. Used when `whitespace-style' includes the value `indentation'.") (defface whitespace-missing-newline-at-eof '((((class mono)) :inverse-video t :weight bold :underline t) - (t :background "red" :foreground "firebrick")) + (t :background "#d0d040" :foreground "black")) "Face used to visualize missing newline at the end of the file.") (defvar whitespace-empty 'whitespace-empty @@ -2137,7 +2137,13 @@ resultant list will be returned." 1 whitespace-space-after-tab t))) ,@(when (memq 'missing-newline-at-eof whitespace-active-style) ;; Show missing newline. - `(("[^\n]\\'" 0 'whitespace-missing-newline-at-eof t))))) + `(("[^\n]\\'" 0 + ;; Don't mark the end of the buffer is point is there -- + ;; it probably means that the user is typing something + ;; at the end of the buffer. + (and (/= whitespace-point (point-max)) + 'whitespace-missing-newline-at-eof) + t))))) (font-lock-add-keywords nil whitespace-font-lock-keywords t) (font-lock-flush))) commit 44b31c1ed7f9c6668942ea122c0dd37b825ef29c Author: Lars Ingebrigtsen Date: Sat Aug 8 11:37:43 2020 +0200 Make the name column in 'list-buffers' have a dynamic width * lisp/buff-menu.el (Buffer-menu--dynamic-name-width): New function (bug#30692). (Buffer-menu-name-width): Default to using it. (list-buffers--refresh): Call it. * lisp/emacs-lisp/seq.el (seq-max): Add autoload cookie. diff --git a/etc/NEWS b/etc/NEWS index 850b166069..de10b4a613 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -130,6 +130,14 @@ same for a button. * Changes in Specialized Modes and Packages in Emacs 28.1 +** Miscellaneous + +--- +*** The width of the buffer-name column in 'list-buffers' is now dynamic. +The width now depends of the width of the window, but will never be +wider than the length of the longest buffer name, except that it will +never be narrower than 19 characters. + ** Windows *** The key prefix 'C-x 4 1' displays next command buffer in the same window. diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 9fe0dbae38..359d6381e8 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -69,11 +69,26 @@ minus `Buffer-menu-size-width'. This use is deprecated." "use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead." "24.3") -(defcustom Buffer-menu-name-width 19 - "Width of buffer name column in the Buffer Menu." - :type 'number +(defun Buffer-menu--dynamic-name-width (buffers) + "Return a name column width based on the current window width. +The width will never exceed the actual width of the buffer names, +but will never be narrower than 19 characters." + (max 19 + ;; This gives 19 on an 80 column window, and take up + ;; proportionally more space as the window widens. + (min (truncate (/ (window-width) 4.2)) + (seq-max (mapcar (lambda (b) + (length (buffer-name b))) + buffers))))) + +(defcustom Buffer-menu-name-width #'Buffer-menu--dynamic-name-width + "Width of buffer name column in the Buffer Menu. +This can either be a number (used directly) or a function that +will be called with the list of buffers and should return a +number." + :type '(choice function number) :group 'Buffer-menu - :version "24.3") + :version "28.1") (defcustom Buffer-menu-size-width 7 "Width of buffer size column in the Buffer Menu." @@ -646,25 +661,11 @@ means list those buffers and no others." (defun list-buffers--refresh (&optional buffer-list old-buffer) ;; Set up `tabulated-list-format'. - (let ((name-width Buffer-menu-name-width) - (size-width Buffer-menu-size-width) + (let ((size-width Buffer-menu-size-width) (marked-buffers (Buffer-menu-marked-buffers)) (buffer-menu-buffer (current-buffer)) (show-non-file (not Buffer-menu-files-only)) - entries) - ;; Handle obsolete variable: - (if Buffer-menu-buffer+size-width - (setq name-width (- Buffer-menu-buffer+size-width size-width))) - (setq tabulated-list-format - (vector '("C" 1 t :pad-right 0) - '("R" 1 t :pad-right 0) - '("M" 1 t) - `("Buffer" ,name-width t) - `("Size" ,size-width tabulated-list-entry-size-> - :right-align t) - `("Mode" ,Buffer-menu-mode-width t) - '("File" 1 t))) - (setq tabulated-list-use-header-line Buffer-menu-use-header-line) + entries name-width) ;; Collect info for each buffer we're interested in. (dolist (buffer (or buffer-list (buffer-list (if Buffer-menu-use-frame-buffer-list @@ -694,6 +695,22 @@ means list those buffers and no others." nil nil buffer))) (Buffer-menu--pretty-file-name file))) entries))))) + (setq name-width (if (functionp Buffer-menu-name-width) + (funcall Buffer-menu-name-width (mapcar #'car entries)) + Buffer-menu-name-width)) + ;; Handle obsolete variable: + (if Buffer-menu-buffer+size-width + (setq name-width (- Buffer-menu-buffer+size-width size-width))) + (setq tabulated-list-format + (vector '("C" 1 t :pad-right 0) + '("R" 1 t :pad-right 0) + '("M" 1 t) + `("Buffer" ,name-width t) + `("Size" ,size-width tabulated-list-entry-size-> + :right-align t) + `("Mode" ,Buffer-menu-mode-width t) + '("File" 1 t))) + (setq tabulated-list-use-header-line Buffer-menu-use-header-line) (setq tabulated-list-entries (nreverse entries))) (tabulated-list-init-header)) diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 4c1a1797ad..1cc68e19ed 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -492,6 +492,7 @@ keys. Keys are compared using `equal'." SEQUENCE must be a sequence of numbers or markers." (apply #'min (seq-into sequence 'list))) +;;;###autoload (cl-defgeneric seq-max (sequence) "Return the largest element of SEQUENCE. SEQUENCE must be a sequence of numbers or markers."