@@ -247,6 +247,21 @@ PARAMS the params."
247247 (apply #'concat ))))
248248 (s-join " |\n " )))
249249
250+ (defun lsp-mssql--replace-overlay-text (ov string )
251+ " Replace text inside overlay OV with STRING."
252+ (let ((start (overlay-start ov)))
253+ (save-excursion
254+ ; ; This is a bit silly, but this way we don't have to make new
255+ ; ; buttons, we just replace the text inside an exisiting button.
256+ ; ; We can't insert at the start of the overlay because that
257+ ; ; would only push the existing one away, not inserting the new
258+ ; ; text into it.
259+ (goto-char (1+ start))
260+ (insert string)
261+ (delete-region (point ) (overlay-end ov))
262+ (goto-char (1+ start))
263+ (delete-char -1 ))))
264+
250265(defun lsp-mssql--result-set-complete (workspace params )
251266 " Result set complete handler.
252267WORKSPACE is the active workspace.
@@ -283,7 +298,21 @@ PARAMS the params."
283298 (setf loaded-index (+ loaded-index to-load)))
284299 :batchIndex , batchId ))
285300 (lsp--info " All items are loaded" )
286- nil )))
301+ nil ))
302+ (render-load-more
303+ ()
304+ (if (= loaded-index row-count)
305+ (progn
306+ (when (looking-at-p " ^Load" )
307+ (delete-region (line-beginning-position ) (line-end-position )))
308+ (insert " |-" )
309+ (org-table-align )
310+ (end-of-line ))
311+ (if (looking-at-p " ^Load" )
312+ (lsp-mssql--replace-overlay-text
313+ (car (overlays-at (point )))
314+ (format " Load %s more... (%s /%s ) " to-load loaded-index row-count))
315+ (insert (format " Load %s more... (%s /%s ) " to-load loaded-index row-count))))))
287316 (when-let ((params (subset-params)))
288317 (with-lsp-workspace workspace
289318 (lsp-request-async
@@ -297,7 +326,7 @@ PARAMS the params."
297326 (setq more-items-marker (copy-marker (point )))
298327 (insert " \n " )
299328 (let ((start (point )))
300- (insert ( format " Load %s more... ( %s / %s ) " to -load loaded-index row-count) )
329+ (render -load-more )
301330 (make-button
302331 start (point )
303332 'action (lambda (&rest _ )
@@ -312,7 +341,9 @@ PARAMS the params."
312341 (goto-char (1- (marker-position more-items-marker)))
313342 (insert " \n " )
314343 (insert (lsp-mssql--render-table result))
315- (org-table-align )))
344+ (org-table-align )
345+ (forward-line 1 )
346+ (render-load-more)))
316347 :mode 'detached ))))
317348 'keymap (-doto (make-sparse-keymap )
318349 (define-key [M-return] 'push-button )
0 commit comments