anchor.diff:                                (lem:character-offset start (- (length label)))
                                 (lem:put-text-property
                                  start p
  -                               :attribute 'signature-help-active-attribute))))))))
  -                (lem:insert-character p #\newline))
  -      (lem:insert-character p #\newline)
  -      (lem:buffer-start p)
  -      (lem-if:display-popup-buffer (lem:current-window) buffer 80 (length |signatures|) 3))))
  +                               :attribute 'signature-help-active-parameter-attribute)))))))
  +                  (when (rest signature*)
  +                    (lem:insert-character p #\newline))))
  +      (let ((window (lem-if:display-popup-buffer (lem:current-window) buffer 60 20 nil)))
  +        (setf *signature-help-window* window)
  +        (lem:add-hook lem:*pre-command-hook* 'signature-help-finalize)
  +        (fill-signature-help-window-with-space window |activeSignature|)
  +        window))))
   
   (defun signature-help (point)
     (sync-text-document (lem:point-buffer point))
  
positive.code:       (jsonrpc:jsonrpc-error (e)
          (jsonrpc:jsonrpc-error-message e)))))
  
  
  (lem:define-attribute signature-help-attribute
    (t :foreground "black" :background "dark gray"))
  
  (lem:define-attribute signature-help-active-attribute
    (t :foreground "white" :background "black" :underline-p t :bold-p t))
  
  (defun make-signature-help-buffer (signature-help)
    (let* ((buffer (lem:make-buffer "*Signature Help*" :enable-undo-p nil :temporary t))
           (p (lem:buffer-point buffer)))
      (setf (lem:variable-value 'lem:truncate-lines :buffer buffer) nil)
      (lem:erase-buffer buffer)
      (let-hash (|signatures| |activeSignature| |activeParameter|)
          signature-help
        (loop :for signature-index :from 0
              :for signature :in |signatures|
              :do (let-hash (|label| #||documentation||# |parameters|) signature
                    (lem:insert-string p |label| :attribute 'signature-help-attribute)
                    (when (and (eql signature-index |activeSignature|))
                      (alexandria:when-let
                          (parameter (nth (min |activeParameter|
                                               (1- (length |parameters|)))
  
negative.code:                                         "textDocument/signatureHelp"
                                          (text-document-position-params point))))
        (do-log "signature-help: ~A" (pretty-json signature-help))
        (make-signature-help-window signature-help))))
  
  (defun on-change (point arg)
    (let* ((buffer (lem:point-buffer point))
  