VS Code extension for Julia provides some nice static checks, e.g. it hints “possibly undeclared variable”, and also allows going to definition. But it seems to work only within one file. Even if I have include, definitions from the included file are not visible. So I got hundreds of “possibly undeclared” variables, which is very annoying.
Is there any workaround for this? Can I make VS Code search definitions in included files, or even better in the whole workspace? If follow the standard package structure, you end up with multiple files that are to be included in one “main” file, and, therefore, these files are not valid on their own.
P.S. There is a “go to symbol in workspace” function, but it doesn’t solve the problem with undeclared variables.
include’s usually work fine for me. It is important that the includes are “simple” in the sense that they are just "include("folder/file.jl"). More “dynamic” includes like include(joinpath("folder", "file.jl")) will, right now, not work.
I think it would be nice to have something like project file for Julia. Or maybe even consider some julia file as a project file. As packages usually have one main file, which has a bunch of includes, it could be used to deduce the order in which files’ contents should be analyzed.
And as for the package structure: when I edit a source file file3.jl that is included into a “top file” of a package but does not include anything itself, would the VS Code look for definitions from files file1.jl and file2.jl included into the top file before file3.jl?
FWIW, I noticed issues like this (undeclared and missing type definitions) after doing some code reorganization by moving type declarations into separate file. I was using Revise and tests kept working fine in my active session (), but vscode-julia intellisense added many squigglies. Restarting VSCode fixed these, so I suppose there was some language server cache which did not clear until the restart.