converted init code to use use-package
parent
e166c4beae
commit
4058ea89d9
@ -1,47 +1,2 @@
|
||||
(setq auth-source-save-behavior nil
|
||||
auto-save-default nil
|
||||
change-major-mode-with-file-name nil
|
||||
custom-buffer-indent 4
|
||||
custom-file (file-name-concat user-emacs-directory "custom.el")
|
||||
custom-theme-directory (file-name-concat user-emacs-directory "themes/")
|
||||
debugger 'edebug
|
||||
initial-buffer-choice (lambda ()
|
||||
(let ((initial-file (file-name-concat
|
||||
user-emacs-directory
|
||||
"initial-buffer")))
|
||||
(if (file-exists-p initial-file)
|
||||
(find-file initial-file)
|
||||
(get-buffer-create "*scratch*"))))
|
||||
enable-local-variables :safe
|
||||
inferior-lisp-program "sbcl"
|
||||
inhibit-splash-screen t
|
||||
make-backup-files nil
|
||||
scheme-program-name "guile"
|
||||
tab-width 4
|
||||
temporary-file-directory (file-name-concat (getenv "HOME") "tmp" ".emacs"))
|
||||
|
||||
(setq-default display-fill-column-indicator-column 120
|
||||
indent-tabs-mode nil)
|
||||
|
||||
(let* ((init-modules-wildcard
|
||||
(file-name-concat user-emacs-directory "init" "*"))
|
||||
(lisp-modules-wildcard
|
||||
(file-name-concat user-emacs-directory "lisp" "*"))
|
||||
(init-modules-files
|
||||
(file-expand-wildcards init-modules-wildcard t))
|
||||
(lisp-modules-files
|
||||
(file-expand-wildcards lisp-modules-wildcard t))
|
||||
(files
|
||||
(append init-modules-files lisp-modules-files))
|
||||
(directories
|
||||
(seq-filter 'file-directory-p files)))
|
||||
(mapc (lambda (directory)
|
||||
(add-to-list 'load-path directory))
|
||||
directories))
|
||||
|
||||
(mkdir temporary-file-directory t)
|
||||
|
||||
(require 'init-garbage-collection)
|
||||
|
||||
(when (and (>= emacs-major-version 29) (native-comp-available-p))
|
||||
(require 'init-native-comp))
|
||||
(setq native-comp-async-jobs-number (string-to-number (shell-command-to-string "nproc"))
|
||||
native-compile-target-directory (file-name-concat (getenv "HOME") ".cache/emacs-native-comp"))
|
||||
|
@ -1,8 +0,0 @@
|
||||
(require 'company)
|
||||
|
||||
(setq company-idle-delay 0
|
||||
company-clang-executable "/usr/lib/llvm/11/bin/clang"
|
||||
company-clang-insert-arguments nil
|
||||
company-minimum-prefix-length 1)
|
||||
|
||||
(provide 'init-company)
|
@ -1,3 +0,0 @@
|
||||
(add-hook 'compilation-mode-hook 'visual-line-mode)
|
||||
|
||||
(provide 'init-compile)
|
@ -1 +0,0 @@
|
||||
(setq conf-mode-hook (copy-tree text-mode-hook))
|
@ -1,5 +0,0 @@
|
||||
(require 'init-text-mode)
|
||||
|
||||
(load "init-conf-mode-hooks")
|
||||
|
||||
(provide 'init-conf-mode)
|
@ -1,4 +0,0 @@
|
||||
(setq dired-listing-switches "-alh"
|
||||
dired-kill-when-opening-new-dired-buffer t)
|
||||
|
||||
(provide 'init-dired)
|
@ -1,7 +0,0 @@
|
||||
(defun init-display-buffer-frame-wide-p ()
|
||||
(> (frame-pixel-width) (/ (x-display-pixel-width) 2)))
|
||||
|
||||
(defun init-display-buffer-best-side (buffer alist)
|
||||
(let* ((side (funcall (alist-get 'which-side alist)))
|
||||
(alist (append (cdr alist) (list (cons 'side side)))))
|
||||
(display-buffer-in-side-window buffer alist)))
|
@ -1,5 +0,0 @@
|
||||
(setq display-buffer-base-action '(display-buffer-same-window display-buffer-reuse-window))
|
||||
|
||||
(load "init-display-buffer-best-side")
|
||||
|
||||
(provide 'init-display-buffer)
|
@ -1,4 +0,0 @@
|
||||
(setq ediff-split-window-function 'split-window-horizontally
|
||||
ediff-window-setup-function 'ediff-setup-windows-plain)
|
||||
|
||||
(provide 'init-ediff)
|
@ -1,4 +0,0 @@
|
||||
(setq eglot-autoshutdown t
|
||||
eglot-events-buffer-size 0)
|
||||
|
||||
(provide 'init-eglot)
|
@ -1,4 +0,0 @@
|
||||
(setq eldoc-idle-delay 0
|
||||
eldoc-echo-area-use-multiline-p 5)
|
||||
|
||||
(provide 'init-eldoc)
|
@ -1,7 +0,0 @@
|
||||
(require 'electric)
|
||||
(require 'elec-pair)
|
||||
|
||||
(add-to-list 'electric-pair-pairs '("?(" . "?)"))
|
||||
(add-to-list 'electric-pair-pairs '("?{" . "?}"))
|
||||
|
||||
(provide 'init-electric)
|
@ -1,7 +0,0 @@
|
||||
(defun init-flycheck-rust-cargo-has-command-p (command)
|
||||
(let* ((commands (process-lines "cargo" "--list"))
|
||||
(trimmed (-map (lambda (row) (-slice row 4 (string-search " " 4))) commands)))
|
||||
(seq-contains-p (-rest trimmed) command)))
|
||||
|
||||
(advice-add 'flycheck-rust-cargo-has-command-p
|
||||
:override 'init-flycheck-rust-cargo-has-command-p)
|
@ -1,15 +0,0 @@
|
||||
(require 'flycheck)
|
||||
|
||||
(load "init-flycheck-cargo-has-command-p-fix")
|
||||
|
||||
(add-hook 'flycheck-error-list-mode-hook (lambda () (visual-line-mode 1)))
|
||||
|
||||
(add-to-list 'display-buffer-alist '("\\*Flycheck errors.*"
|
||||
(init-display-buffer-best-side)
|
||||
(which-side . (lambda ()
|
||||
(if (init-display-buffer-frame-wide-p)
|
||||
'right
|
||||
'bottom)))))
|
||||
|
||||
|
||||
(provide 'init-flycheck)
|
@ -1,2 +0,0 @@
|
||||
(add-hook 'flymake-diagnostics-buffer-mode-hook (lambda ()
|
||||
(visual-line-mode 1)))
|
@ -1,12 +0,0 @@
|
||||
(require 'flymake)
|
||||
|
||||
(load "init-flymake-hooks")
|
||||
|
||||
(add-to-list 'display-buffer-alist '("\\*Flymake diagnostics.*"
|
||||
(init-display-buffer-best-side)
|
||||
(which-side . (lambda ()
|
||||
(if (init-display-buffer-frame-wide-p)
|
||||
'right
|
||||
'bottom)))))
|
||||
|
||||
(provide 'init-flymake)
|
@ -1,3 +0,0 @@
|
||||
(setq gc-cons-threshold (* (expt 1024 2) 25))
|
||||
|
||||
(provide 'init-garbage-collection)
|
@ -1,10 +0,0 @@
|
||||
(setq ibuffer-saved-filter-groups
|
||||
'(("default"
|
||||
("Misc" (and (name . "^\\*.*$")
|
||||
(not (mode . Man-mode))))
|
||||
("Dired" (mode . dired-mode))
|
||||
("Man" (mode . Man-mode)))))
|
||||
|
||||
(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default")))
|
||||
|
||||
(provide 'init-ibuffer-filter-groups)
|
@ -1,16 +0,0 @@
|
||||
(define-ibuffer-column size-human-readable
|
||||
(:name "Size" :inline t)
|
||||
(let ((size (buffer-size)))
|
||||
(cond
|
||||
((> size (expt 1000 4))
|
||||
(error "buffer is over 1TB large!"))
|
||||
((> size (expt 1000 3))
|
||||
(format "%sG" (/ size (expt 1000 3))))
|
||||
((> size (expt 1000 2))
|
||||
(format "%sM" (/ size (expt 1000 2))))
|
||||
((> size 1000)
|
||||
(format "%sK" (/ size 1000)))
|
||||
(t
|
||||
(format "%sB" size)))))
|
||||
|
||||
(provide 'init-ibuffer-human-readable-size)
|
@ -1,11 +0,0 @@
|
||||
(defvar init-ibuffer-never-show '("^\\*Messages\\*$"
|
||||
"^\\*Completions\\*$"
|
||||
"^\\*Async-native-compile-log\\*$"
|
||||
"^\\*Native-compile-Log\\*$"
|
||||
"^\\*Warnings\\*$"))
|
||||
|
||||
(mapc (lambda (p)
|
||||
(add-to-list 'ibuffer-never-show-predicates p))
|
||||
init-ibuffer-never-show)
|
||||
|
||||
(provide 'init-ibuffer-never-show)
|
@ -1,21 +0,0 @@
|
||||
(require 'ibuffer)
|
||||
(require 'ibuf-ext)
|
||||
(require 'init-ibuffer-human-readable-size)
|
||||
(require 'init-ibuffer-never-show)
|
||||
|
||||
(setq ibuffer-display-summary nil
|
||||
ibuffer-expert t)
|
||||
|
||||
(setq ibuffer-formats
|
||||
'((mark modified read-only locked " "
|
||||
(name 32 32 :left :elide)
|
||||
" "
|
||||
(size-human-readable 5 5 :right)
|
||||
" "
|
||||
(mode 16 16 :left :elide)
|
||||
" " filename-and-process)
|
||||
(mark " "
|
||||
(name 16 -1)
|
||||
" " filename)))
|
||||
|
||||
(provide 'init-ibuffer)
|
@ -1,3 +0,0 @@
|
||||
(add-hook 'ielm-mode-hook 'visual-line-mode)
|
||||
|
||||
(provide 'init-ielm)
|
@ -1,12 +0,0 @@
|
||||
(global-unset-key (kbd "<left>"))
|
||||
(global-unset-key (kbd "<right>"))
|
||||
(global-unset-key (kbd "<up>"))
|
||||
(global-unset-key (kbd "<down>"))
|
||||
(global-unset-key (kbd "<C-left>"))
|
||||
(global-unset-key (kbd "<C-right>"))
|
||||
(global-unset-key (kbd "<C-up>"))
|
||||
(global-unset-key (kbd "<C-down>"))
|
||||
(global-set-key (kbd "C-x k") 'kill-this-buffer)
|
||||
(global-set-key (kbd "C-x C-b") 'ibuffer)
|
||||
|
||||
(provide 'init-keys)
|
@ -1,40 +0,0 @@
|
||||
(setq lsp-server-install-dir "/somewhere/that/doesnt/exist")
|
||||
|
||||
(defun init-lsp-mode-disable-install-server-error ()
|
||||
(error "lsp-mode server install features have been disabled"))
|
||||
|
||||
(advice-add 'lsp-install-server
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp-update-server
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp-update-servers
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp-download-install
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp-download-path
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp-async-start-process
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp--download-status
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp--install-server-internal
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
||||
|
||||
(advice-add 'lsp--npm-dependency-install
|
||||
:around
|
||||
'init-lsp-mode-disable-install-server-error)
|
@ -1,19 +0,0 @@
|
||||
(require 'lsp-mode)
|
||||
(require 'flycheck)
|
||||
|
||||
(setq lsp-enable-dap-auto-configure nil
|
||||
lsp-enable-folding nil
|
||||
lsp-enable-indentation t
|
||||
lsp-enable-on-type-formatting nil
|
||||
lsp-completion-enable nil
|
||||
lsp-enable-snippet nil
|
||||
lsp-modeline-code-actions-enable nil
|
||||
lsp-lens-enable nil
|
||||
lsp-signature-auto-activate nil
|
||||
lsp-eldoc-render-all t
|
||||
lsp-rls-server-command nil
|
||||
lsp-enable-suggest-server-download nil)
|
||||
|
||||
(load "init-lsp-mode-disable-install-server")
|
||||
|
||||
(provide 'init-lsp-mode)
|
@ -1,3 +0,0 @@
|
||||
(setq Man-notify-method 'pushy)
|
||||
|
||||
(provide 'init-man)
|
@ -1,16 +0,0 @@
|
||||
(setq-default mode-line-format '("%*"
|
||||
" "
|
||||
(:eval (if buffer-file-name
|
||||
(abbreviate-file-name buffer-file-name)
|
||||
(buffer-name)))
|
||||
" "
|
||||
"(" mode-name ")"
|
||||
" "
|
||||
"[" (:eval (abbreviate-file-name default-directory)) "]"
|
||||
" "
|
||||
"(" (:eval (if server-process
|
||||
(process-name server-process)
|
||||
"none"))
|
||||
")"))
|
||||
|
||||
(provide 'init-mode-line)
|
@ -1,4 +0,0 @@
|
||||
(setq native-comp-async-jobs-number (string-to-number (shell-command-to-string "nproc"))
|
||||
native-compile-target-directory temporary-file-directory)
|
||||
|
||||
(provide 'init-native-comp)
|
@ -1,4 +0,0 @@
|
||||
(setq package-archives nil
|
||||
package-check-signature 'all)
|
||||
|
||||
(provide 'init-package)
|
@ -1,10 +0,0 @@
|
||||
(require 'pixel-scroll)
|
||||
|
||||
(setq mouse-wheel-progressive-speed nil
|
||||
pixel-dead-time 0
|
||||
pixel-wait 0
|
||||
pixel-resolution-fine-flag 10)
|
||||
|
||||
(pixel-scroll-mode 1)
|
||||
|
||||
(provide 'init-pixel-scroll)
|
@ -1 +0,0 @@
|
||||
(setq prog-mode-hook (copy-tree text-mode-hook))
|
@ -1,5 +0,0 @@
|
||||
(require 'init-text-mode)
|
||||
|
||||
(load "init-prog-mode-hooks")
|
||||
|
||||
(provide 'init-prog-mode)
|
@ -1,4 +0,0 @@
|
||||
(add-to-list 'project-find-functions (lambda (directory)
|
||||
(let ((rust-project (locate-dominating-file directory "Cargo.toml")))
|
||||
(when rust-project
|
||||
(cons 'transient rust-project)))))
|
@ -1,3 +0,0 @@
|
||||
(load "init-project-find-rust-projects")
|
||||
|
||||
(provide 'init-project)
|
@ -1,6 +0,0 @@
|
||||
(setq recentf-max-menu-items 25
|
||||
recentf-max-saved-items 25)
|
||||
|
||||
(recentf-mode 1)
|
||||
|
||||
(provide 'init-recentf)
|
@ -1,15 +0,0 @@
|
||||
(require 'savehist)
|
||||
|
||||
(defvar init-savehist-history-size 9999999999)
|
||||
|
||||
(setq savehist-file (expand-file-name "savehist" user-emacs-directory)
|
||||
savehist-save-minibuffer-history t)
|
||||
|
||||
(add-to-list 'savehist-additional-variables `(command-history . ,init-savehist-history-size))
|
||||
|
||||
(unless (file-exists-p savehist-file)
|
||||
(make-empty-file savehist-file))
|
||||
|
||||
(savehist-mode 1)
|
||||
|
||||
(provide 'init-savehist)
|
@ -1,9 +0,0 @@
|
||||
(add-hook 'text-mode-hook (lambda ()
|
||||
(display-line-numbers-mode 1)
|
||||
(visual-line-mode 1)
|
||||
(display-fill-column-indicator-mode 1)
|
||||
(electric-pair-mode 1)
|
||||
(electric-indent-mode 1)
|
||||
(setq-local display-fill-column-indicator-column 120)
|
||||
(when (require 'highlight-indentation nil t)
|
||||
(highlight-indentation-mode 1))))
|
@ -1,3 +0,0 @@
|
||||
(load "init-text-mode-hooks")
|
||||
|
||||
(provide 'init-text-mode)
|
@ -1,2 +0,0 @@
|
||||
(add-to-list 'tramp-connection-properties (list (regexp-quote (format "/sudo:root@%s:" system-name))
|
||||
"session-timeout" (* 60 20)))
|
@ -1,3 +0,0 @@
|
||||
(defun sudo-edit ()
|
||||
(interactive)
|
||||
(find-file (format "/sudo:root@%s:%s" system-name (read-file-name "Edit as root: "))))
|
@ -1,10 +0,0 @@
|
||||
(require 'tramp)
|
||||
|
||||
(setq password-cache nil
|
||||
password-cache-expiry 0
|
||||
tramp-persistency-file-name nil)
|
||||
|
||||
(load "init-tramp-connection-properties")
|
||||
(load "init-tramp-sudo-hang-fix")
|
||||
|
||||
(provide 'init-tramp)
|
@ -1,97 +0,0 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
|
||||
;; This script is a quick workaround for setting up treesitter modes.
|
||||
;; Hopefully this won't be needed for long but it works for now!
|
||||
;;
|
||||
;; This just runs through the list of modes below, checks if the
|
||||
;; required treesitter parsers are installed, and if so,
|
||||
;; sets up auto-mode-alist and interpreter-mode-alist
|
||||
;; to open the respective source files with the treesitter
|
||||
;; mode for that language.
|
||||
;;
|
||||
;; To use, you should just add the modes and other info to the list
|
||||
;; below, and then "require" this file in your init.
|
||||
;; The messages that get generated by this script may be burried
|
||||
;; by other startup messages, so it may not appear to have done
|
||||
;; anything!
|
||||
;;
|
||||
;; To test if it works, visit a file such as "x.py", then run
|
||||
;; "M-x describe-mode". There should be some info about
|
||||
;; the current major mode that looks like this:
|
||||
;;
|
||||
;; "The major mode is Python mode defined in python.el:
|
||||
;; Major mode for editing Python files, using tree-sitter library."
|
||||
|
||||
(defvar -quiet? nil
|
||||
"Suppress messages when setting up treesitter modes.")
|
||||
|
||||
(defvar -modes `((python-ts-mode
|
||||
((:parsers . python)
|
||||
(:file-ext . ,(rx ".py"))
|
||||
(:interpreters . ("python" "python3"))))
|
||||
(rust-ts-mode
|
||||
((:parsers . rust)
|
||||
(:file-ext . ,(rx ".rs"))))
|
||||
(bash-ts-mode
|
||||
((:parsers . bash)
|
||||
(:file-ext . ,(rx ".sh"))
|
||||
(:interpreters . ("bash" "sh" "openrc-run"))))
|
||||
(c-ts-mode
|
||||
((:parsers . c)
|
||||
(:file-ext . ,(rx ".c"))))
|
||||
(c++-ts-mode
|
||||
((:parsers . cpp)
|
||||
(:file-ext . ,(rx (or ".c++" ".cpp" ".cxx"
|
||||
".h++" ".hpp" ".hxx")))))
|
||||
(c-or-c++-ts-mode
|
||||
((:parsers . (c c++))
|
||||
(:file-ext . ,(rx ".h"))))
|
||||
(toml-ts-mode
|
||||
((:parsers . toml)
|
||||
(:file-ext . ,(rx ".toml")))))
|
||||
"Treesitter modes and some information required to set them up.
|
||||
|
||||
Parsers are the treesitter packages that need to be installed to
|
||||
use the associated mode. python-ts-mode requires the python treesitter
|
||||
parser package to be installed for example.
|
||||
|
||||
File extension is for example .py for python scripts. Some
|
||||
modes like c++-ts-mode are associated with a few
|
||||
extensions, and c-or-c++-mode is associated with .h
|
||||
because the extension is ambiguous.
|
||||
|
||||
Interpreters are used to associate certain shebangs with the treesitter
|
||||
mode. Files that start with '#!/usr/bin/env python' for example will
|
||||
be associated with python-ts-mode if 'python' is included in the
|
||||
interpreters list.")
|
||||
|
||||
(defun -ready-quiet? (parser)
|
||||
(treesit-ready-p parser t))
|
||||
|
||||
(cl-defun -setup-mode? (&key ts-mode
|
||||
required-parsers
|
||||
file-extensions
|
||||
interpreters)
|
||||
(when (seq-every-p '-ready-quiet? (ensure-list required-parsers))
|
||||
(add-to-list 'auto-mode-alist (cons file-extensions ts-mode))
|
||||
(when interpreters
|
||||
(seq-each (lambda (interpreter)
|
||||
(add-to-list 'interpreter-mode-alist (cons interpreter ts-mode)))
|
||||
(ensure-list interpreters)))
|
||||
t))
|
||||
|
||||
(seq-each (lambda (mode)
|
||||
(when (and (-setup-mode?
|
||||
:ts-mode (car mode)
|
||||
:required-parsers (alist-get :parsers (cadr mode))
|
||||
:file-extensions (alist-get :file-ext (cadr mode))
|
||||
:interpreters (alist-get :interpreters (cadr mode)))
|
||||
(not -quiet?))
|
||||
(message "Setup treesitter mode %s" (car mode))))
|
||||
-modes)
|
||||
|
||||
(provide 'init-treesit-setup-available-languages)
|
||||
|
||||
;; Local Variables:
|
||||
;; read-symbol-shorthands: (("-" . "init-treesit-setup-available-languages-"))
|
||||
;; End:
|
@ -1,3 +0,0 @@
|
||||
(require 'init-treesit-setup-available-languages)
|
||||
|
||||
(provide 'init-treesit)
|
@ -0,0 +1,27 @@
|
||||
;;; packages.el --- -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2023
|
||||
|
||||
;; Author: John Turner
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(use-package man-completion
|
||||
:load-path (lambda () (locate-user-emacs-file "lisp/man-completion")))
|
||||
|
||||
(use-package reload-library
|
||||
:load-path (lambda () (locate-user-emacs-file "lisp/reload-library")))
|
||||
|
||||
(use-package toggle-local-vars
|
||||
:load-path (lambda () (locate-user-emacs-file "lisp/toggle-local/vars")))
|
Loading…
Reference in New Issue