anchor.diff:  (defun completion-provider-p (workspace)
     (setf workspace (ensure-workspace workspace))
     (values (gethash "completionProvider" (workspace-server-capabilities workspace))))
  +
  +(defun get-completion-trigger-characters (workspace)
  +  (mapcar (lambda (string) (char string 0))
  +          (-> (workspace-server-capabilities workspace)
  +              "completionProvider" "triggerCharacters")))
   
   (defun definition-provider-p (workspace)
     (setf workspace (ensure-workspace workspace))
  
positive.code:                                            (string arg)
                                             arg)))))))
  
  (defun initialize-hooks (buffer)
    (lem:add-hook (lem:variable-value 'lem:before-change-functions :buffer buffer) 'on-change)
    ;(lem:add-hook (lem:variable-value 'lem:before-save-hook :buffer buffer) 'text-document-will-save)
    (lem:add-hook (lem:variable-value 'lem:after-save-hook :buffer buffer) 'text-document-did-save)
    (lem:add-hook (lem:variable-value 'lem:kill-buffer-hook :buffer buffer) 'text-document-did-close))
  
  (defun start (client buffer)
    (let* ((root-path *root-path*)
  
negative.code:   text-document-sync
    root
    language-id
    (triggers (make-hash-table))
    (file-version-table (make-hash-table)))
  
  (defstruct text-document-sync
  