;;; 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