Search code examples
emacslispelisp

elisp: Is there a way to get the name of the current .el module (like __FILE__ in C)?


At the top of my elisp module, I want to do something as simple as:

(message (concat "Loading " (expand-file-name (current-elisp-module) ".")))

Solution

  • You can use the variable load-file-name, which is set by the function load, documented as follows:

    Full name of file being loaded by `load'.

    As elaborated in the manual:

    When Emacs is in the process of loading a file, this variable’s value is the name of that file, as Emacs found it during the search described earlier in this section.

    Note: buffer-file-name as a routine does not work as you might expect it to.