(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)) (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)) (setq native-comp-async-report-warnings-errors 'silent) (setq use-package-always-ensure t) (set-frame-parameter (selected-frame) 'alpha '(90 . 90)) (add-to-list 'default-frame-alist '(alpha . (90 . 90))) (menu-bar-mode -1) (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) (setq inhibit-startup-message t inhibit-startup-echo-area-message t) (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 :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 swiper) (global-set-key (kbd "C-s") 'swiper) (global-set-key (kbd "C-r") 'swiper-backward) (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 :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 vterm :bind (("C-c t" . ansi-term))) (use-package web-mode :mode "\\.html?\\'" :config (setq web-mode-enable-auto-pairing t web-mode-enable-auto-closing t web-mode-enable-auto-expanding t)) (use-package emmet-mode :hook ((web-mode html-mode css-mode) . emmet-mode) :config (setq emmet-expand-jsx-className? t)) (electric-pair-mode 1) (setq electric-pair-pairs '((?\" . ?\") (?\{ . ?\}) (?\( . ?\)) (?\[ . ?\]) (?\< . ?\>))) (setq electric-pair-text-pairs electric-pair-pairs) (use-package nix-mode :mode "\\.nix\\'") (use-package fennel-mode :mode "\\.fnl\\'") (use-package macrostep :hook (fennel-mode . macrostep-mode)) (use-package zig-mode :mode "\\.zig\\'" :hook ((zig-mode . lsp-deferred))) (use-package lsp-java :after lsp :config (require 'lsp-java-boot) (add-hook 'java-mode-hook #'lsp)) (custom-set-variables '(custom-safe-themes '("0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1" default))) (custom-set-faces)