Skip to content

Commit

Permalink
Issue quarnster#18 collapse arguments. Issue quarnster#19 push/pop vi…
Browse files Browse the repository at this point in the history
…ewport positions

Fixes issues quarnster#18, quarnster#19
  • Loading branch information
quarnster authored and ProPuke committed Apr 6, 2012
1 parent 0bd3ea7 commit bd73de1
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions sublimegdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ def get_setting(key, default=None):

gdb_run_status = None
result_regex = re.compile("(?<=\^)[^,\"]*")
collapse_regex = re.compile("{.*}", re.DOTALL)


def log_debug(line):
Expand Down Expand Up @@ -435,11 +436,13 @@ def update_values(self):
reg = int(regvals[i]["number"])
if reg < len(self.values):
self.values[reg].set_value(regvals[i]["value"])
pos = self.get_view().viewport_position()
self.clear()
line = 0
for item in self.values:
output, line = item.format(line)
self.add_line(output)
self.set_viewport_position(pos)
self.update()
regions = []
v = self.get_view()
Expand Down Expand Up @@ -605,7 +608,9 @@ def format(self):
if "name" in arg:
output += arg["name"]
if "value" in arg:
output += " = %s" % arg["value"]
val = arg["value"]
val = collapse_regex.sub("{...}", val)
output += " = %s" % val
output += ","
output += ");\n"
self.lines = output.count("\n")
Expand Down Expand Up @@ -634,6 +639,7 @@ def update_callstack(self):
return
frames = listify(parse_result_line(line)["stack"]["frame"])
args = listify(parse_result_line(run_cmd("-stack-list-arguments 1", True))["stack-args"]["frame"])
pos = self.get_view().viewport_position()
self.clear()

self.frames = []
Expand All @@ -644,6 +650,7 @@ def update_callstack(self):
f = GDBCallstackFrame(frames[i]["func"], arg)
self.frames.append(f)
self.add_line(f.format())
self.set_viewport_position(pos)
self.update()

def update_marker(self, pos_scope, pos_icon):
Expand Down Expand Up @@ -734,10 +741,13 @@ def update_threads(self):

if "current-thread-id" in ids:
self.current_thread = int(ids["current-thread-id"])
self.clear(True)
pos = self.get_view().viewport_position()
self.clear()
self.threads.sort(key=lambda t: t.id)
for thread in self.threads:
self.add_line(thread.format(), True)
self.add_line(thread.format())
self.set_viewport_position(pos)
self.update()

def update_marker(self, pos_scope, pos_icon):
if self.is_open():
Expand Down

0 comments on commit bd73de1

Please sign in to comment.