changeset 49254 | 69983adfed06 |
parent 49253 | a321304269cf |
child 49255 | 251650844331 |
49253:a321304269cf | 49254:69983adfed06 |
---|---|
20 |
20 |
21 |
21 |
22 class _column_base: |
22 class _column_base: |
23 """constains the definition of a revlog column |
23 """constains the definition of a revlog column |
24 |
24 |
25 name: the column header, |
25 name: the column header, |
26 value_func: the function called to get a value, |
26 value_func: the function called to get a value, |
27 size: the width of the column. |
27 size: the width of the column, |
28 verbose_only: only include the column in verbose mode. |
|
28 """ |
29 """ |
29 |
30 |
30 def __init__(self, name, value_func, size=None): |
31 def __init__(self, name, value_func, size=None, verbose=False): |
31 self.name = name |
32 self.name = name |
32 self.value_func = value_func |
33 self.value_func = value_func |
33 if size is not NODE_SIZE: |
34 if size is not NODE_SIZE: |
34 if size is None: |
35 if size is None: |
35 size = 8 # arbitrary default |
36 size = 8 # arbitrary default |
36 size = max(len(name), size) |
37 size = max(len(name), size) |
37 self._size = size |
38 self._size = size |
39 self.verbose_only = verbose |
|
38 |
40 |
39 def get_size(self, node_size): |
41 def get_size(self, node_size): |
40 if self._size is NODE_SIZE: |
42 if self._size is NODE_SIZE: |
41 return node_size |
43 return node_size |
42 else: |
44 else: |
43 return self._size |
45 return self._size |
44 |
46 |
45 |
47 |
46 def debug_column(name, size=None): |
48 def debug_column(name, size=None, verbose=False): |
47 """decorated function is registered as a column |
49 """decorated function is registered as a column |
48 |
50 |
49 name: the name of the column, |
51 name: the name of the column, |
50 size: the expected size of the column. |
52 size: the expected size of the column. |
51 """ |
53 """ |
53 def register(func): |
55 def register(func): |
54 entry = _column_base( |
56 entry = _column_base( |
55 name=name, |
57 name=name, |
56 value_func=func, |
58 value_func=func, |
57 size=size, |
59 size=size, |
60 verbose=verbose, |
|
58 ) |
61 ) |
59 INDEX_ENTRY_DEBUG_COLUMN.append(entry) |
62 INDEX_ENTRY_DEBUG_COLUMN.append(entry) |
60 return entry |
63 return entry |
61 |
64 |
62 return register |
65 return register |
111 |
114 |
112 fm = formatter |
115 fm = formatter |
113 |
116 |
114 header_pieces = [] |
117 header_pieces = [] |
115 for column in INDEX_ENTRY_DEBUG_COLUMN: |
118 for column in INDEX_ENTRY_DEBUG_COLUMN: |
119 if column.verbose_only and not ui.verbose: |
|
120 continue |
|
116 size = column.get_size(idlen) |
121 size = column.get_size(idlen) |
117 name = column.name |
122 name = column.name |
118 header_pieces.append(name.rjust(size)) |
123 header_pieces.append(name.rjust(size)) |
119 |
124 |
120 fm.plain(b' '.join(header_pieces) + b'\n') |
125 fm.plain(b' '.join(header_pieces) + b'\n') |
124 for rev in revlog: |
129 for rev in revlog: |
125 fm.startitem() |
130 fm.startitem() |
126 entry = index[rev] |
131 entry = index[rev] |
127 first = True |
132 first = True |
128 for column in INDEX_ENTRY_DEBUG_COLUMN: |
133 for column in INDEX_ENTRY_DEBUG_COLUMN: |
134 if column.verbose_only and not ui.verbose: |
|
135 continue |
|
129 if not first: |
136 if not first: |
130 fm.plain(b' ') |
137 fm.plain(b' ') |
131 first = False |
138 first = False |
132 |
139 |
133 size = column.get_size(idlen) |
140 size = column.get_size(idlen) |