Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 13 additions & 9 deletions ansi.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import Default
import inspect
import os
import threading
import re
import sublime
import sublime_plugin
Expand Down Expand Up @@ -345,6 +346,7 @@ def _del_event_listeners(self, view):
class AnsiColorBuildCommand(Default.exec.ExecCommand):

process_trigger = "on_finish"
data_lock = threading.Lock()

@classmethod
def update_build_settings(self, settings):
Expand Down Expand Up @@ -415,17 +417,19 @@ def on_data_process(self, proc, data):
view.run_command('ansi', args={"regions": json_ansi_regions})

def on_data(self, proc, data):
if self.process_trigger == "on_data":
self.on_data_process(proc, data)
else:
super(AnsiColorBuildCommand, self).on_data(proc, data)
with self.data_lock:
if self.process_trigger == "on_data":
self.on_data_process(proc, data)
else:
super(AnsiColorBuildCommand, self).on_data(proc, data)

def on_finished(self, proc):
super(AnsiColorBuildCommand, self).on_finished(proc)
if self.process_trigger == "on_finish":
view = self.output_view
if view.settings().get("syntax") == "Packages/ANSIescape/ANSI.tmLanguage":
view.run_command("ansi", args={"clear_before": True})
with self.data_lock:
super(AnsiColorBuildCommand, self).on_finished(proc)
if self.process_trigger == "on_finish":
view = self.output_view
if view.settings().get("syntax") == "Packages/ANSIescape/ANSI.tmLanguage":
view.run_command("ansi", args={"clear_before": True})


CS_TEMPLATE = """<?xml version="1.0" encoding="UTF-8"?>
Expand Down