I've set `lexical-binding` to `nil` in all Emacs Lisp files to suppress
the warnings introduced in Emacs 31 requiring all elisp files to have a
`lexical-binding` comment.
This retains the default behavior of dynamic binding when no
`lexical-binding` comment is present. With it set to `t` across the
board, various things break, and fixing those is a task for another day.
The core setup files for Emacs Siren which lives in the core directory
followed a `siren-*.el` naming convention, which is the same as the
naming convention for modules.
This means that the `modules/core/siren-packages.el` module for adding
packages for Emacs package development, was not being loaded due to it's
name conflicting with `core/siren-packages.el` which sets up and
configures the packaging system.
So all files under the root `core` directory now follow a
`siren-core-*.el` naming scheme, meaning modules should no longer
conflict with core files.
- Move most logic from init.el into core/siren-init.el.
- Move siren-modules.el and siren-theme.el into core/ directory.
- Create core/siren-vendor.el to deal with setting up the vendor load
paths.
- Let core/siren-modules.el and core/siren-theme.el deal with setting
up their own relevant load paths.
I've taken a lot of inspiration from Emacs-Prelude when it came to the
structure of this rewritten config. I didn't want to use Prelude as I
don't agree with all it's defaults, nor do I want to have to deal with
any future changes in Prelude that might break things for me. So instead
I went down the fully custom path, but heavily inspired by Prelude, both
in terms of file/code structure, and also some of it's features.
Compared to my old config setup, it's got most of the same things, but
nearly everything is in a module file now, making it easy to fully
enable/disable certain features.