I’m not sure I completely understand what you need, but I’ll try to explain Snail’s search for completions.
Snail tries to do (what I expect to be) The Right Thing when editing source file buffers. With regard to modules, the rules are:
- Everything in that module is visible to the completion system.
- Modules referenced inside that module with
usingare also visible, following Julia’s usual rules.
- If there is no module in a source file, Snail assumes the module is
Main, same as the REPL.
- When you reference a module Alpha in another module Beta, it only completes Alpha’s exported names. The assumption is that the exported names are part of the module’s interface, and unexported names are internal, and therefore aren’t “supposed” to be used from other modules.
How do you structure the modules of your project? If you have multiple files, do they each house distinct modules? Each distinct module is supposed to have an explicit list of
using statements. If OTOH
MyPackage just uses the default
Main module for everything, then I expect completion to work for anything that has been loaded into the REPL environment, whether with
julia-snail-send-buffer-file or another mechanism.