Improve context creation for single files and strings
For performing static analysis,
IAnalysisService.analyze()
requires a context. Currently, context creation involves the project service, a project, and the context service:public static IContext getContext(Spoofax spoofax, ILanguageImpl implementation, FileObject file) throws MetaborgException, IOException { IProject project = spoofax.projectService.get(file); if (project == null) { ISimpleProjectService projectService = spoofax.injector.getInstance(SimpleProjectService.class); project = projectService.create(file); } return spoofax.contextService.get(file, project, implementation); }
For languages with programs in single files, the project notion seems to be overkill, since every file is its own project. Is there a way to get
IContextService.get(file, implementation)
working for such use cases?For parsing and analysing strings which are not stored in a file, the situation is worse, since context creation requires a file. Currently we need to create a temporary file for each string we want to parse and analyse. Here, it would be great if project service (if still needed) and context service could handle
Submitted by Guido Wachsmuth on 7 September 2016 at 18:05null
as a file parameter.