-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.el
153 lines (127 loc) · 7.13 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
;;; init.el --- Main initialization routine -*- lexical-binding: t; -*-
;; GNU Emacs / N Λ N O - Emacs made simple
;; Copyright (C) 2023-2024 - N Λ N O developers
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; The main initialization code. Contains general settings and
;; installation of dependencies.
;;; Code:
;; Libraries load path
(add-to-list 'load-path
(expand-file-name "lisp" user-emacs-directory))
(add-to-list 'load-path
(expand-file-name "theme" user-emacs-directory))
;; Setup dependencies
(require 'nano-package)
(setq package-list
'(ag ; Integration of ag search utility
auctex ; Integrated environment for *TeX*
avy ; Jump to things in Emacs tree-style
bind-key ; A simple way to manage personal keybindings
centered-cursor-mode ; An emacs minor mode for smooth scrolling
consult ; Consulting completing-read
consult-eglot ; Jump to workspace symbols with eglot and consult
company ; Modular auto-completion framework
diff-hl ; Package for highlighting uncommitted changes
dired-quick-sort ; Persistent quick sorting of dired buffers in various ways
drag-stuff ; Drag stuff around in Emacs. Like in Eclipse
engine-mode ; Minor mode for defining and querying search engines through Emacs
evil-nerd-commenter ; Comment/uncomment lines efficiently. Like Nerd Commenter in Vim
exec-path-from-shell ; Make Emacs use the $PATH set up by the user's shell
f ; Modern API for working with files and directories
flatbuffers-mode ; Emacs mode for flatbuffers featuring syntax highlighting
flyspell-correct-popup ; Correcting words with flyspell via popup interface
flyspell-popup ; Correcting words with flyspell in popup menus
format-all ; Auto-format source code in many languages with one command
git-modes ; Emacs major modes for Git configuration files
go-impl ; impl for Emacs
gotest ; Emacs mode to go unit test command line tool
helpful ; A better help buffer
hl-todo ; Highlight TODO keywords
jinx ; Enchanted Spell Checker
ligature ; Display typographical ligatures in Emacs
magit ; A Git porcelain inside Emacs
marginalia ; Enrich existing commands with completion annotations
markdown-mode ; Major mode for Markdown-formatted text
markdown-toc ; Generate a TOC in markdown file
orderless ; Completion style for matching regexps in any order
org-auto-tangle ; Tangle org file when it is saved
pinentry ; GnuPG Pinentry server implementation
poetry ; Python dependency management and packaging in Emacs
raku-mode ; Emacs major mode for Raku
realgud ; The Grand "Cathedral" Debugger rewrite
rfc-mode ; An Emacs major mode to read and browse RFC documents
russian-holidays ; Russian holidays for GNU/Emacs calendar
s ; The long lost Emacs string manipulation library
ssh-config-mode ; Emacs mode for editing ssh config files
smartparens ; Minor mode for Emacs that deals with parens pairs and tries to be smart about it
smex ; A smart M-x enhancement for Emacs
treesit-auto ; Automatic installation, usage, and fallback for tree-sitter major modes in Emacs 29
vertico ; VERTical Interactive Completion
ws-butler ; Unobtrusively trim extraneous white-space *ONLY* in lines edited.
yasnippet)) ; A template system for Emacs
;; Install packages that are not yet installed
(dolist (package package-list)
(straight-use-package package))
;; Major mode for editing pip requirements files
(straight-use-package
'(pip-requirements :type git :host github :repo "Wilfred/pip-requirements.el"
:fork (:host github :repo "alkurbatov/pip-requirements.el")))
;; GNU Emacs / N Λ N O Modeline
(straight-use-package
'(nano-modeline :type git :host github :repo "rougier/nano-modeline"))
;; Special case for pdf-tools that has recently (2022) changed maintainer
(straight-use-package
'(pdf-tools :type git :host github :repo "vedang/pdf-tools"))
;; Collection of flymake checkers
(straight-use-package
'(flymake-collection :type git :host github :repo "mohkale/flymake-collection"
:fork (:host github :repo "alkurbatov/flymake-collection")))
;; Flymake diagnostics on cursor hover
(straight-use-package
'(flymake-popon
:type git
:repo "https://codeberg.org/akib/emacs-flymake-popon.git"))
;; Emulate A Terminal, in a region, in a buffer and in Eshell
(straight-use-package
'(eat :type git
:host codeberg
:repo "akib/emacs-eat"
:files ("*.el" ("term" "term/*.el") "*.texi"
"*.ti" ("terminfo/e" "terminfo/e/*")
("terminfo/65" "terminfo/65/*")
("integration" "integration/*")
(:exclude ".dir-locals.el" "*-tests.el"))))
;; An Emacs minor mode for highlighting matches to the selection
(straight-use-package
'(selection-highlight-mode :type git :host github :repo "balloneij/selection-highlight-mode"))
;; Tree sitter support for Protobuf
(straight-use-package
'(protobuf-ts-mode :type git :host github :repo "emacsattic/protobuf-ts-mode"))
;; Tree sitter support for Makefiles
(straight-use-package
'(makefile-ts-mode :type git :host github :repo "nverno/makefile-ts-mode"))
;; Emacs major mode for readline inputrc configs
(straight-use-package
'(inputrc-mode :type git :host github :repo "nverno/inputrc-mode"))
;; Emacs mode for Bazel
(straight-use-package
'(emacs-bazel-mode :type git :host github :repo "bazelbuild/emacs-bazel-mode"))
;; Fast, configurable indentation guide-bars for Emacs
(straight-use-package
'(indent-bars :type git :host github :repo "jdtsmith/indent-bars"))
;; Run subtests and test with TreeSitter and gotest.el
(straight-use-package
'(gotest-ts :type git :host github :repo "chmouel/gotest-ts.el"))
;; Load settings
(require 'nano)
;;; init.el ends here