Major refactoring of hover, completion and definition.
By parsing the template ast into a symbol table that contains info about which nodes have semantic meaning.
The symbol table currently contains info about:
the template context (e.g. .Values.test will get 2 entries in the symbol table, one for .Values and one for .Values.test)
Declaration and useage of includes
With the symbol table many usecases became much easier to implement, since a lot of the required parsing is already done. This also allowed adding the references usecase pretty easy.
The refactoring of the usecases allows for adding new features very easy without having a lot of, if-else like before.
Major refactoring of hover, completion and definition. By parsing the template ast into a symbol table that contains info about which nodes have semantic meaning.
The symbol table currently contains info about:
With the symbol table many usecases became much easier to implement, since a lot of the required parsing is already done. This also allowed adding the references usecase pretty easy. The refactoring of the usecases allows for adding new features very easy without having a lot of, if-else like before.