Skip to content

Commit a0381cf

Browse files
committed
Fix colum key alignment on hdot printing
1 parent ccc9b5b commit a0381cf

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/show.jl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ function print_col_keys(
9191
print(io, sep)
9292
end
9393
end
94-
println(io)
9594
end
9695

9796
function print_row_key(io, axis, i, a, pre, post)
@@ -159,6 +158,7 @@ function Base.print_matrix(
159158
rA = row_alignment(io, axes(X, 1))
160159
print(io, " " * repeat(" ", rA + length(pre) + length(post))) # print space before column keys
161160
print_col_keys(io, X, A, colsA, sep)
161+
println(io)
162162
for i in rowsA
163163
print(io, i == first(rowsA) ? pre : presp)
164164
print_row_key(io, axes(X, 1), i, rA, pre, post)
@@ -171,11 +171,14 @@ function Base.print_matrix(
171171
else # rows fit down screen but cols don't, so need horizontal ellipsis
172172
c = div(screenwidth-length(hdots)::Int+1,2)+1 # what goes to right of ellipsis
173173
Ralign = reverse(alignment(io, X, rowsA, reverse(colsA), c, c, sepsize)) # alignments for right
174-
c = screenwidth - sum(map(sum,Ralign)) - (length(Ralign)-1)*sepsize - length(hdots)::Int
174+
c = screenwidth - sum(map(sum, Ralign)) - (length(Ralign)-1)*sepsize - length(hdots)::Int
175175
Lalign = alignment(io, X, rowsA, colsA, c, c, sepsize) # alignments for left of ellipsis
176176
rA = row_alignment(io, axes(X, 1))
177177
print(io, " " * repeat(" ", rA + length(pre) + length(post))) # print space before column keys
178-
print_col_keys(io, X, A, colsA, sep)
178+
print_col_keys(io, X, Lalign, colsA[1:length(Lalign)], sep)
179+
print(io, repeat(" ", length(hdots)::Int))
180+
print_col_keys(io, X, Ralign, (n - length(Ralign)) .+ colsA, sep)
181+
println(io)
179182
for i in rowsA
180183
print(io, i == first(rowsA) ? pre : presp)
181184
print_row_key(io, axes(X, 1), i, rA, pre, post)
@@ -193,6 +196,7 @@ function Base.print_matrix(
193196
rA = row_alignment(io, axes(X, 1))
194197
print(io, " " * repeat(" ", rA + length(pre) + length(post))) # print space before column keys
195198
print_col_keys(io, X, A, colsA, sep)
199+
println(io)
196200
for i in rowsA
197201
print_row_key(io, axes(X, 1), i, rA, pre, post)
198202
print(io, i == first(rowsA) ? pre : presp)
@@ -213,7 +217,10 @@ function Base.print_matrix(
213217
r = mod((length(Ralign) - n + 1),vmod) # where to put dots on right half
214218
rA = row_alignment(io, axes(X, 1))
215219
print(io, " " * repeat(" ", rA + length(pre) + length(post))) # print space before column keys
216-
print_col_keys(io, X, A, colsA, sep)
220+
print_col_keys(io, X, Lalign, colsA[1:length(Lalign)], sep)
221+
print(io, repeat(" ", length(hdots)::Int))
222+
print_col_keys(io, X, Ralign, (n - length(Ralign)) .+ colsA, sep)
223+
println(io)
217224
for i in rowsA
218225
print_row_key(io, axes(X, 1), i, rA, pre, post)
219226
print(io, i == first(rowsA) ? pre : presp)
@@ -225,6 +232,7 @@ function Base.print_matrix(
225232
if i == rowsA[halfheight]
226233
print(io, i == first(rowsA) ? pre : presp)
227234
Base.print_matrix_vdots(io, vdots, Lalign, sep, vmod, 1, true)
235+
print(io, " " * repeat(" ", rA + length(pre) + length(post))) # print space before column keys
228236
print(io, ddots)
229237
Base.print_matrix_vdots(io, vdots, Ralign, sep, vmod, r, false)
230238
print(io, i == last(rowsA) ? post : postsp * '\n')

0 commit comments

Comments
 (0)