anchor.diff:        "version" (gethash buffer (workspace-file-version-table workspace) 0)
         "text" (lem:points-to-string (lem:buffer-start-point buffer) (lem:buffer-end-point buffer))))
   
  -(defun text-document-did-open ()
  +(defun text-document-did-open (workspace buffer)
  +  (jsonrpc:notify (workspace-connection workspace)
  +                  "textDocument/didOpen"
  +                  ({} "textDocument" (text-document-item buffer))))
  +
  +(defun text-document-did-change (workspace buffer changes)
     )
   
   (defun start ()
     (let* ((connection (jsonrpc:make-client))
            (workspace (make-workspace :connection connection
  -                                    :root (get-root-path)
  -                                    :language-id "go")))
  +                                    :root *root-path*
  +                                    :language-id *language-id*)))
       (dolist (response-method *response-methods*)
         (jsonrpc:expose connection (string response-method) response-method))
       (jsonrpc:client-connect (workspace-connection workspace)
  
positive.code:           (gethash "capabilities" response))))
  
  (defun method-initialized (workspace)
    (jsonrpc:call-async (workspace-connection workspace) "initialized" ({})))
  
  (defun method-shutdown (workspace)
    (jsonrpc:call (workspace-connection workspace) "shutdown" ({})))
  
  (defun method-exit (workspace)
    (jsonrpc:call-async (workspace-connection workspace) "exit" ({})))
  
  (define-response-method |window/showMessage| (|type| |message|)
    (declare (ignore |type|))
  
negative.code:                       vars)
            ,@body))
        *response-methods*)))
  
  (defun pathname-to-uri (pathname)
    (format nil "file://~A" pathname))
  