This is a feature that will greatly improve the overall functionality of the extension, providing the ability to support (generically) custom grammars that the users can either define in their configuration files or inside the .vscode directory of the project.
Another approach would be to have a grammar-based parser that uses additional files in the project to build basic support similar to what antlr and pegjs are doing, but removing the major overhead that will be to keep generated code in VCS. Also on the plus side, this kind of implementation will provide the ability to replace some parsers with grammar definitions and as such possibly reducing the footprint of the extension.
A problem that will be solved by this would be the lack of C# parser (or I overlooked?) that will add support for the base symbols that are supported (classes, interfaces, traits, properties, constants, variables, functions) without having to generate AST of the full file to only use a limited subset of it.
Due to the efforts required in order to provide one to rule them all parser will not be feasible at this point in time and probably would be too much in the scope of this extension.
This is a feature that will greatly improve the overall functionality of the extension, providing the ability to support (generically) custom grammars that the users can either define in their configuration files or inside the
.vscode
directory of the project.Another approach would be to have a grammar-based parser that uses additional files in the project to build basic support similar to what antlr and pegjs are doing, but removing the major overhead that will be to keep generated code in VCS. Also on the plus side, this kind of implementation will provide the ability to replace some parsers with grammar definitions and as such possibly reducing the footprint of the extension.
A problem that will be solved by this would be the lack of C# parser (or I overlooked?) that will add support for the base symbols that are supported (classes, interfaces, traits, properties, constants, variables, functions) without having to generate AST of the full file to only use a limited subset of it.