From ad09b481aca56cb54a2061eb2453d25f9c56e488 Mon Sep 17 00:00:00 2001 From: outfoxxed <outfoxxed@outfoxxed.me> Date: Sat, 1 Mar 2025 00:21:40 -0800 Subject: [PATCH] change dump --- init.el | 109 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 92 insertions(+), 17 deletions(-) diff --git a/init.el b/init.el index 004f238..4d8c56f 100755 --- a/init.el +++ b/init.el @@ -10,7 +10,7 @@ ;; Hide scroll bar (toggle-scroll-bar -1) ;; Use JBMono - (set-frame-font "-JB-JetBrainsMonoNL Nerd Font-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1" nil t)) + (set-frame-font "-JB-JetBrainsMonoNL Nerd Font-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1" nil t)) (apply-appearance-first-frame) (apply-appearance-per-frame) @@ -47,24 +47,42 @@ mouse-wheel-follow-mouse +1 scroll-step 1) ;; C-n C-p scroll step +;; Fix (?) mouse focus getting stuck in a single frame = https://stackoverflow.com/questions/1139124/emacs-mouse-focus-stuck-in-one-frame +(setq focus-follows-mouse t + mouse-autoselect-window t) + ;; Disable annoying bell sound (setq ring-bell-function 'ignore) ;; Highlight matching parens faster (setq show-paren-delay 0) -(setq tab-width 2) +;; Indentation +(setq-default tab-width 2) (defun disable-tabs () - (setq tab-width 2) (indent-tabs-mode -1)) (defun enable-tabs () - (setq tab-width 2) - (indent-tabs-mode +1)) + (indent-tabs-mode t)) +(setq tab-always-indent nil) ;; tab key inserts tabs after hitting indent point + +;; display mismatched whitespace at the beginning or end of lines +(add-hook 'after-change-major-mode-hook + (lambda () + (if (derived-mode-p 'prog-mode) + (progn + (if (eq indent-tabs-mode t) + (setq whitespace-style '(face indentation::tab trailing missing-newline-at-eof)) + (setq whitespace-style '(face indentation::space trailing missing-newline-at-eof))) + (whitespace-mode t))))) (add-hook 'prog-mode-hook 'enable-tabs) (add-hook 'lisp-mode-hook 'disable-tabs) (add-hook 'emacs-lisp-mode-hook 'disable-tabs) +(add-hook 'nxml-mode-hook 'enable-tabs) +(setq nxml-child-indent 2 + nxml-attribute-indent 4) + (let ((savedir (concat (file-name-as-directory (getenv "XDG_DATA_HOME")) "emacs/autosave/"))) (make-directory savedir t) (setq backup-directory-alist `(("." . ,savedir))) @@ -95,6 +113,11 @@ (setq-local interprogram-paste-function nil))) (evil-mode +1)) +(use-package evil-collection + :after evil + :config + (evil-collection-init '(magit ibuffer))) + (use-package better-jumper :after evil :config @@ -107,18 +130,14 @@ (define-key evil-normal-state-map (kbd "SPC j") #'better-jumper-set-jump) (better-jumper-mode)) -(use-package evil-collection - :after evil - :config - (evil-collection-init '(magit ibuffer))) - (use-package crux) ;; Avy (jump to char) (use-package avy - :bind (("C-;" . avy-goto-char) - ("C-:" . avy-goto-word-1) - ("M-g g" . avy-goto-line))) + :bind + (("C-;" . avy-goto-char) + ("C-:" . avy-goto-word-1) + ("M-g g" . avy-goto-line))) (use-package undo-tree :after evil @@ -130,7 +149,10 @@ (global-undo-tree-mode)) ;; Magit (git frontend) -(use-package magit) +(use-package magit + :config + (setq magit-diff-refine-hunk t + magit-diff-refine-ignore-whitespace t)) ;; Rainbow-Mode (show hex strings in color) (use-package rainbow-mode) @@ -140,7 +162,10 @@ :config (keymap-set vertico-map "M-j" #'vertico-next) (keymap-set vertico-map "M-k" #'vertico-previous) + (keymap-set vertico-map "C-j" #'vertico-next) + (keymap-set vertico-map "C-k" #'vertico-previous) (keymap-set vertico-map "M-`" #'vertico-exit) + (keymap-set vertico-map "M-ESC" #'vertico-exit) (vertico-mode)) (use-package vertico-indexed @@ -257,6 +282,7 @@ (define-key company-active-map (kbd "<return>") nil) (define-key company-active-map (kbd "RET") nil) (define-key company-active-map (kbd "M-`") #'company-complete-selection) + (define-key company-active-map (kbd "M-ESC") #'company-complete-selection) (define-key company-active-map (kbd "M-n") #'company-select-next) (define-key company-active-map (kbd "M-p") #'company-select-previous) (define-key company-active-map (kbd "M-j") #'company-select-next) @@ -306,7 +332,10 @@ (use-package lsp-treemacs :after (lsp-mode treemacs)) -;; Java lsp +(use-package kotlin-mode + :after lsp-mode + :hook (kotlin-mode . lsp-deferred)) + (use-package lsp-java :after lsp-mode :hook (java-ts-mode . lsp-deferred) @@ -318,6 +347,13 @@ "-configuration" (concat (file-name-as-directory (getenv "XDG_CACHE_HOME")) "jdtls") "-data" "../.jdtls"))) +(setq lsp-glsl-executable '("glslls" "--stdin" "--target-env" "opengl")) + +(use-package groovy-mode) + +;; Nasm support +(use-package nasm-mode) + ;; Nix support (use-package nix-mode :mode "\\.nix\\'" @@ -325,24 +361,63 @@ ;; QML Support (setq qml-ts-mode-indent-offset 2) + +;; Haskell +(use-package haskell-ts-mode + :hook (haskell-ts-mode . disable-tabs)) + +;; Zig +(use-package zig-ts-mode + :mode (("\\.zig\\'" . zig-ts-mode) + ("\\.zon\\'" . zig-ts-mode)) + :hook ((zig-ts-mode . lsp-deferred) + (zig-ts-mode . disable-tabs) + (zig-ts-mode . (lambda () (setq-local tab-width 4))))) + (use-package qml-ts-mode + :after lsp-mode :config - (add-hook 'qml-ts-mode-hook - (lambda () (setq-local electric-indent-chars '(?\n ?\( ?\) ?{ ?} ?\[ ?\] ?\; ?,))))) + (add-to-list 'lsp-language-id-configuration '(qml-ts-mode . "qml-ts")) + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection '("qmlls" "-E")) + :activation-fn (lsp-activate-on "qml-ts") + :server-id 'qmlls)) + (add-hook 'qml-ts-mode-hook (lambda () + (setq-local electric-indent-chars '(?\n ?\( ?\) ?{ ?} ?\[ ?\] ?\; ?,)) + (lsp-deferred)))) + +;; Astro support +;;(use-package astro-ts-mode + ;;:after lsp-mode + ;;:config + ;;(add-to-list 'lsp-language-id-configuration '(astro-ts-mode . "astro-ts")) + ;;(lsp-register-client + ;;(make-lsp-client :new-connection (lsp-stdio-connection "astro-ls") + ;;:activation-fn (lsp-activate-on "astro-ts") + ;;:server-id 'astro-ls))) (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-ts-mode)) +(add-to-list 'auto-mode-alist '("\\.hs\\'" . haskell-ts-mode)) (add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode)) (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-ts-mode)) +(add-to-list 'auto-mode-alist '("\\.astro\\'" . astro-ts-mode)) (add-to-list 'auto-mode-alist '("\\.toml\\'" . toml-ts-mode)) (add-to-list 'auto-mode-alist '("\\.yaml\\'" . yaml-ts-mode)) +(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-ts-mode)) (add-hook 'rust-ts-mode-hook #'lsp-deferred) (add-hook 'c++-ts-mode-hook #'lsp-deferred) (add-hook 'typescript-ts-mode-hook #'lsp-deferred) +(add-hook 'astro-ts-mode-hook #'lsp-deferred) +(add-hook 'glsl-mode-hook #'lsp-deferred) +(add-hook 'haskell-ts-mode-hook #'lsp-deferred) +(add-hook 'zig-ts-mode-hook #'lsp-deferred) ;; Fix indent (add-hook 'rust-ts-mode-hook (lambda () (setq-local electric-indent-chars '(?\n ?\( ?\) ?{ ?} ?\[ ?\] ?\; ?,)))) +(add-hook 'yaml-ts-mode #'disable-tabs) + (setq gc-cons-threshold (* 1024 1024 100) read-process-output-max (* 1024 1024))