How the plugin resolves symbols

The information here are not strictly necessary for using the plugin. Nevertheless, I provide insight into this core functionality so that the interested reader understands this crucial part, which is used in high-lighting, auto-completion, navigation, refactoring, and many more places. Feel free to skip this section.

The term resolving means nothing more than identifying a symbol (be it a variable or a function) in your code correctly so that the plugin knows, which symbols belong together. To give an example, assume you have defined a variable myVar inside a Module, then you certainly expect the plugin to highlight it (usually green), and you also want auto-completion for it when you are inside the Module. Also, in a very long Module, you might want to jump from any usage of myVar to its definition at the top.

Module[{myVar = 3},

What the plugin needs to do is to analyse the structure of the code (the abstract syntax tree) in order to identify that myVar is in the context of the Module. All usages of myVar inside the Module are then resolved to its point of definition at the top of the Module.