+++ /dev/null
-(require 'seq)
-
-(defvar config-directory (file-name-directory (locate-library "config")))
-
-(defun config-add-modules-to-load-path (directory)
- (let* ((pattern (file-name-concat directory "*"))
- (results (file-expand-wildcards pattern))
- (directories (seq-filter 'file-directory-p results))
- (non-hidden (seq-filter (lambda (d)
- (let ((base (file-name-base d)))
- (not (string-prefix-p "." base))))
- directories)))
- (mapc (lambda (m)
- (add-to-list 'load-path m))
- non-hidden)))
-
-(config-add-modules-to-load-path config-directory)
-
-(require 'config-dired)
-(require 'config-display-buffer)
-(require 'config-eldoc)
-(require 'config-electric)
-(require 'config-files)
-(require 'config-flymake)
-(require 'config-garbage-collection)
-(require 'config-keys)
-(require 'config-man)
-(require 'config-package)
-(require 'config-programming-languages)
-(require 'config-project)
-(require 'config-recentf)
-(require 'config-savehist)
-(require 'config-tramp)
-
-(require 'config-text-mode)
-(require 'config-conf-mode)
-(require 'config-prog-mode)
-
-(when (locate-library "company")
- (require 'config-company))
-
-(when (locate-library "eglot")
- (require 'config-eglot))
-
-(when (locate-library "flycheck")
- (require 'config-flycheck))
-
-(when (locate-library "lsp-mode")
- (require 'config-lsp-mode))
-
-(when (and (>= emacs-major-version 28) (native-comp-available-p))
- (require 'config-native-comp))
-
-(provide 'config)
+++ /dev/null
-(defvar config-files-backup-directory (file-name-concat user-emacs-directory "backups"))
-
-(unless (file-exists-p config-files-backup-directory)
- (mkdir config-files-backup-directory))
-
-(defun config-files-format-backup-path (path number)
- (format "%s.~%s~" path number))
-
-(defun config-files-backup-extension (path)
- (let* ((i (string-search "." (reverse path)))
- (extension (substring path (- (length path) i))))
- extension))
-
-(defun config-files-backup-no-extension (path)
- (let* ((i (string-search "." (reverse path)))
- (no-extension (substring path 0 (- (length path) (+ i 1)))))
- no-extension))
-
-(defun config-files-backup-number (path)
- (let* ((extension (config-files-backup-extension path))
- (extracted (substring extension 1 (- (length extension) 1)))
- (as-number (unless (zerop (length extracted))
- (string-to-number extracted))))
- as-number))
-
-(defun config-files-shift-path (path)
- (let* ((without-extension (config-files-backup-no-extension path))
- (number (config-files-backup-number path))
- (next-number (+ number 1))
- (shifted-path (config-files-format-backup-path
- without-extension
- next-number)))
- shifted-path))
-
-(defun config-files-shift-backup (path)
- (let ((next-path (config-files-shift-path path)))
- (when (file-exists-p next-path)
- (config-files-shift-backup next-path))
- (rename-file path next-path)))
-
-(defun config-files-backup-before-save ()
- (unless backup-inhibited
- (let* ((path (buffer-file-name))
- (backup-path (config-files-format-backup-path path 0)))
- (when (file-exists-p path)
- (when (file-exists-p backup-path)
- (config-files-shift-backup backup-path))
- (copy-file path backup-path)))))
-
-(add-hook 'before-save-hook 'config-files-backup-before-save)
+++ /dev/null
-(load "config-files-backup-on-save-hook")
-
-(provide 'config-files)
+++ /dev/null
-(defun config-man-pages ()
- (let* ((manpath (getenv "MANPATH"))
- (directories (split-string manpath ":" t))
- (that-exist (seq-filter 'file-exists-p directories))
- (files (mapcar (lambda (d)
- (directory-files-recursively d ".*" nil))
- that-exist))
- (flattened (flatten-list files))
- (pages (mapcar 'file-name-nondirectory flattened))
- (without-second-ext (mapcar (lambda (p)
- (let ((extension (file-name-extension p)))
- (if (string-match-p "^[0-9+]$" extension)
- p
- (file-name-sans-extension p))))
- pages)))
- without-second-ext))
-
-(defun config-man-locate-page (page)
- (with-temp-buffer
- (let ((exit-code (call-process "man" nil (current-buffer) nil "--where" page)))
- (when exit-code
- (let* ((output (buffer-string))
- (trimmed (string-trim-right output "\n")))
- trimmed)))))
-
-(defun config-man-advice (orig &rest args)
- (interactive)
- (let ((page (or args (list (completing-read "Select page: " (config-man-pages) nil t)))))
- (apply orig page)))
-
-(advice-add 'man :around 'config-man-advice)
+++ /dev/null
-(setq Man-notify-method 'pushy)
-
-(load "config-man-helper-functions")
-
-(provide 'config-man)
+++ /dev/null
-(defun config-c-mode-insert-header-guard ()
- (interactive)
- (let ((guard (upcase (format "%s_H" (file-name-base (buffer-file-name))))))
- (insert (format "#ifndef %s\n#define %s\n#endif" guard guard))))
+++ /dev/null
-(setq c-default-style "stroustrup" c-basic-offset 4)
-
-(load "config-c-functions")
-
-(provide 'config-c)
+++ /dev/null
-(defvar config-programming-languages-directory (file-name-directory
- (locate-library "config-programming-languages")))
-
-(defvar config-programming-languages-modules '(c shell))
-
-(mapc (lambda (module)
- (let ((module-load-path (file-name-concat config-programming-languages-directory (symbol-name module))))
- (add-to-list 'load-path module-load-path)))
- config-programming-languages-modules)
-
-(require 'config-c)
-(require 'config-shell)
-
-(provide 'config-programming-languages)
+++ /dev/null
-(setq sh-shell-file "/bin/bash")
-
-(provide 'config-shell)
-(add-to-list 'load-path (file-name-concat user-emacs-directory "config"))
-
-(require 'config)
-
(setq auth-source-save-behavior nil
auto-save-default nil
change-major-mode-with-file-name nil
(when (file-exists-p custom-file)
(load custom-file))
+(load (file-name-concat user-emacs-directory "load-config"))
+(load (file-name-concat user-emacs-directory "load-local-lisp"))
+
(cua-mode 1)
(recentf-mode 1)
(savehist-mode 1)
--- /dev/null
+(defvar backup-before-save-directory (file-name-concat user-emacs-directory "backups"))
+
+(unless (file-exists-p backup-before-save-directory)
+ (mkdir backup-before-save-directory))
+
+(defun backup-before-save-format-path (path number)
+ (format "%s.~%s~" path number))
+
+(defun backup-before-save-extension (path)
+ (let* ((i (string-search "." (reverse path)))
+ (extension (substring path (- (length path) i))))
+ extension))
+
+(defun backup-before-save-no-extension (path)
+ (let* ((i (string-search "." (reverse path)))
+ (no-extension (substring path 0 (- (length path) (+ i 1)))))
+ no-extension))
+
+(defun backup-before-save-number (path)
+ (let* ((extension (backup-before-save-extension path))
+ (extracted (substring extension 1 (- (length extension) 1)))
+ (as-number (unless (zerop (length extracted))
+ (string-to-number extracted))))
+ as-number))
+
+(defun backup-before-save-shift-path (path)
+ (let* ((without-extension (backup-before-save-no-extension path))
+ (number (backup-before-save-number path))
+ (next-number (+ number 1))
+ (shifted-path (backup-before-save-format-path
+ without-extension
+ next-number)))
+ shifted-path))
+
+(defun backup-before-save-shift-backup (path)
+ (let ((next-path (backup-before-save-shift-path path)))
+ (when (file-exists-p next-path)
+ (backup-before-save-shift-backup next-path))
+ (rename-file path next-path)))
+
+(defun backup-before-save-function ()
+ (unless backup-inhibited
+ (let* ((full-path (buffer-file-name))
+ (base-path (file-name-nondirectory full-path))
+ (backup-full-path (file-name-concat backup-before-save-directory base-path))
+ (backup-full-path-numbered (backup-before-save-format-path backup-full-path 0)))
+ (when (file-exists-p full-path)
+ (when (file-exists-p backup-full-path-numbered)
+ (backup-before-save-shift-backup backup-full-path-numbered))
+ (copy-file full-path backup-full-path-numbered)))))
+
+(add-hook 'before-save-hook 'backup-before-save-function)
+
+(provide 'backup-before-save)
--- /dev/null
+(let ((config-directory (file-name-concat user-emacs-directory "config")))
+ (add-to-list 'load-path (file-name-concat config-directory "company"))
+ (add-to-list 'load-path (file-name-concat config-directory "conf-mode"))
+ (add-to-list 'load-path (file-name-concat config-directory "dired"))
+ (add-to-list 'load-path (file-name-concat config-directory "display-buffer"))
+ (add-to-list 'load-path (file-name-concat config-directory "eglot"))
+ (add-to-list 'load-path (file-name-concat config-directory "eldoc"))
+ (add-to-list 'load-path (file-name-concat config-directory "electric"))
+ (add-to-list 'load-path (file-name-concat config-directory "flycheck"))
+ (add-to-list 'load-path (file-name-concat config-directory "flymake"))
+ (add-to-list 'load-path (file-name-concat config-directory "garbage-collection"))
+ (add-to-list 'load-path (file-name-concat config-directory "keys"))
+ (add-to-list 'load-path (file-name-concat config-directory "lsp-mode"))
+ (add-to-list 'load-path (file-name-concat config-directory "native-comp"))
+ (add-to-list 'load-path (file-name-concat config-directory "package"))
+ (add-to-list 'load-path (file-name-concat config-directory "prog-mode"))
+ (add-to-list 'load-path (file-name-concat config-directory "project"))
+ (add-to-list 'load-path (file-name-concat config-directory "recentf"))
+ (add-to-list 'load-path (file-name-concat config-directory "savehist"))
+ (add-to-list 'load-path (file-name-concat config-directory "text-mode"))
+ (add-to-list 'load-path (file-name-concat config-directory "tramp")))
+
+(require 'config-text-mode)
+(require 'config-conf-mode)
+(require 'config-prog-mode)
+(require 'config-dired)
+(require 'config-display-buffer)
+(require 'config-eldoc)
+(require 'config-electric)
+(require 'config-flymake)
+(require 'config-garbage-collection)
+(require 'config-keys)
+(require 'config-package)
+(require 'config-project)
+(require 'config-recentf)
+(require 'config-savehist)
+(require 'config-tramp)
+
+(when (locate-library "company")
+ (require 'config-company))
+
+(when (locate-library "eglot")
+ (require 'config-eglot))
+
+(when (locate-library "flycheck")
+ (require 'config-flycheck))
+
+(when (locate-library "lsp-mode")
+ (require 'config-lsp-mode))
+
+(when (and (> emacs-major-version 28) (native-comp-available-p))
+ (require 'config-native-comp))
--- /dev/null
+(let ((local-lisp-directory (file-name-concat user-emacs-directory "lisp")))
+ (add-to-list 'load-path (file-name-concat local-lisp-directory "backup-before-save")))
+
+(require 'backup-before-save)