Emacs_Cfg/init.el
2025-05-29 12:34:22 +02:00

113 lines
3.4 KiB
EmacsLisp

;;; init.el --- Init file -*- lexical-binding: t -*-
;;; Commentary:
;;; Nothing to note
;;; Code:
(defun build-treesitter-grammars(l)
"Run a grammar build expression for L."
(treesit-install-language-grammar l))
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file)
(use-package package
:ensure nil
:config (package-initialize)
:custom (package--native-compile-async t)
(package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("melpa" . "https://melpa.org/packages/"))))
;; THEMES
(use-package doom-themes :ensure t :config (load-theme 'doom-dracula t))
(use-package doom-modeline :ensure t :hook (after-init . doom-modeline-mode))
(use-package all-the-icons :ensure t)
(use-package dashboard
:ensure t
:config
(setq dashboard-banner-logo-title "Sweetmacs !")
(setq dashboard-startup-banner 'logo)
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
(setq dashboard-set-footer nil)
(dashboard-setup-startup-hook))
;; UI
(use-package company :ensure t :config (global-company-mode))
(use-package company-quickhelp
:ensure t
:after company
:hook (company-mode . company-quickhelp-mode)
:config)
(use-package flycheck
:ensure t
:config
(add-hook 'after-init-hook #'global-flycheck-mode))
(use-package all-the-icons
:ensure t
:if (display-graphic-p))
(use-package magit :ensure t)
(use-package treemacs :ensure t)
;; EVIL
(use-package evil :ensure t :init (setq evil-want-keybinding nil) :config (evil-mode t))
(use-package evil-collection :ensure t :config (evil-collection-init))
;; EGLOT
(use-package eglot
:ensure t
:config
(add-to-list 'eglot-server-programs
'(gleam-ts-mode . ("gleam" "lsp"))))
;; MODES
(use-package rustic
:ensure t
:config
(setq rustic-format-on-save nil)
(setq rustic-lsp-client 'eglot)
:custom
(rustic-cargo-use-last-stored-arguments t))
(use-package astro-ts-mode :ensure t)
(use-package fennel-mode :ensure t)
(use-package slime :ensure t)
(use-package gleam-ts-mode
:ensure t
:mode (rx ".gleam" eos))
;; OTHER
(use-package projectile :ensure t)
;; TREEMACS
(use-package treemacs-projectile
:after (treemacs projectile)
:ensure t)
(use-package treemacs-evil :after (treemacs evil) :ensure t)
(use-package treemacs-magit
:after (treemacs magit)
:ensure t)
(use-package treemacs-icons-dired
:hook (dired-mode . treemacs-icons-dired-enable-once)
:ensure t)
;; E-GEX configuration
(use-package emacs :init (setq inhibit-startup-message t)
:config
(set-frame-font "jetbrains mono 12" nil t)
(menu-bar-mode 0)
(tool-bar-mode 0)
(set-scroll-bar-mode nil)
(setq inferior-lisp-program "sbcl")
(treemacs-start-on-boot)
(setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "backups"))))
(setq treesit-language-source-alist
'((astro "https://github.com/virchau13/tree-sitter-astro")
(css "https://github.com/tree-sitter/tree-sitter-css")
(tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")
(typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")
(python "https://github.com/tree-sitter/tree-sitter-python")
(rust "https://github.com/tree-sitter/tree-sitter-rust")
(gleam "https://github.com/gleam-lang/tree-sitter-gleam")))
(setq major-mode-remap-alist
'((python-mode . python-ts-mode))))
;;; init.el ends here