;; Evil mode (vim binds) (require 'evil) (evil-mode t) ;; Projectile (Project management) (projectile-mode +1) ;; Recommended keymap prefix on macOS ;; (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) ;; Recommended keymap prefix on Windows/Linux (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) ;; Treemacs (with-eval-after-load 'treemacs (define-key treemacs-mode-map [mouse-1] #'treemacs-single-click-expand-action)) (global-set-key (kbd "M-d") 'treemacs) ;; Alt + d to open treemacs ;; Startup stuff (setq inhibit-startup-message nil visible-bell nil) ;; Don't the bell thing ;; Remove ugly bars (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) ;; Disable backup files etc. (setq make-backup-files nil) ;; Melpa (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (package-initialize) (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 '("e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "7a424478cb77a96af2c0f50cfb4e2a88647b3ccca225f8c650ed45b7f50d9525" "02f57ef0a20b7f61adce51445b68b2a7e832648ce2e7efb19d217b6454c1b644" "a44e2d1636a0114c5e407a748841f6723ed442dc3a0ed086542dc71b92a87aee" "7e377879cbd60c66b88e51fad480b3ab18d60847f31c435f15f5df18bdb18184" default)) '(elcord-display-buffer-details nil) '(elcord-display-elapsed t) '(elcord-editor-icon "emacs_material_icon") '(elcord-idle-message "Thinking...") '(elcord-idle-timer 300) '(elcord-quiet t) '(elcord-use-major-mode-as-main-icon nil) '(package-selected-packages '(sublimity typescript-mode glsl-mode format-all hl-todo elcord evil-tabs evil-commentary format-all auto-complete editorconfig haskell-mode counsel ivy go-mode rust-mode use-package treemacs-evil treemacs projectile doom-themes lsp-mode evil))) (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. ) ;; LSP (require 'use-package) (use-package lsp-mode :hook ((c-mode ; clangd c++-mode ; clangd c-or-c++-mode ; clangd java-mode ; eclipse-jdtls js-mode ; ts-ls (tsserver wrapper) js-jsx-mode ; ts-ls (tsserver wrapper) typescript-mode ; ts-ls (tsserver wrapper) python-mode ; pyright web-mode ; ts-ls/HTML/CSS haskell-mode ; haskell-language-server lisp-mode ; rust-mode ; go-mode ; ) . lsp-deferred) :commands lsp :config (setq lsp-auto-guess-root t) (setq lsp-log-io nil) (setq lsp-restart 'auto-restart) (setq lsp-enable-symbol-highlighting nil) (setq lsp-enable-on-type-formatting nil) (setq lsp-signature-auto-activate nil) (setq lsp-signature-render-documentation nil) (setq lsp-eldoc-hook nil) (setq lsp-modeline-code-actions-enable nil) (setq lsp-modeline-diagnostics-enable nil) (setq lsp-headerline-breadcrumb-enable nil) (setq lsp-semantic-tokens-enable nil) (setq lsp-enable-folding nil) (setq lsp-enable-imenu nil) (setq lsp-enable-snippet nil) (setq read-process-output-max (* 1024 1024)) ;; 1MB (setq lsp-idle-delay 0.5)) ;; Ivy (ivy-mode) (setq ivy-use-virtual-buffers t) (setq ivy-use-selectable-prompt t) (setq enable-recursive-minibuffers t) ;; enable this if you want `swiper' to use it ;; (setq search-default-mode #'char-fold-to-regexp) (global-set-key "\C-s" 'swiper) (global-set-key (kbd "C-c C-r") 'ivy-resume) (global-set-key (kbd "") 'ivy-resume) (global-set-key (kbd "M-x") 'counsel-M-x) (global-set-key (kbd "M-f") 'counsel-find-file) (global-set-key (kbd " f") 'counsel-describe-function) (global-set-key (kbd " v") 'counsel-describe-variable) (global-set-key (kbd " o") 'counsel-describe-symbol) (global-set-key (kbd " l") 'counsel-find-library) (global-set-key (kbd " i") 'counsel-info-lookup-symbol) (global-set-key (kbd " u") 'counsel-unicode-char) (global-set-key (kbd "C-c g") 'counsel-git) (global-set-key (kbd "C-c j") 'counsel-git-grep) (global-set-key (kbd "C-c k") 'counsel-ag) (global-set-key (kbd "C-x l") 'counsel-locate) (global-set-key (kbd "C-S-o") 'counsel-rhythmbox) (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history) ;; Editorconfig (editorconfig-mode 1) ;; Autocomplete (ac-config-default) ;; Evil Commentary (comment thing) (evil-commentary-mode) ;; HL TODO FIXME DEBUG STUB NOTE BUG (hl-todo-mode) ;; Formatter (format-all) (global-set-key (kbd "M-g") 'format-all-buffer) (add-hook 'prog-mode-hook #'format-all-ensure-formatter) ;; Elcord (elcord-mode) ;; Loading config stuff (load "$HOME/.config/emacs/config.el")