anchor.diff:    (setf (lem:variable-value 'lem.language-mode:completion-function) 'completion)
     ;(uiop:run-program "go-langserver -mode tcp -gocodecompletion &")
     (start (lem:current-buffer)))
  +
  +(defun get-language-id (language)
  +  (ecase language
  +    (lem-js-mode:js-mode "javascript")
  +    (lem-go-mode:go-mode "go")))
   
   (defmacro define-response-method (name (&rest vars) &body body)
     (alexandria:with-gensyms (params)
  
positive.code:        (let* ((connection (jsonrpc:make-client))
                (workspace (make-workspace :connection connection
                                           :root root-path
                                           :language-id *language-id*)))
           (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 4389)
           (initialize workspace)
           (initialized workspace)
           workspace))))
  
negative.code: (in-package :lem-language-client)
  
  (defparameter *root-path* (probe-file "."))
  (defparameter *log-stream* *error-output*)
  
  (defparameter |TextDocumentSaveReason.Manual| 1)
  