I have a tool that runs "Before Compile/Run" and has the files %COMPILEFILE, %FILE, and %EXECUTABLE passed to it. The problem I'm experiencing is that this tool only receives these values if the source has been saved to disk before compiling. Otherwise these values are blank.
What this means is that the tool will fail if a user copy/pastes some code into a new file and runs it without saving it first.