Reorganize package code
This commit is contained in:
		
							parent
							
								
									38a00209f4
								
							
						
					
					
						commit
						d8e00fd458
					
				| @ -54,13 +54,15 @@ | ||||
| 
 | ||||
| ;;; Code: | ||||
| 
 | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; Ext. variable declarations | ||||
| ;; Byte-compiler declarations | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| (defvar neotree-dir-button-keymap) | ||||
| (defvar neotree-file-button-keymap) | ||||
| (defvar neo-global--window) | ||||
| ;; ---------------------------------- ;; | ||||
| ;; External variable defs | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (defvar diff-hl-fringe-bmp-function) | ||||
| 
 | ||||
| @ -68,9 +70,15 @@ | ||||
| (defvar flymake-warning-bitmap) | ||||
| (defvar flymake-note-bitmap) | ||||
| 
 | ||||
| ;; | ||||
| ;; Ext. function prototypes | ||||
| ;; | ||||
| (defvar neotree-dir-button-keymap) | ||||
| (defvar neotree-file-button-keymap) | ||||
| (defvar neo-global--window) | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; External function decls | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (declare-function flycheck-redefine-standard-error-levels "flycheck" (&optional margin-str fringe-bitmap)) | ||||
| 
 | ||||
| (declare-function neo-path--file-short-name "neotree" (file)) | ||||
| (declare-function neo-buffer--node-list-set "neotree" (line-num path)) | ||||
| @ -80,87 +88,73 @@ | ||||
| (declare-function neo-buffer--insert-dir-entry "neotree" (node depth expanded)) | ||||
| (declare-function neo-buffer--insert-file-entry "neotree" (node depth)) | ||||
| 
 | ||||
| (declare-function flycheck-redefine-standard-error-levels "flycheck" (&optional margin-str fringe-bitmap)) | ||||
| 
 | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; Helper functions | ||||
| ;; | ||||
| 
 | ||||
| (defun adwaita-dark-theme--true-color-p () | ||||
|   "Return 't' if the frame is capable of displaying true colors." | ||||
|   (or | ||||
|    (daemonp) | ||||
|    (display-graphic-p) | ||||
|    (>= (tty-display-color-cells) 16777216))) | ||||
| 
 | ||||
| ;; | ||||
| ;; Theme definition | ||||
| ;; Theme code | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| (deftheme adwaita-dark | ||||
|   "A dark color scheme inspired by the libadwaita colors.") | ||||
| 
 | ||||
| (let ((class '((class color) (min-colors 256))) | ||||
| 
 | ||||
|       ;; ===================== | ||||
|       ;; -- Theme variables -- | ||||
|       ;; ===================== | ||||
| 
 | ||||
|       ;; Layout/Sizing | ||||
|       (mode-line-padding 10) | ||||
| 
 | ||||
|       ;; Feature availability | ||||
|       (flat-button-available-p (version<= "28.1" emacs-version)) | ||||
|       (true-color-available-p (or (daemonp) | ||||
|                                   (display-graphic-p) | ||||
|                                   (>= (tty-display-color-cells) 16777216))) | ||||
| 
 | ||||
|       ;; Base (Background) Colors | ||||
|       ;; Background (base) colors | ||||
|       ;; [True color | 256-compatible] | ||||
|       (bg (if (adwaita-dark-theme--true-color-p) "#1e1e1e" "gray12"))     ; #1f1f1f | ||||
|       (bg-alt (if (adwaita-dark-theme--true-color-p) "#242424" "gray14")) ; #242424 | ||||
|       (base-0 (if (adwaita-dark-theme--true-color-p) "#202020" "gray13")) ; #212121 | ||||
|       (base-1 (if (adwaita-dark-theme--true-color-p) "#262626" "gray15")) ; #262626 | ||||
|       (base-2 (if (adwaita-dark-theme--true-color-p) "#292929" "gray16")) ; #292929 | ||||
|       (base-3 (if (adwaita-dark-theme--true-color-p) "#303030" "gray19")) ; #303030 | ||||
|       (base-4 (if (adwaita-dark-theme--true-color-p) "#454545" "gray27")) ; #454545 | ||||
|       (base-5 (if (adwaita-dark-theme--true-color-p) "#656565" "gray40")) ; #666666 | ||||
|       (base-6 (if (adwaita-dark-theme--true-color-p) "#7b7b7b" "gray48")) ; #7a7a7a | ||||
|       (base-7 (if (adwaita-dark-theme--true-color-p) "#a5a5a5" "gray65")) ; #a6a6a6 | ||||
|       (base-8 (if (adwaita-dark-theme--true-color-p) "#dfdfdf" "gray87")) ; #dedede | ||||
|       (fg (if (adwaita-dark-theme--true-color-p) "#deddda" "gray86"))     ; #dbdbdb | ||||
|       (fg-alt (if (adwaita-dark-theme--true-color-p) "#77767b" "gray47")) ; #787878 | ||||
|       (bg (if (true-color-available-p) "#1e1e1e" "gray12"))     ; #1f1f1f | ||||
|       (bg-alt (if (true-color-available-p) "#242424" "gray14")) ; #242424 | ||||
|       (base-0 (if (true-color-available-p) "#202020" "gray13")) ; #212121 | ||||
|       (base-1 (if (true-color-available-p) "#262626" "gray15")) ; #262626 | ||||
|       (base-2 (if (true-color-available-p) "#292929" "gray16")) ; #292929 | ||||
|       (base-3 (if (true-color-available-p) "#303030" "gray19")) ; #303030 | ||||
|       (base-4 (if (true-color-available-p) "#454545" "gray27")) ; #454545 | ||||
|       (base-5 (if (true-color-available-p) "#656565" "gray40")) ; #666666 | ||||
|       (base-6 (if (true-color-available-p) "#7b7b7b" "gray48")) ; #7a7a7a | ||||
|       (base-7 (if (true-color-available-p) "#a5a5a5" "gray65")) ; #a6a6a6 | ||||
|       (base-8 (if (true-color-available-p) "#dfdfdf" "gray87")) ; #dedede | ||||
|       (fg (if (true-color-available-p) "#deddda" "gray86"))     ; #dbdbdb | ||||
|       (fg-alt (if (true-color-available-p) "#77767b" "gray47")) ; #787878 | ||||
| 
 | ||||
|       ;; Foreground Colors | ||||
|       ;; Foreground colors | ||||
|       ;; [True color | 256-compatible] | ||||
|       (gray (if (adwaita-dark-theme--true-color-p) "#3d3846" "gray23"))           ; #3b3b3b | ||||
|       (red (if (adwaita-dark-theme--true-color-p) "#ff6c6b" "indianred2"))        ; #ee6363 | ||||
|       (orange (if (adwaita-dark-theme--true-color-p) "#ffa348" "orange2"))        ; #ee9a00 | ||||
|       (green (if (adwaita-dark-theme--true-color-p) "#54d18c" "seagreen3"))       ; #43cd80 | ||||
|       (teal (if (adwaita-dark-theme--true-color-p) "#5bc8af" "mediumaquamarine")) ; #66cdaa | ||||
|       (yellow (if (adwaita-dark-theme--true-color-p) "#f8e45c" "gold2"))          ; #eec900 | ||||
|       (blue (if (adwaita-dark-theme--true-color-p) "#64a6f4" "steelblue2"))       ; #5cacee | ||||
|       (dark-blue (if (adwaita-dark-theme--true-color-p) "#1a5fb4" "dodgerblue4")) ; #104e8b | ||||
|       (magenta (if (adwaita-dark-theme--true-color-p) "#dd80de" "orchid3"))       ; #cd69c9 | ||||
|       (pink (if (adwaita-dark-theme--true-color-p) "#edb8ee" "plum"))             ; #dda0dd | ||||
|       (violet (if (adwaita-dark-theme--true-color-p) "#7d8ac7" "mediumpurple3"))  ; #8968cd | ||||
|       (cyan (if (adwaita-dark-theme--true-color-p) "#7ee5ff" "mediumturquoise"))  ; #48d1cc | ||||
|       (dark-cyan (if (adwaita-dark-theme--true-color-p) "#6bacbd" "cadetblue")))  ; #5f9ea0 | ||||
|       (gray (if (true-color-available-p) "#3d3846" "gray23"))           ; #3b3b3b | ||||
|       (red (if (true-color-available-p) "#ff6c6b" "indianred2"))        ; #ee6363 | ||||
|       (orange (if (true-color-available-p) "#ffa348" "orange2"))        ; #ee9a00 | ||||
|       (green (if (true-color-available-p) "#54d18c" "seagreen3"))       ; #43cd80 | ||||
|       (teal (if (true-color-available-p) "#5bc8af" "mediumaquamarine")) ; #66cdaa | ||||
|       (yellow (if (true-color-available-p) "#f8e45c" "gold2"))          ; #eec900 | ||||
|       (blue (if (true-color-available-p) "#64a6f4" "steelblue2"))       ; #5cacee | ||||
|       (dark-blue (if (true-color-available-p) "#1a5fb4" "dodgerblue4")) ; #104e8b | ||||
|       (magenta (if (true-color-available-p) "#dd80de" "orchid3"))       ; #cd69c9 | ||||
|       (pink (if (true-color-available-p) "#edb8ee" "plum"))             ; #dda0dd | ||||
|       (violet (if (true-color-available-p) "#7d8ac7" "mediumpurple3"))  ; #8968cd | ||||
|       (cyan (if (true-color-available-p) "#7ee5ff" "mediumturquoise"))  ; #48d1cc | ||||
|       (dark-cyan (if (true-color-available-p) "#6bacbd" "cadetblue")))  ; #5f9ea0 | ||||
| 
 | ||||
| 
 | ||||
|   ;; Face Definitions | ||||
|   (custom-theme-set-faces | ||||
|    'adwaita-dark | ||||
| 
 | ||||
|    ;; ================ | ||||
|    ;; -- Core faces -- | ||||
|    ;; ================ | ||||
|    ;; ---------------------------------- ;; | ||||
|    ;; Core Emacs faces | ||||
|    ;; ---------------------------------- ;; | ||||
| 
 | ||||
|    ;; default face | ||||
|    `(default ((,class (:background ,bg :foreground ,fg)))) | ||||
| 
 | ||||
|    ;; generic faces | ||||
|    ;; Emacs faces | ||||
|    `(error ((,class (:foreground ,red)))) | ||||
|    `(warning ((,class (:foreground ,yellow)))) | ||||
|    `(success ((,class (:foreground ,green)))) | ||||
| 
 | ||||
|    ;; emacs faces | ||||
|    `(fringe ((,class (:inherit 'default :foreground ,base-4)))) | ||||
|    `(region ((,class (:background ,base-4 :foreground nil :distant-foreground ,fg)))) | ||||
|    `(highlight ((,class (:background ,blue :foreground ,base-0 :distant-foreground ,base-8)))) | ||||
| @ -204,9 +198,9 @@ | ||||
|    `(mode-line-buffer-id ((,class (:foreground ,base-8 :weight bold)))) | ||||
|    `(header-line ((,class (:inherit 'mode-line-inactive ,base-6)))) | ||||
| 
 | ||||
|    ;; =============================== | ||||
|    ;; -- Built-in packages/plugins -- | ||||
|    ;; =============================== | ||||
|    ;; ---------------------------------- ;; | ||||
|    ;; Internal/built-in packages | ||||
|    ;; ---------------------------------- ;; | ||||
| 
 | ||||
|    ;; ansi-colors | ||||
|    `(ansi-color-black ((,class (:foreground "#464646" :background "#464646")))) | ||||
| @ -422,9 +416,9 @@ | ||||
|    `(window-divider-first-pixel ((,class (:inherit 'window-divider)))) | ||||
|    `(window-divider-last-pixel ((,class (:inherit 'window-divider)))) | ||||
| 
 | ||||
|    ;; =============================== | ||||
|    ;; -- External packages/plugins -- | ||||
|    ;; =============================== | ||||
|    ;; ---------------------------------- ;; | ||||
|    ;; External packages | ||||
|    ;; ---------------------------------- ;; | ||||
| 
 | ||||
|    ;; anzu | ||||
|    `(anzu-mode-line ((,class (:foreground ,blue)))) | ||||
| @ -800,9 +794,15 @@ | ||||
|    ;; yasnippet | ||||
|    `(yas-field-highlight-face ((,class (:inherit 'match)))))) | ||||
| 
 | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; Neotree functions | ||||
| ;; NeoTree configuration | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Internal functions | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (defun adwaita-dark-theme--neotree-hidden-dir-p (dirname) | ||||
|   "Return non-nil if DIRNAME should be considered hidden." | ||||
| @ -858,26 +858,35 @@ | ||||
|     (neo-buffer--node-list-set nil node) | ||||
|     (neo-buffer--newline-and-begin))) | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Setup function | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (defun adwaita-dark-theme-neotree-configuration-enable () | ||||
|   "Enable custom adwaita-dark configuration for use with neotree." | ||||
|   (advice-add #'neo-global--select-window :after (lambda () | ||||
|                                                    (visual-line-mode -1) | ||||
|                                                    (set-window-fringes neo-global--window 0 0) | ||||
|                                                    (setq-local line-spacing 3 | ||||
|                                                                mode-line-format nil | ||||
|                                                                auto-hscroll-mode nil | ||||
|                                                                buffer-display-table (make-display-table)) | ||||
|                                                    (visual-line-mode -1) | ||||
|                                                    (set-window-fringes neo-global--window 0 0) | ||||
|                                                    (set-display-table-slot buffer-display-table 'truncation 8230))) | ||||
|   (advice-add #'neo-buffer--insert-root-entry :override #'adwaita-dark-theme--neotree-insert-root) | ||||
|   (advice-add #'neo-buffer--insert-dir-entry :override #'adwaita-dark-theme--neotree-insert-dir) | ||||
|   (advice-add #'neo-buffer--insert-file-entry :override #'adwaita-dark-theme--neotree-insert-file)) | ||||
| 
 | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; Fringe bitmap functions | ||||
| ;; Arrow fringe bitmaps configuration | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Bitmap definitions | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;; arrow fringe bitmaps | ||||
| (defconst adwaita-dark-theme--right-arrow-bmp | ||||
|   (vector #b00000000 | ||||
|           #b00000000 | ||||
| @ -888,6 +897,7 @@ | ||||
|           #b00110000 | ||||
|           #b00000000) | ||||
|   "Bitmap used to overwrite Emacs's right line-continuation fringe bitmap.") | ||||
| 
 | ||||
| (defconst adwaita-dark-theme--left-arrow-bmp | ||||
|   (vector #b00000000 | ||||
|           #b00000000 | ||||
| @ -898,6 +908,7 @@ | ||||
|           #b00001100 | ||||
|           #b00000000) | ||||
|   "Bitmap used to overwrite Emacs's left line-continuation fringe bitmap.") | ||||
| 
 | ||||
| (defconst adwaita-dark-theme--down-arrow-bmp | ||||
|   (vector #b00000000 | ||||
|           #b00000000 | ||||
| @ -908,10 +919,15 @@ | ||||
|           #b00111100 | ||||
|           #b00011000) | ||||
|   "Bitmap used to overwrite Emac's right line-wrapping fringe bitmap.") | ||||
| 
 | ||||
| (defconst adwaita-dark-theme--empty-bmp | ||||
|   (vector #b0) | ||||
|   "Bitmap used to overwrite Emac's left line-wrapping fringe bitmap.") | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Setup function | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (defun adwaita-dark-theme-arrow-fringe-bmp-enable () | ||||
|   "Replace the default line continuation and line wrap arrows with custom bitmaps." | ||||
| @ -920,7 +936,16 @@ | ||||
|   (define-fringe-bitmap 'right-curly-arrow adwaita-dark-theme--down-arrow-bmp) | ||||
|   (define-fringe-bitmap 'left-curly-arrow adwaita-dark-theme--empty-bmp)) | ||||
| 
 | ||||
| ;; diff-hl fringe bitmap | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; diff-hl fringe bitmaps configuration | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Bitmap definitions | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (defconst adwaita-dark-theme--diff-hl-bmp | ||||
|   (define-fringe-bitmap 'adwaita-dark-theme--diff-hl-bmp | ||||
|     (vector #b11100000) | ||||
| @ -928,16 +953,38 @@ | ||||
|     '(center t)) | ||||
|   "Fringe bitmap for use with `diff-hl'.") | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Internal functions | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (defun adwaita-dark-theme--diff-hl-fringe-bmp-function (_type _pos) | ||||
|   "Fringe bitmap function for use as `diff-hl-fringe-bmp-function'." | ||||
|   adwaita-dark-theme--diff-hl-bmp) | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Setup function | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (defun adwaita-dark-theme-diff-hl-fringe-bmp-enable () | ||||
|   "Enable custom adwaita-dark fringe bitmaps for use with flymake." | ||||
|   (setq diff-hl-fringe-bmp-function #'adwaita-dark-theme--diff-hl-fringe-bmp-function)) | ||||
| 
 | ||||
| ;; flycheck/flymake fringe bitmaps | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; flycheck/flymake fringe bitmaps configuration | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Bitmap definitions | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (defconst adwaita-dark-theme--dot-bmp | ||||
|   (vector #b01100000 | ||||
|           #b01100000) | ||||
|   "Bitmap used to overwrite flycheck's continuation fringe bitmap.") | ||||
| 
 | ||||
| (define-fringe-bitmap 'adwaita-dark-theme--marker-bmp | ||||
|   (vector #b11100000 | ||||
|           #b11110000 | ||||
| @ -946,10 +993,10 @@ | ||||
|           #b11111000 | ||||
|           #b11110000 | ||||
|           #b11100000)) | ||||
| (defconst adwaita-dark-theme--dot-bmp | ||||
|   (vector #b01100000 | ||||
|           #b01100000) | ||||
|   "Bitmap used to overwrite flycheck's continuation fringe bitmap.") | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Flycheck setup function | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (defun adwaita-dark-theme-flycheck-fringe-bmp-enable () | ||||
| @ -957,6 +1004,10 @@ | ||||
|   (flycheck-redefine-standard-error-levels nil 'adwaita-dark-theme--marker-bmp) | ||||
|   (define-fringe-bitmap 'flycheck-fringe-bitmap-continuation adwaita-dark-theme--dot-bmp)) | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Flymake setup function | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (defun adwaita-dark-theme-flymake-fringe-bmp-enable () | ||||
|   "Enable custom adwaita-dark fringe bitmaps for use with flymake." | ||||
| @ -964,18 +1015,25 @@ | ||||
|         flymake-warning-bitmap '(adwaita-dark-theme--marker-bmp compilation-warning) | ||||
|         flymake-note-bitmap '(adwaita-dark-theme--marker-bmp compilation-info))) | ||||
| 
 | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| ;; | ||||
| ;; Provide theme | ||||
| ;; | ||||
| ;; -------------------------------------------------------------------------- ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Register theme folder location | ||||
| ;; | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| ;;;###autoload | ||||
| (when (and (boundp 'custom-theme-load-path) load-file-name) | ||||
|   (add-to-list 'custom-theme-load-path | ||||
|                (file-name-as-directory (file-name-directory load-file-name)))) | ||||
| 
 | ||||
| ;; | ||||
| ;; Provide adwaita-dark-theme | ||||
| ;; | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Provide theme/package | ||||
| ;; ---------------------------------- ;; | ||||
| 
 | ||||
| (provide-theme 'adwaita-dark) | ||||
| (provide 'adwaita-dark-theme) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user