blob: e564bb235a176a39694b18ed3ed6474d5820f07b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#+TITLE: My configuration
#+AUTHOR: Andrew Guschin
#+PROPERTY: tangle yes
#+BEGIN_SRC emacs-lisp
(when (package-installed-p 'ayu-theme)
(load-theme 'ayu-grey t))
(add-to-list 'default-frame-alist
'(font . "FiraCode Nerd Font 15"))
;;; GUI settings:
(when (eq system-type 'gnu/linux)
(menu-bar-mode -1))
(when (eq system-type 'darwin)
(menu-bar-mode t))
(tool-bar-mode -1)
(toggle-scroll-bar -1)
(xterm-mouse-mode 1)
(buffer-face-mode)
(global-set-key (kbd "C-<wheel-up>") 'ignore)
(global-set-key (kbd "C-<wheel-down>") 'ignore)
(setq-default display-line-numbers-mode nil)
(setq-default display-line-numbers nil)
(add-hook 'prog-mode-hook
(lambda () (display-line-numbers-mode t)))
(pixel-scroll-precision-mode t)
(setq frame-resize-pixelwise t)
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq-default c-default-style "bsd")
(setq-default c-basic-offset 4)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(defun ensure-packages (packages)
(dolist (name packages)
(unless (package-installed-p name)
(package-install name))))
(ensure-packages '(evil))
(use-package evil
:hook
(evil-insert-state-entry . (lambda () (setq display-line-numbers t)))
:hook
(evil-normal-state-entry . (lambda () (setq display-line-numbers 'relative)))
:config
(evil-mode 1))
(ensure-packages '(ayu-theme))
(ensure-packages '(magit))
(ensure-packages '(paredit rainbow-delimiters))
(use-package paredit
:hook
(emacs-lisp-mode . paredit-mode))
(use-package rainbow-delimiters
:hook
(emacs-lisp-mode . rainbow-delimiters-mode))
(ensure-packages '(exec-path-from-shell))
(use-package exec-path-from-shell
:config
(when (memq window-system '(mac ns x))
(setenv "EMACS" "emacs")
(setq exec-path-from-shell-variables
'("PATH" "CARGO_HOME" "RUSTUP_HOME" "GOPATH"
"RYE_HOME" "NPM_CONFIG_USERCONFIG"
"STACK_ROOT" "GHCUP_USE_XDG_DIRS"))
(exec-path-from-shell-initialize)))
(ensure-packages '(rust-mode
lsp-java
lsp-ui
company
helm
avy))
(use-package lsp-mode
:init
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
(setq lsp-keymap-prefix "C-c l")
(use-package rust-mode)
(use-package lsp-java)
(setq lsp-java-server-install-dir
(concat (getenv "HOME") "/.local/share/jdtls/"))
;; if you want which-key integration
;;(lsp-mode . lsp-enable-which-key-integration))
:hook ((rust-mode . lsp)
(java-mode . lsp)
(c++-mode . lsp))
:commands lsp)
(use-package lsp-ui :commands lsp-ui-mode)
(use-package helm-lsp :commands helm-lsp-workspace-symbol)
(defun my-backup-file-name (fpath)
"Return a new file path of a given file path. If the new path's
directories does not exist, create them."
(let* ((backupRootDir (expand-file-name "backup" user-emacs-directory))
(filePath (replace-regexp-in-string "[A-Za-z]:" "" fpath )) ; remove Windows driver letter in path, for example, “C:”
(backupFilePath (replace-regexp-in-string "//" "/" (concat backupRootDir filePath "~") )))
(make-directory (file-name-directory backupFilePath) (file-name-directory backupFilePath))
backupFilePath))
(setq make-backup-file-name-function 'my-backup-file-name)
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file)
#+END_SRC
|