-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.el
211 lines (187 loc) · 8.07 KB
/
init.el
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
;;; init.el --- Load the full configuration -*- lexical-binding: t -*-
;;; Code:
(defvar lisp-directories '("config-common" "config-language" "config-custom"))
(dolist (dir lisp-directories)
(add-to-list 'load-path (expand-file-name dir user-emacs-directory)))
;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;;----------------------------------------------------------------------------
;; Bootstrap package manager 'straight.el'
;;----------------------------------------------------------------------------
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(defvar package-list '(
all-the-icons
apheleia
chatgpt-shell
company
company-box
company-quickhelp
company-restclient
comment-dwim-2
consult ; Consulting completing-read
consult-org-roam
corfu ; Completion Overlay Region FUnction
counsel
dired-ranger
direnv
doom-modeline
doom-themes
drag-stuff
editorconfig
eldoc-box ; childframe doc for eglot and anything that uses eldoc
evil ; The extensible vi layer for Emacs.
evil-surround
evil-textobj-anyblock
evil-textobj-tree-sitter
exec-path-from-shell
exec-path-from-shell; Get environment variables such as $PATH from the shell
expand-region
f ; Modern API for working with files and directories
find-file-in-project
flycheck
flycheck-color-mode-line
flycheck-yamllint
flyspell-correct-popup ; Correcting words with flyspell via popup interface
flyspell-popup ; Correcting words with Flyspell in popup menus
general ; More convenient key definitions in emacs
guess-language ; Robust automatic language detection
helpful ; A better help buffer
htmlize ; Convert buffer text and decorations to HTML
hydra
ibuffer-projectile
imenu-list ; Show imenu entries in a separate buffer
ivy
ivy-yasnippet
jest-test-mode
js2-mode
json-mode ; Major mode for Json
lsp-mode
lsp-ui
magit ; A Git porcelain inside Emacs.
marginalia ; Enrich existing commands with completion annotations
markdown-mode ; Major mode for Markdown-formatted text
markdown-toc
mini-frame ; Show minibuffer in child frame on read-from-minibuffer
orderless ; Completion style for matching regexps in any order
ob-restclient
prettier
projectile ; Projectile
request
restclient
rustic
savehist ; Persist history over Emacs restarts.
smex
smartparens
string-inflection ; underscore -> UPCASE -> CamelCase conversion of names
org-appear
org-download
org-roam
org-web-tools
tabbar
tide
treemacs
treemacs-projectile
treesit-auto ; Automatic installation, usage, and fallback for tree-sitter
use-package ; A configuration macro for simplifying your .emacs
vertico ; VERTical Interactive COmpletion
web-mode
wgrep
which-key ; Display available keybindings in popup
yaml-mode ; YAML mode
yasnippet
zoxide
))
;; copilot is compiled from source
(use-package copilot
:straight (:host github :repo "zerolfx/copilot.el" :files ("dist" "*.el"))
:ensure t)
(use-package openai
:straight (:host github :repo "emacs-openai/openai")
:ensure t)
(use-package org-footnote-assistant
:straight (:host github :repo "lazzalazza/org-footnote-assistant")
:ensure t)
(use-package delve
:straight (:host github :repo "publicimageltd/delve")
:ensure t)
(use-package kotlin-ts-mode
:straight (:host gitlab :repo "bricka/emacs-kotlin-ts-mode")
:mode "\\.kt\\'" ; if you want this mode to be auto-enabled
)
;; Install packages that are not yet installed
(dolist (package package-list)
(straight-use-package package))
;;----------------------------------------------------------------------------
;; Bootstrap config
;;----------------------------------------------------------------------------
(require 'init-system)
(require 'init-utils)
(require 'init-dired)
(require 'init-exec-path)
;;----------------------------------------------------------------------------
;; GUI config
;;----------------------------------------------------------------------------
(require 'init-gui)
(require 'init-eldoc)
;;----------------------------------------------------------------------------
;; Control
;;----------------------------------------------------------------------------
(require 'init-ivy)
(require 'init-evil)
(require 'evil-textobj-line)
(require 'custom-macro)
(require 'init-company)
(require 'init-flycheck)
(require 'init-treemacs)
(require 'init-ffip)
(require 'init-hydra)
(require 'init-magit)
;;----------------------------------------------------------------------------
;; Programming
;;----------------------------------------------------------------------------
(require 'init-ts)
;; (require 'init-typescript)
;; (require 'init-typescript-extended)
;; (require 'init-tide-yarn2)
;; (require 'init-javascript)
(require 'init-go)
(require 'init-markdown)
(require 'init-restclient)
(require 'init-rust)
(require 'init-org)
(require 'init-org-roam)
(require 'init-org-hydra)
(require 'init-language-etc)
(require 'init-chatgpt-shell)
;;----------------------------------------------------------------------------
;; Minor mode
;;----------------------------------------------------------------------------
(require 'markdown-daily-mode)
(require 'init-copilot)
;;----------------------------------------------------------------------------
;; Keyboard binding
;;----------------------------------------------------------------------------
(require 'init-yasnippet)
(require 'init-misc)
(require 'init-custom-fns)
(require 'init-bindings)
(require 'node-string)
(require 'node-binding)
;;----------------------------------------------------------------------------
;; hydra
;;----------------------------------------------------------------------------
(require 'init-hydra)
(require 'init-general-command)
;; (require 'semgrep)
(require 'init-machine)
;;; init.el ends here