Some aspects of FoCus’s behavior can be configured before the library system is actually loaded. FoCus stores its user-level configuration (along with some other setup parameters) in another ASDF system called ‘net.didierverna.focus.setup’ (and the eponym package). In order to configure the library (I repeat, prior to loading it), you will typically do something like this:
(require "asdf") (asdf:load-system :net.didierverna.focus.setup) (net.didierverna.focus.setup:configure <option> <value>)
Set KEY to VALUE in the current FoCus configuration.
Out of curiosity, you can also inquire the current configuration for specific options with the following function.
Return KEY’s value in the current FoCus configuration.
Currently, the following options are provided.
This option is only useful if you use Slime, and mostly if you plan on
hacking FoCus itself. The library provides indentation information
for some of its functions directly embedded in the code. This
information can be automatically transmitted to (X)Emacs when the ASDF
system is loaded if you set this option to
t. However, note that
for this to work, the Slime variable
slime-enable-evaluate-in-emacs must also be set to
your (X)Emacs session. If you’re interested to know how this process
works, I have described it in the following blog entry:
Some features of FoCus require external functionality that may not be
available in all contexts. Normally, FoCus should autodetect this and
switch to so-called restricted mode at build-time
(see Optional Features). If FoCus has failed to autodetect the
problem (in which case I would like to know), or if for some reason, you
explicitly want to disable those features, you may set the
:restricted configuration option to
t. Another way to do
it, without even bothering with configuration is to just use the
‘net.didierverna.focus.core’ system instead of the regular one.