;; --------------------------- ;; 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)) (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-tokyo-night 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 rainbow-mode :hook (prog-mode . rainbow-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 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 consult :bind (("C-s" . consult-line) ("C-x b" . consult-buffer))) (use-package which-key :config (which-key-mode)) ;; --------------------------- ;; EDITOR BEHAVIOR ;; --------------------------- (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 lsp-mode :commands lsp :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 :ensure t :mode "\\.nix\\'") (use-package python :ensure nil :mode ("\\.py\\'" . python-mode)) (use-package sh-script :ensure nil :mode ("\\.sh\\'" . sh-mode)) (use-package fennel-mode :ensure t :mode "\\.fnl\\'" :hook (fennel-mode . macrostep-mode)) (use-package macrostep :ensure t) (use-package zig-mode :ensure t :mode "\\.zig\\'" :hook (zig-mode . lsp-deferred)) (use-package cc-mode :ensure nil) (use-package lsp-java :after lsp :ensure t :config (require 'lsp-java-boot) (add-hook 'java-mode-hook #'lsp)) ;; 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 '(all-the-icons company consult doom-themes elcord emmet-mode evil-collection evil-commentary evil-surround fennel-mode flycheck lsp-java lsp-ui macrostep marginalia minimap neotree nix-mode powerline python-mode rainbow-mode swiper vertico vterm web-mode yasnippet zig-mode))) (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. )