Commit Graph

37 Commits

Author SHA1 Message Date
Dmitry Bogatov 38b85622a1 feat: Move "config.el" in preparation to merge into the master 2024-02-28 19:05:20 -05:00
Dmitry Bogatov 7a822796a3 emacs: Move most of the "init.el" from the master into config.el
This is a blunt tool, but I figured that it will take me forever to
group stuff into "use-package" nicely, one commit a time.
2024-02-28 15:53:36 -05:00
Dmitry Bogatov f495c9f961 emacs: Configure behaviour of single-line scroll 2024-02-28 07:38:50 -05:00
Dmitry Bogatov 8f80d42b6a emacs: Configure keybindings to toggle the russian layout 2024-02-28 07:36:41 -05:00
Dmitry Bogatov 6d4b9cf06c emacs: Configure the "elfeed" RSS reader 2024-02-27 23:18:50 -05:00
Dmitry Bogatov 6284e52893 emacs: Configure "leetcode.el" plugin
With it I can prepare to stupid interviews that use synthetic tasks
without leaving the comfort of the text editor. There are some sharp
edges (visiting "leetcode.com" in browser seems to invalidate tokens
fetched from the browser storage by "M-x leetcode"), but it is still
major quality-of-life improvement.
2024-02-25 20:12:09 -05:00
Dmitry Bogatov 761c4e8bfc emacs: Configure built-in browser
Sure, no javascript and no fancy CSS, but it is quite adequate for
many purposes.
2024-02-24 18:47:32 -05:00
Dmitry Bogatov a347ebccd7 emacs: Display completions in one column
This looks better when completion window is always docket to the
right.
2024-02-23 15:19:03 -05:00
Dmitry Bogatov 9d9ae56b0f emacs: Add colors to gemini headers
Default "bold white" is not as bright and visible-at-glance as I want
it to be.
2024-02-22 14:44:54 -05:00
Dmitry Bogatov f5b8b255cd emacs: Configure "direnv" package
This package is essential to having emacs work with projects where
"nix-shell" provides necessary interpreters, linters and compilers.
2024-02-14 19:23:00 -05:00
Dmitry Bogatov 54bd235709 emacs: Run pytest with "-q" flag
There is no point in producing much output when tests pass, and pytest
produces enough output about failed tests even with "-q".
2024-02-13 21:05:59 -05:00
Dmitry Bogatov 36f0fd9c7e emacs: Open pytest results in full-width bottom window
That makes it easier to read and copy-paste long strings in the
output.
2024-02-13 21:03:16 -05:00
Dmitry Bogatov 4e866e3987 emacs: Configure "pytest" plugin for python mode
This is quality of life improvement to be able to run individual tests
directly from the editor. This way I can write and instantly run the
test, which lends itself to actually writing these tests.

The right thing should be easy.
2024-02-13 20:56:27 -05:00
Dmitry Bogatov a63bc60837 emacs: Configure more priorities in org-mode
This enables nice grouping of lists using sort-by-priority
functionality.
2024-02-12 19:35:31 -05:00
Dmitry Bogatov fdb47eef2b emacs: Make "@haskell-run-watcher" function idempotent
Now it creates at most one watcher process per project (as defined by "package.yaml"), and
displays buffer of existing one if found.
2024-02-12 19:15:02 -05:00
Dmitry Bogatov e055f2406b emacs: Add command to start haskell build command (ghcid/yesod devel) 2024-02-12 18:45:56 -05:00
Dmitry Bogatov fb1b973d4d emacs: Change font size to 225
After about half-an-hour adaptation period, I am fine reading it, and
this way I can have more windows.
2024-02-12 13:04:39 -05:00
Dmitry Bogatov a4b36191fb emacs: Require another module from "evil" to keep byte-compiler happy 2024-02-12 13:04:07 -05:00
Dmitry Bogatov 8d1b8d7c64 emacs: Rebind "emacs-lisp-byte-compile-and-load" to "C-c C-c"
By convention, this keybinding is used for command that best suites
"yes, do it" description.
2024-02-12 13:02:08 -05:00
Dmitry Bogatov 0e253b5406 emacs: Configure color theme and font size 2024-02-12 00:50:03 -05:00
Dmitry Bogatov 097b535702 emacs: Add another "require" to keep byte-compiler happy
Without this line it would warn that `evil-delay` might not be defined
at run-time. That is not true, but this way I avoid annoying warnings
at Emacs start-up.
2024-02-12 00:48:59 -05:00
Dmitry Bogatov 58930ec3f3 emacs: Configure some system buffers to appear in side windows
This is quite convenient that help window always appears on the bottom
and has predictable width. I start to get why people like IDE's,
although how one can survive without a decent extensibility language,
is beyond me.
2024-02-12 00:26:07 -05:00
Dmitry Bogatov 6c1a89f53d emacs: Bind "RET" in insert state to indent next line
I find it quite natural for programming modes to have "RET" brings you
to the next line indented the same as previous one. No idea why it is
not a default behaviour.
2024-02-09 15:56:33 -05:00
Dmitry Bogatov 8600bd4706 emacs: Make yas-minor-mode "TAB" to fallback on underlying "TAB" definition
This is necessary so indentation commands work as expected (cycling
through possible indentation points).
2024-02-09 15:55:14 -05:00
Dmitry Bogatov 1332f84c2d emacs: Configure reading and sending email with emacs
For reading, I decided to use "notmuch" email handling system, and for
sending I already had "msmtp" configured. Works wonderful, much more
comfortable than raw mutt+procmail.
2024-02-09 11:30:01 -05:00
Dmitry Bogatov e3f6adb913 emacs: Configure "gemini-mode"
I use gemini mode for many of my personal files and lists. I disable
font size scaling, since font color distinguishes headers enough, and
I like to have a lot of headers.
2024-02-07 20:32:30 -05:00
Dmitry Bogatov dc52fb9cca emacs: Configure `yasnippets' package 2024-02-07 20:18:42 -05:00
Dmitry Bogatov 2ae923e6d1 emacs: Configure "paredit" package
This package, with some vim-style key bindings, make editing Emacs
Lisp so much more comfortable. Keybinding to splice current list is
probably the biggest quality of life improvement.
2024-02-06 22:22:13 -05:00
Dmitry Bogatov 946ab74ad2 emacs: Add Emacs Lisp binding to compile and load file
This command replicates how Emacs loads `config.el` on startup more closely
than just `eval-buffer`, being able to catch some macro misuse.

Of course, it executes with many more packages loaded, so unpleasant surprises
on actual Emacs restart are unavoidable, but we do what we can.
2024-02-06 19:52:41 -05:00
Dmitry Bogatov 07c7fc4702 emacs: Fix byte-compiler warning when compiling "config.el" 2024-02-06 19:46:08 -05:00
Dmitry Bogatov d8ec916a6f emacs: Workaround a bug in `use-package` macro
Under some circumstances, it expands to code that references variable
from a package that wasn't loaded.
2024-02-06 19:25:55 -05:00
Dmitry Bogatov f534cc0e93 emacs: Configure "macrostep" package
It is helpful to be able to understand what code `use-package' actually
generates. It is odd that such useful and powerful feature is not found in
Emacs proper, but only in some package on GitHub not updated for many years.
2024-02-06 19:02:57 -05:00
Dmitry Bogatov 81966137d6 emacs: Configure evil mode
This is basic necessity to be able to do at least some text editing
with Emacs.
2024-02-06 08:46:51 -05:00
Dmitry Bogatov 5634cb013f emacs: Git-Ignore byte-compiled Emacs Lisp files 2024-02-05 21:32:06 -05:00
Dmitry Bogatov ad075d4ad9 emacs: Make "package-install" use local snapshot of ELPA/MELPA
This way I have reproducible and offline repository of Emacs packages
to use in my personal configuration.
2024-02-05 21:30:30 -05:00
Dmitry Bogatov d6a7076275 emacs: Initial commit of new configuration
* config.el (func_name):
2024-02-05 20:22:31 -05:00
Dmitry Bogatov 1335f47174 Root commit 2024-02-05 20:02:58 -05:00