- Scheme 91.2%
- Common Lisp 8%
- Shell 0.8%
| inits | Update Lem personal functions | |
| lisp | Update changes with my branch | |
| .gitignore | Update changes with my branch | |
| init.lisp | Update changes with my branch | |
| launch-magit.sh | Add launch-magit file and command | |
| lem-site-init.asd | Update changes with my branch | |
| LICENSE | Add a license to the repository | |
| README.md | Change README | |
FALC (F Awesome Lem Configuration)
This is my personal Lem configuration, it's written for my needs, but feel free to copy/modify this source code (LICENSE for more info).
Features
- File-base organise and easy to extend
vi-modeoriented (mixed with GNU Emacs commands here and there)- Some handy functions for more Lem introspection
lispdirectory for external packages (that I don't want externally)
Structure
lisp directory
External packages that I use for commands on my lisp files.
scheme: This folder contains the source code from r7rs-swank, for more information https://lem-project.github.io/modes/guile/lisp-critic: It contains the source from lisp-critic, a package that with some pattern matching it detects some potential code bad practices.arrow-macros: Some handy arrows from our clojure friends arrow-macrossrfi-236: A simple multi thread taks macro that I don't use (yet), https://github.com/g000001/srfi-236modeline-battery: A Lem library that I have locally.
inits directory
The files are organise in a simple way, each one contains some functions/configuration related to the name.
-
aa-init.lisp: First file to load, it add some symbols to the Lem package and add a simple define-keys macro. -
elixir-mode.lisp: Elixir specific configuration, for now, only the lsp path. -
general.lisp: Main file, it contains most of my keybindings and some specific Lem modes configuration. -
js-mode.lisp: Javascript related configuration, for now, only the lsp specification. -
lisp-mode.lisp: Common Lisp related configuration, some keybindings + custom functions. -
magit.lisp: This file launch magit.el from the GNU Emacs daemon, for more information, read it :). -
misc-commands.lisp: Some personal commands that doesn't belong to any specific category -
scheme-mode.lisp: Scheme related configuration, it's mostly focus on Guile now. -
vi-configuration.lisp: vi-mode keybindings customisation.
Useful commands
-
rgrep: It emulates the rgrep command from GNU Emacs, by default it uses The Silver Searcher -
open-init-file: Opens the inits directory, handy to quickly navigate to a configuration file. -
f/goto-key-definition: To check the code of a key combination. -
pwd: It mimics the pwd functionality of the same name GNU Emacs command. -
f/critic-reference: It launches thelisp-criticon the current point (it critiques the current function, basically.)
Tips
To add a personalize configuration, just add a file on the inits directory, it should load it at start.
On Linux, it loads quite fast because of the sbcl cache, that compile the configuration to .fasl .
To add a new library, add the library directory (with the same name as the .asd file) to the lisp directory,
then add the library name to the lem-site-init.asd file, adding the keyword name of the library to the s-expression below :depends-on.
Highlights
I changed the default describe-symbol to be like the "old" Lem style one,
with a simple buffer on top (https://codeberg.org/sasanidas/lem-config/src/branch/master/inits/lisp-mode.lisp#L59).
I unlocked the Lem package to add custom symbols (https://codeberg.org/sasanidas/lem-config/src/branch/master/inits/aa-init.lisp#L4), then I lock it again.
I modified the lem-sit-init.asd to add the lisp libraries even tho the title says that don't edit :) (there's shouldn't be any problem, check the code if you are worried)