package com.reason.bs; import org.jetbrains.annotations.NotNull; import com.intellij.execution.process.ProcessEvent; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.reason.Log; public class BsOutputListener implements RawProcessListener { private static final Log LOG = Log.create("build"); @NotNull private final Project m_project; @NotNull private final BsProcess m_compiler; @NotNull private final BsLineProcessor m_lineProcessor; BsOutputListener(@NotNull Project project, @NotNull BsProcess bsc) { m_project = project; m_compiler = bsc; m_lineProcessor = new BsLineProcessor(LOG); } @Override public void startNotified(@NotNull ProcessEvent event) { //ServiceManager.getService(m_project, ErrorsManager.class).clearErrors(); //m_lineProcessor.m_bsbInfo.clear(); } @Override public void onTextAvailable(@NotNull ProcessEvent event, @NotNull Key outputType) { } @Override public void onRawTextAvailable(@NotNull String text) { m_lineProcessor.onRawTextAvailable(text); } @Override public void processWillTerminate(@NotNull ProcessEvent event, boolean willBeDestroyed) { } @Override public void processTerminated(@NotNull ProcessEvent event) { m_compiler.terminate(); //if (m_lineProcessor.hasInfo() && !m_project.isDisposed()) { // ErrorsManager errorsService = ServiceManager.getService(m_project, ErrorsManager.class); // errorsService.addAllInfo(m_lineProcessor.getInfo()); //} //m_lineProcessor.reset(); //m_lineProcessor.m_bsbInfo.clear(); //ApplicationManager.getApplication().invokeLater(() -> { // if (!m_project.isDisposed()) { // When build is done, we need to refresh editors to be notified of the latest modifications //DaemonCodeAnalyzer.getInstance(m_project).restart(); //EditorFactory.getInstance().refreshAllEditors(); //InferredTypesService.queryForSelectedTextEditor(m_project); //} //}); } }