forked from vadimtsushko/sublime-qlikview
/
qvw_log_viewer.py
41 lines (39 loc) · 1.43 KB
/
qvw_log_viewer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- encoding: UTF-8 -*-
import sublime
import sublime_plugin
import os
import collections
import sys
import re
class QlikviewTransformLogCommand(sublime_plugin.TextCommand):
moduleSettings = None
edit = None
path = ''
timer = None
def run(self, edit):
self.edit = edit
self.path = self.view.file_name()
self.transform()
def transform(self):
view = self.view
edit = self.edit
view.set_read_only(False)
view.set_scratch(True)
txt = view.substr(sublime.Region(0,view.size()))
view.erase(edit,sublime.Region(0,view.size()))
trace_mode = False
for line in txt.splitlines():
if trace_mode:
line = re.sub(r'^(\s*\d+[/.-]\d+[/.-]\d{4} \d+:\d+:\d+( AM| PM)?: .{4})',r'//>> \1',line)
trace_mode = False
else:
line = re.sub(r'^\s*\d+[/.-]\d+[/.-]\d{4} \d+:\d+:\d+( AM| PM)?:\s+\d{4}','',line)
if re.match(r'^\s*TRACE',line,flags=re.IGNORECASE):
trace_mode = True
print(line)
line = re.sub(r'^(\s*\d+[/.-]\d+[/.-]\d{4} \d+:\d+:\d+( AM| PM)?: {4})',r'//>> \1',line)
self.addLine(line)
def addLine(self,line):
self.view.insert(self.edit, self.view.size(), line+'\n')
def is_enabled(self):
return sublime.active_window().active_view().file_name().upper().endswith('.QVW.LOG')