Configuration files for my GNU/Linux installation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dotfiles/emacs/.config/emacs/init.el

141 lines
4.9 KiB

;; Evil mode (vim binds)
(require 'evil)
(evil-mode t)
2 years ago
;; 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))
2 years ago
(global-set-key (kbd "M-d") 'treemacs) ;; Alt + d to open treemacs
2 years ago
;; Startup stuff
2 years ago
(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.
2 years ago
'(custom-safe-themes
2 years ago
'("e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "7a424478cb77a96af2c0f50cfb4e2a88647b3ccca225f8c650ed45b7f50d9525" "02f57ef0a20b7f61adce51445b68b2a7e832648ce2e7efb19d217b6454c1b644" "a44e2d1636a0114c5e407a748841f6723ed442dc3a0ed086542dc71b92a87aee" "7e377879cbd60c66b88e51fad480b3ab18d60847f31c435f15f5df18bdb18184" default))
'(elcord-display-buffer-details nil)
2 years ago
'(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)
2 years ago
'(package-selected-packages
2 years ago
'(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)))
2 years ago
2 years ago
(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.
)
2 years ago
;; 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))
2 years ago
;; 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 "<f6>") 'ivy-resume)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "M-f") 'counsel-find-file)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> o") 'counsel-describe-symbol)
(global-set-key (kbd "<f1> l") 'counsel-find-library)
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> 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)
2 years ago
;; 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)
2 years ago
;; Loading config stuff
(load "$HOME/.config/emacs/config.el")