diff --git a/.gitignore b/.gitignore index f8f18a4..44b2b30 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ history ido.last recentf eln-cache/ +elpa/ tree-sitter/ tutorial/ auto-save-list/ diff --git a/init.el b/init.el index 9fa309a..d0d4166 100644 --- a/init.el +++ b/init.el @@ -4,7 +4,7 @@ (column-number-mode 1) ;; Set custom tab width here -(setq custom-tab-width 8) +(defvar custom-tab-width 8) ;; Temporary file config (setq backup-directory-alist @@ -14,7 +14,7 @@ ;; Fixes to stop weird window geometry issues (setq frame-inhibit-implied-resize t) -(setq frame-resize-pixelwise t) +(setq frame-resize-pixelwise t) ;; Ensure that tabs are default over spaces (setq-default tab-width custom-tab-width) @@ -62,39 +62,11 @@ ;; Track recently opened files (recentf-mode 1) -;; Ido Config -(setq ido-everywhere 1) -(setq ido-use-virtual-buffers t) -(setq ido-enable-flex-matching t) -;;(ido-mode 1) -; Custom ido keybindings -(add-hook 'ido-setup-hook - '(lambda () - (define-key ido-completion-map (kbd "") 'ido-prev-match) - (define-key ido-completion-map (kbd "") 'ido-next-match) - - (define-key ido-completion-map (kbd "C-p") 'ido-prev-match) - (define-key ido-completion-map (kbd "C-n") 'ido-next-match) - - (define-key ido-completion-map (kbd "C-k") 'ido-prev-match) - (define-key ido-completion-map (kbd "C-j") 'ido-next-match) -)) - -;; Ido Occur - OG Swiper -;(load (expand-file-name (concat user-emacs-directory "plugins/ido-occur.el"))) -;(define-key global-map [remap isearch-forward] 'ido-occur) - ;; Stop weird C-9 keybindings causing conflicts on typo (define-key global-map [remap digit-argument] "") ;; Package management setup -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) -; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities` -; and `package-pinned-packages`. Most users will not need or want to do this. -;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) -(package-initialize) -;; Straight.el +; straight.el (defvar bootstrap-version) (let ((bootstrap-file @@ -340,6 +312,7 @@ ;; Treesit Config (use-package treesit + :ensure nil :straight nil :commands (treesit-install-language-grammar nf/treesit-install-all-languages) :init @@ -379,25 +352,43 @@ ) (setq treesit-font-lock-level 4) ; Remap basic modes to treesit equivalent +(use-package bash-ts-mode + :ensure nil + :straight nil + :mode "\\.sh\\'") +(use-package c-ts-mode + :ensure nil + :straight nil + :mode "\\.c\\'") (use-package rust-ts-mode + :ensure nil :straight nil :mode "\\.rs\\'") +(use-package swift-ts-mode + :ensure t + :mode "\\.swift\\'") (use-package nix-ts-mode + :ensure nil :straight nil :mode "\\.nix\\'") (use-package html-ts-mode + :ensure nil :straight nil :mode "\\.html\\'") (use-package css-ts-mode + :ensure nil :straight nil :mode "\\.css\\'") (use-package js-ts-mode + :ensure nil :straight nil :mode "\\.js\\'") (use-package typescript-ts-mode + :ensure nil :straight nil :mode "\\.ts\\'") (use-package tsx-ts-mode + :ensure nil :straight nil :mode "\\.tsx\\'") ;(use-package emacs-lisp-ts-mode @@ -436,11 +427,38 @@ (lambda () (setq-local rust-ts-mode-indent-offset custom-tab-width))) +;; Flymake Configuration +(use-package flymake + :ensure nil + :straight nil + :hook + (prog-mode . flymake-mode) + (emacs-lisp-mode . flymake-mode) +) +; Flyover for nice in buffer flymake error/warning messages. +(use-package flyover + :ensure t + :hook + (flymake-mode . flyover-mode) + :custom + ;; Checker settings + (flyover-checkers '(flymake)) + + ;; Display mode (controls cursor-based visibility) + (flyover-display-mode 'show-only-on-same-line) + + ;; Completion integration + (flyover-hide-during-completion t) +) + ;; LSP Configuration (use-package eglot :hook ((( - prog-mode + bash-ts-mode + c-ts-mode + rust-ts-mode + swift-ts-mode nix-ts-mode html-ts-mode css-ts-mode