From e7e812f7c720917eb30afaa0840518fc8c1b000c Mon Sep 17 00:00:00 2001 From: coast Date: Mon, 30 Jun 2025 00:08:39 +0330 Subject: [PATCH] i now use elpaca --- .emacs.d/init.el | 195 +++++++++++++++++++---------------------------- 1 file changed, 79 insertions(+), 116 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index f3db1e6..b55550b 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1,31 +1,59 @@ -;; coasteen's Emacs full init.el :3 +(defvar elpaca-installer-version 0.11) +(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) +(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) +(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) -;; --------------------------- -;; PACKAGE & USE-PACKAGE SETUP -;; --------------------------- -(require 'package) -(setq package-archives - '(("melpa" . "https://melpa.org/packages/") - ("gnu" . "https://elpa.gnu.org/packages/"))) -(package-initialize) -(unless package-archive-contents - (package-refresh-contents)) +(defvar elpaca-order + '(elpaca + :repo "https://github.com/progfolio/elpaca.git" + :ref nil + :depth 1 + :inherit ignore + :files (:defaults "elpaca-test.el" (:exclude "extensions")) + :build (:not elpaca--activate-package))) + +(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) + (build (expand-file-name "elpaca/" elpaca-builds-directory)) + (order (cdr elpaca-order)) + (default-directory repo)) + (add-to-list 'load-path (if (file-exists-p build) build repo)) + (unless (file-exists-p repo) + (make-directory repo t) + (when (<= emacs-major-version 28) + (require 'subr-x)) + (condition-case-unless-debug err + (if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) + ((zerop (apply #'call-process + "git" nil buffer t + "clone" + ,@(when-let ((depth (plist-get order :depth))) + (list (format "--depth=%d" depth) "--no-single-branch")) + (plist-get order :repo) + repo))) + ((zerop (call-process "git" nil buffer t "checkout" (or (plist-get order :ref) "--")))) + (emacs (concat invocation-directory invocation-name)) + ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" + "--eval" "(byte-recompile-directory \".\" 0 'force)"))) + ((require 'elpaca)) + ((elpaca-generate-autoloads "elpaca" repo))) + (progn (message "%s" (buffer-string)) (kill-buffer buffer)) + (error "%s" (with-current-buffer buffer (buffer-string)))) + ((error) + (warn "%s" err) + (delete-directory repo 'recursive))))) +(unless (require 'elpaca-autoloads nil t) + (require 'elpaca) + (elpaca-generate-autoloads "elpaca" (expand-file-name "elpaca/" elpaca-repos-directory)) + (let ((load-source-file-function nil)) + (load "./elpaca-autoloads"))) +(add-hook 'after-init-hook #'elpaca-process-queues) + +(elpaca elpaca-order) +(elpaca elpaca-use-package + (elpaca-use-package-mode)) -(unless (package-installed-p 'use-package) - (package-install 'use-package)) -(require 'use-package) -(setq use-package-always-ensure t) (setq native-comp-async-report-warnings-errors 'silent) - -;; --------------------------- -;; APPEARANCE & THEMES -;; --------------------------- -(set-frame-parameter (selected-frame) 'alpha '(95 . 95)) -(add-to-list 'default-frame-alist '(alpha . (95 . 95))) - -(use-package doom-themes - :config - (load-theme 'doom-one t)) +(setq use-package-always-ensure t) (set-frame-parameter (selected-frame) 'alpha '(90 . 90)) (add-to-list 'default-frame-alist '(alpha . (90 . 90))) @@ -34,78 +62,47 @@ (tool-bar-mode -1) (scroll-bar-mode -1) +(use-package doom-themes + :config (load-theme 'doom-one t)) + (use-package rainbow-mode :hook (prog-mode . rainbow-mode)) (global-display-line-numbers-mode t) (setq ring-bell-function 'ignore) -;; --------------------------- -;; UI & INTERFACE -;; --------------------------- (setq inhibit-startup-message t inhibit-startup-echo-area-message t) -(use-package all-the-icons - :if (display-graphic-p)) - -(use-package powerline - :ensure t - :config - (powerline-default-theme)) - -(use-package elcord - :config (elcord-mode)) - +(use-package all-the-icons :if (display-graphic-p)) +(use-package powerline :config (powerline-default-theme)) +(use-package elcord :config (elcord-mode)) (use-package minimap) - -(use-package neotree - :bind ([f9] . neotree-toggle)) - -(use-package vertico - :init (vertico-mode)) - -(use-package marginalia - :after vertico - :hook (vertico-mode . marginalia-mode)) - +(use-package neotree :bind ([f9] . neotree-toggle)) +(use-package vertico :init (vertico-mode)) +(use-package marginalia :hook (vertico-mode . marginalia-mode)) (use-package consult :bind (("C-s" . consult-line) ("C-x b" . consult-buffer))) +(use-package which-key :config (which-key-mode)) -(use-package which-key - :config (which-key-mode)) - -;; --------------------------- -;; EDITOR BEHAVIOR -;; --------------------------- +(use-package swiper) (global-set-key (kbd "C-s") 'swiper) (global-set-key (kbd "C-r") 'swiper-backward) -(use-package swiper) - -(use-package company - :hook (prog-mode . company-mode)) - -(use-package yasnippet - :hook (prog-mode . yas-minor-mode)) - -(use-package flycheck - :hook (prog-mode . flycheck-mode)) +(use-package company :hook (prog-mode . company-mode)) +(use-package yasnippet :hook (prog-mode . yas-minor-mode)) +(use-package flycheck :hook (prog-mode . flycheck-mode)) (use-package lsp-mode - :commands lsp - :init - (setq lsp-keymap-prefix "C-c l") + :init (setq lsp-keymap-prefix "C-c l") :hook ((java-mode . lsp) (c-mode . lsp) (sh-mode . lsp))) -(use-package lsp-ui - :commands lsp-ui-mode) +(use-package lsp-ui :commands lsp-ui-mode) -(use-package vterm - :bind (("C-c t" . ansi-term))) +(use-package vterm :bind (("C-c t" . ansi-term))) (use-package web-mode :mode "\\.html?\\'" @@ -116,39 +113,19 @@ (use-package emmet-mode :hook ((web-mode html-mode css-mode) . emmet-mode) - :config - (setq emmet-expand-jsx-className? t)) + :config (setq emmet-expand-jsx-className? t)) (electric-pair-mode 1) - -(setq electric-pair-pairs '( - (?\" . ?\") - (?\{ . ?\}) - (?\( . ?\)) - (?\[ . ?\]) - (?\< . ?\>) -)) - +(setq electric-pair-pairs + '((?\" . ?\") (?\{ . ?\}) (?\( . ?\)) (?\[ . ?\]) (?\< . ?\>))) (setq electric-pair-text-pairs electric-pair-pairs) -;; --------------------------- -;; LANGUAGE SUPPORT -;; --------------------------- -(use-package nix-mode - :mode "\\.nix\\'") - -(use-package fennel-mode - :mode "\\.fnl\\'") - -(use-package macrostep - :hook (fennel-mode . macrostep-mode)) - +(use-package nix-mode :mode "\\.nix\\'") +(use-package fennel-mode :mode "\\.fnl\\'") +(use-package macrostep :hook (fennel-mode . macrostep-mode)) (use-package zig-mode - :ensure t :mode "\\.zig\\'" - :hook ((zig-moed . lsp-deferred))) ;; if lsp is used :3 - -(use-package cc-mode) + :hook ((zig-mode . lsp-deferred))) (use-package lsp-java :after lsp @@ -156,23 +133,9 @@ (require 'lsp-java-boot) (add-hook 'java-mode-hook #'lsp)) -(use-package sh-script) - -;; more bs - (custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. '(custom-safe-themes '("0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1" - default)) - '(package-selected-packages nil)) + default))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) +(custom-set-faces)