112
112
def lines_in_file(self, filename):
113
113
return [(ln, CATEGORY_BREAKPOINT)
114
for cn, sn, fn, ln, mk in self if fn == filename]
114
for cn, sn, mk, fn, ln in self if fn == filename]
116
def add(self, filename, lineno, sourcemark, snum=0):
116
def add(self, sourcemark, filename, lineno):
117
117
cnum = self.next_cnum
118
self.append([cnum, snum, sourcemark, filename, lineno])
118
self.append([cnum, 0, sourcemark, filename, lineno])
119
119
self.next_cnum += 1
122
def remove(self, breakpoint):
123
if type(breakpoint) == tuple:
124
for i, (cn, sn, mk, fn, ln) in enumerate(self):
125
if (fn, ln) == breakpoint:
126
Gtk.ListStore.__delitem__(self, i)
129
Gtk.ListStore.remove(self, breakpoint)
131
122
def remove_by_sourcemark(self, sourcemark):
132
123
for i, (cn, sn, mk, fn, ln) in enumerate(self):
133
124
if sourcemark == mk:
142
133
if snum == 0: # requested breakpoint was invalid
145
136
else: # requested breakpoint confirmed, maybe lineno changed
146
137
self[i] = [cn, snum, mk, filename, lineno]
147
return fn, ln, lineno, mk
138
return mk, fn, ln, lineno
148
139
# requested and confirmed breakpoint does not exist any more, ignore it
149
return filename, 0, 0, None
140
return None, filename, 0, 0
152
143
class WindowActivatable(GObject.Object, Gedit.WindowActivatable, ConnectHelper, PeasGtk.Configurable):
544
535
filename = doc.get_location().get_path()
545
536
lineno = titer.get_line() + 1
546
537
sourcemark = doc.create_source_mark(None, CATEGORY_BREAKPOINT, titer)
547
cnum = self.breakpoints.add(filename, lineno, sourcemark)
538
cnum = self.breakpoints.add(sourcemark, filename, lineno)
548
539
if self.debugger is not None and self.debugger.running:
549
540
self.debugger.bpadd(cnum, filename, lineno)
661
652
self.set_current_line(tab.get_view(), tab.get_document(), filename, lineno)
663
654
def on_debugger_break_changed(self, debugger, breakpoint):
664
filename, lineno1, lineno2, sourcemark = self.breakpoints.update(breakpoint)
655
sourcemark, filename, lineno1, lineno2 = self.breakpoints.update(breakpoint)
665
656
if lineno1 == lineno2:
667
658
doc = self.get_document_from_file(filename)