I want to stop Flymake from creating temporary files in the working directory. For example, here is the contents of a csharp source code directory that I am working on.
total used in directory 96K available 704.4 GiB
drwxrwxr-x 2 nate nate 4.0K Apr 17 08:46 ./
drwxrwxr-x 21 nate nate 4.0K Apr 15 11:40 ../
-rw-rw-r-- 1 nate nate 2.5K Apr 17 08:46 Hotkey_084625524204863_flymake.cs
-rw-rw-r-- 1 nate nate 2.5K Apr 17 08:46 Hotkey_084655782692576_flymake.cs
-rw-rw-r-- 1 nate nate 2.5K Apr 15 11:23 Hotkey.cs
-rw-rw-r-- 1 nate nate 1.1K Mar 22 15:05 HotkeyReference.cs
-rw-rw-r-- 1 nate nate 1.6K Apr 17 08:46 IInputHandler_084625489592816_flymake.cs
-rw-rw-r-- 1 nate nate 1.6K Apr 17 08:46 IInputHandler_084655748237326_flymake.cs
-rw-rw-r-- 1 nate nate 1.6K Apr 16 21:49 IInputHandler.cs
-rw-rw-r-- 1 nate nate 1.6K Apr 17 08:46 InputHandler_084625560513820_flymake.cs
-rw-rw-r-- 1 nate nate 1.6K Apr 17 08:46 InputHandler_084655897102355_flymake.cs
-rw-rw-r-- 1 nate nate 1.6K Mar 22 15:05 InputHandler.cs
-rw-rw-r-- 1 nate nate 15K Apr 17 08:46 Keycode_084625456646150_flymake.cs
-rw-rw-r-- 1 nate nate 15K Apr 17 08:46 Keycode_084655714954252_flymake.cs
-rw-rw-r-- 1 nate nate 15K Apr 16 11:55 Keycode.cs
These temporary files such as Keycode_084655714954252_flymake.cs
cause my builds to fail.
what I've tried
- Setting
flymake-run-in-place
to nil (as per this question)
This does not work because flymake-run-in-place
is actually not part of flymake
. flymake-run-in-place
comes from emacs-flymake
, which is a fork of flymake
.
- Swapping
flymake
foremacs-flymake
It would be much preferable to use flymake
, because flymake
is a built-in package, and from what I understand is guaranteed to work with eglot
. Currently, using emacs-flymake
with eglot
causes emacs to freeze.
flymake-*-file
(*
stands for some characters) variables anddescribe-variable
them.flymake-proc-create-temp-inplace()
(also undocumented) which appears to be the temp file naming function.flymake
doesn't have a "user accessible" option to use a separate directory for temp files. in fact that option removed that option circa 2010/2011. i suspect witheglot
becoming a default package, that option will be restored toflymake
in the near future. in the meantime it would probably be easier to reconfigure your build system to use explicit file names instead of globbing files for your source files. (if your build system can't use explicit filenames it might be time to look into a new build system)