dotfiles/.emacs.d/init.el

239 lines
6.7 KiB
EmacsLisp
Raw Normal View History

2020-05-22 22:05:40 +00:00
;; Made by Julien Palard <julien@palard.fr>
2014-06-22 16:16:14 +00:00
;;
;; Started on Sun Nov 16 12:00:18 2008 Julien Palard
;;
2020-05-22 22:05:40 +00:00
;; Packages I typically use can be reinstalled by using:
;; M-x package-install-selected-packages
2022-04-23 13:06:57 +00:00
;;
;; To gather tags, according to emacs doc:
;;
;; find . -name "*.[chCH]" -print | etags -
2016-07-23 11:07:07 +00:00
2021-12-05 10:38:11 +00:00
(setq user-full-name "Julien Palard"
user-mail-address "julien@palard.fr")
2021-03-22 10:18:41 +00:00
(require 'use-package)
(require 'package)
(package-initialize)
2021-11-06 09:27:06 +00:00
(server-mode)
2022-11-04 14:45:55 +00:00
2021-11-06 09:27:06 +00:00
(setq exec-path (append exec-path '("/home/mdk/.local/bin")))
2020-06-04 13:05:39 +00:00
2022-11-04 14:45:55 +00:00
(setenv "PATH" ; This is so blacken-mode can find black in ~/.local/bin/
(concat
(getenv "PATH") path-separator
(getenv "HOME") "/.local/bin/"
))
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
("org" . "https://orgmode.org/elpa/")
("melpa" . "https://melpa.org/packages/")))
2014-06-22 16:16:14 +00:00
2021-12-05 10:38:11 +00:00
;; If there are no archived package contents, refresh them
(when (not package-archive-contents)
(package-refresh-contents))
2021-09-19 12:37:32 +00:00
(use-package ido
:ensure t
:init
(ido-mode t))
2022-04-23 13:06:57 +00:00
(use-package direnv
:ensure t
:config
(direnv-mode))
2021-11-06 09:27:06 +00:00
(use-package flycheck-grammalecte
:ensure t
2022-11-04 14:45:55 +00:00
:config
(flycheck-grammalecte-setup)
(setq flycheck-global-modes '(not org-mode))
)
2021-11-06 09:27:06 +00:00
(use-package diminish
:ensure t)
2021-09-29 19:26:18 +00:00
(use-package magit
:ensure t)
2021-10-12 05:40:41 +00:00
(tool-bar-mode -1)
2021-09-19 12:37:32 +00:00
(use-package lsp-mode
:ensure t
2022-04-23 13:06:57 +00:00
:init
(setq lsp-keymap-prefix "C-c p")
2021-09-19 12:37:32 +00:00
:custom
(lsp-jedi-hover-disable-keyword-all t)
(lsp-signature-doc-lines 1)
(lsp-diagnostics-provider :none)
2021-09-19 12:37:32 +00:00
(lsp-jedi-pylsp-extra-paths [])
2021-10-12 05:40:41 +00:00
(lsp-keymap-prefix "C-c x")
2021-09-19 12:37:32 +00:00
:config
(set-face-attribute 'lsp-face-highlight-textual nil
:background "#666" :foreground "#ffffff"
)
2021-12-05 10:38:11 +00:00
:hook ((python-mode) . lsp)
2021-09-19 12:37:32 +00:00
:commands lsp-mode
)
2014-06-22 16:16:14 +00:00
2021-10-12 05:40:41 +00:00
(use-package python
:custom
(python-indent-guess-indent-offset nil)
)
(use-package lsp-ui
:ensure t)
2021-03-22 10:18:41 +00:00
2021-09-19 12:37:32 +00:00
(use-package lsp-jedi
:ensure t
:after lsp-mode
:config
(with-eval-after-load "lsp-mode"
(add-to-list 'lsp-disabled-clients 'pyls)
))
2021-06-29 16:32:31 +00:00
2021-09-29 21:06:35 +00:00
;; Test using flycheck-verify-setup
2021-09-19 12:37:32 +00:00
(use-package flycheck
2021-09-29 21:06:35 +00:00
:ensure t
:after lsp-mode
2021-09-19 12:37:32 +00:00
:config
(global-flycheck-mode t))
2021-05-01 08:40:41 +00:00
2021-09-19 12:37:32 +00:00
(use-package blacken
:ensure t
:commands (blacken-mode)
2022-11-04 14:45:55 +00:00
:hook (python-mode . blacken-mode)
:config
(setq blacken-only-if-project-is-blackened t))
2021-05-01 08:40:41 +00:00
2021-09-30 07:34:22 +00:00
(use-package org-fancy-priorities
:ensure t
:hook
(org-mode . org-fancy-priorities-mode)
:config
(setq org-fancy-priorities-list '("" "" "" "")))
2022-04-23 13:06:57 +00:00
(add-hook 'org-mode-hook
(lambda() (setq header-line-format
'(:eval (org-display-outline-path nil t " > " t)))))
2016-07-23 11:07:07 +00:00
;; Disable transient mark mode, I don't like it:
2014-06-22 16:16:14 +00:00
(transient-mark-mode nil)
2016-07-23 11:07:07 +00:00
;; Coding style
2017-11-05 23:02:53 +00:00
(setq-default indent-tabs-mode nil
tab-width 4
py-indent-offset 4
2021-11-06 09:27:06 +00:00
)
2017-11-05 23:02:53 +00:00
;; Don't show trailing whitespaces in term-mode
2014-06-22 16:16:14 +00:00
(add-hook 'term-mode-hook
(lambda() (make-local-variable 'show-trailing-whitespace)
(setq show-trailing-whitespace nil)))
(global-font-lock-mode t)
(column-number-mode t)
2017-11-05 23:02:53 +00:00
(show-paren-mode t)
2014-06-22 16:16:14 +00:00
(global-set-key "\C-cc" 'compile)
2021-12-05 10:38:11 +00:00
(global-set-key "\M-n" 'forward-paragraph)
(global-set-key "\M-p" 'backward-paragraph)
2014-06-22 16:16:14 +00:00
(global-set-key "\C-xrv" 'list-registers)
(global-set-key (kbd "M-h") 'backward-kill-word)
(global-set-key "\C-cj" 'windmove-left)
(global-set-key "\C-ck" 'windmove-down)
(global-set-key "\C-cl" 'windmove-up)
(global-set-key "\C-c;" 'windmove-right)
2016-07-23 11:07:07 +00:00
(global-set-key "\C-x\M-%" 'query-replace-regexp) ;; As C-M-% is ~impossible to type in a terminal emulator:
2018-07-21 08:45:01 +00:00
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-switchb)
2021-10-12 05:40:41 +00:00
(global-set-key "\C-\M-v" 'clipboard-yank)
2021-12-05 10:38:11 +00:00
(add-hook 'before-save-hook 'delete-trailing-whitespace)
2021-05-01 08:40:57 +00:00
(add-hook 'after-init-hook 'global-company-mode)
2014-06-22 16:16:14 +00:00
2021-12-05 10:38:11 +00:00
(setq version-control t ; (for backup files)
mouse-yank-at-point t
solarized-high-contrast-mode-line t
inhibit-startup-message t
make-backup-files t
backup-directory-alist (quote ((".*" . "~/.emacs.d/backup/")))
)
2014-06-22 16:16:14 +00:00
;; Save all backup file in this directory.
2017-11-05 23:02:53 +00:00
(setq-default delete-old-versions t)
2014-06-22 16:16:14 +00:00
2022-11-04 14:45:55 +00:00
(auto-save-visited-mode t)
(setq auto-save-visited-interval 1)
2014-06-22 16:16:14 +00:00
(fset 'yes-or-no-p 'y-or-n-p)
(setq-default truncate-partial-width-windows nil)
2015-11-28 16:54:06 +00:00
(menu-bar-mode -1)
2014-06-22 16:16:14 +00:00
2021-11-06 09:27:06 +00:00
(use-package whitespace
:diminish (whitespace-mode global-whitespace-mode whitespace-newline-mode)
:hook ((python-mode) . whitespace-mode)
:config
(setq show-trailing-whitespace t)
(setq whitespace-line-column 88)
(setq whitespace-style '(face empty tabs lines-tail trailing))
)
2015-11-28 16:54:06 +00:00
2017-11-05 23:02:53 +00:00
2015-11-28 16:54:06 +00:00
;; hex color
(defvar hexcolour-keywords
2020-06-03 09:37:25 +00:00
'(("#[a-fA-F[:digit:]]\\{3,6\\}"
2015-11-28 16:54:06 +00:00
(0 (let ((colour (match-string-no-properties 0)))
(if (or (= (length colour) 4)
(= (length colour) 7))
(put-text-property
(match-beginning 0)
(match-end 0)
'face (list :background (match-string-no-properties 0)
:foreground (if (>= (apply '+ (x-color-values
(match-string-no-properties 0)))
(* (apply '+ (x-color-values "white")) .6))
"black" ;; light bg, dark text
"white" ;; dark bg, light text
)))))
append))))
2017-11-05 23:02:53 +00:00
2015-11-28 16:54:06 +00:00
(defun hexcolour-add-to-font-lock ()
(interactive)
(font-lock-add-keywords nil hexcolour-keywords t))
(add-hook 'css-mode-hook 'hexcolour-add-to-font-lock)
(add-hook 'sass-mode-hook 'hexcolour-add-to-font-lock)
2020-06-03 09:37:25 +00:00
(add-hook 'emacs-lisp-mode-hook 'hexcolour-add-to-font-lock)
2020-06-04 13:05:39 +00:00
(add-hook 'conf-xdefaults-mode-hook 'hexcolour-add-to-font-lock)
2015-11-28 16:54:06 +00:00
(yas-global-mode 1)
2016-07-23 11:15:22 +00:00
(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.
2020-05-14 15:52:40 +00:00
'(c-basic-offset 4)
2021-03-22 10:18:41 +00:00
'(frame-background-mode 'dark)
2020-06-02 19:50:57 +00:00
'(package-selected-packages
2022-11-04 14:45:55 +00:00
'(rust-mode flycheck-grammalecte blacken spacemacs-theme company yasnippet-snippets use-package zenburn-theme markdown-mode org po-mode yaml-mode)))
2021-10-12 05:40:41 +00:00
(load-theme 'spacemacs-light t)
2021-03-22 10:18:41 +00:00
(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.
)
2021-10-12 05:40:41 +00:00
2022-11-04 14:45:55 +00:00
(add-to-list 'default-frame-alist '(font . "DejaVuSansMono:size=18"))
(set-face-attribute 'default t :font "DejaVuSansMono:size=18")