anchor.diff:    (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 (buffer)
  +(defun start (language buffer)
     (let* ((root-path *root-path*)
            (workspace (find-workspace root-path)))
       (cond
  
positive.code: (in-package :lem-language-client)
  
  (defparameter *root-path* (probe-file "."))
  (defparameter *language-id* "go")
  
  (defparameter *log-stream* *error-output*)
  
  (defparameter |TextDocumentSaveReason.Manual| 1)
  
negative.code:        (let* ((connection (jsonrpc:make-client))
                (workspace (make-workspace :connection connection
                                           :root root-path
                                           :language-id (get-language-id language))))
           (push workspace *workspaces*)
           (setf (buffer-workspace buffer) workspace)
           (dolist (response-method *response-methods*)
             (jsonrpc:expose connection (string response-method) response-method))
           (jsonrpc:client-connect (workspace-connection workspace)
                                   :mode :tcp
                                   :port 2089)
           (initialize workspace)
           (initialized workspace)
           workspace))))
  