Function: eca-mcp--render-add-form

eca-mcp--render-add-form is a natively compiled function defined in eca-mcp.el.

Signature

(eca-mcp--render-add-form SESSION KEYMAP)

Documentation

Render the inline add-server form into the current buffer.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-mcp.el
(defun eca-mcp--render-add-form (session keymap)
  "Render the inline add-server form into the current buffer."
  (let* ((st eca-mcp--add-form-state)
         (transport (plist-get st :transport))
         (scope (plist-get st :scope)))
    (insert (propertize "Add MCP server" 'font-lock-face 'bold) "\n")
    (insert "Name: ")
    (insert (eca-buttonize
             keymap
             (propertize (if (string-empty-p (plist-get st :name))
                             "<click to set>"
                           (plist-get st :name))
                         'font-lock-face 'eca-mcp-details-command-value-face)
             (lambda () (eca-mcp--add-form-edit-field :name "Server name: " session))))
    (insert "\n")
    (insert "Transport: ")
    (insert (eca-buttonize
             keymap
             (propertize (concat (if (string= transport "stdio") "[x]" "[ ]") " stdio")
                         'font-lock-face (if (string= transport "stdio")
                                             'eca-mcp-details-button-face
                                           'eca-mcp-details-button-disable-face))
             (lambda () (eca-mcp--add-form-set :transport "stdio" session))))
    (insert "  ")
    (insert (eca-buttonize
             keymap
             (propertize (concat (if (string= transport "remote") "[x]" "[ ]") " remote")
                         'font-lock-face (if (string= transport "remote")
                                             'eca-mcp-details-button-face
                                           'eca-mcp-details-button-disable-face))
             (lambda () (eca-mcp--add-form-set :transport "remote" session))))
    (insert "\n")
    (cond
     ((string= transport "stdio")
      (insert "Command: ")
      (insert (eca-buttonize
               keymap
               (propertize (if (string-empty-p (plist-get st :command))
                               "<click to set>"
                             (plist-get st :command))
                           'font-lock-face 'eca-mcp-details-command-value-face)
               (lambda () (eca-mcp--add-form-edit-field :command "Command: " session))))
      (insert "\n")
      (insert "Args: ")
      (insert (eca-buttonize
               keymap
               (propertize (if (string-empty-p (plist-get st :args))
                               "<click to set>"
                             (plist-get st :args))
                           'font-lock-face 'eca-mcp-details-command-value-face)
               (lambda () (eca-mcp--add-form-edit-field :args "Args (space-separated): " session))))
      (insert "\n")
      (insert "Env: ")
      (let ((env (plist-get st :env)))
        (if env
            (insert (propertize (mapconcat #'identity env ", ")
                                'font-lock-face 'eca-mcp-details-command-value-face))
          (insert (propertize "(none)" 'font-lock-face 'shadow))))
      (insert " ")
      (insert (eca-buttonize
               keymap
               (propertize "[edit]" 'font-lock-face 'eca-mcp-details-button-face)
               (lambda () (eca-mcp--add-form-edit-list-field
                           :env "Env KEY=VALUE (empty to finish): " session))))
      (insert "\n"))
     (t
      (insert "URL: ")
      (insert (eca-buttonize
               keymap
               (propertize (if (string-empty-p (plist-get st :url))
                               "<click to set>"
                             (plist-get st :url))
                           'font-lock-face 'eca-mcp-details-command-value-face)
               (lambda () (eca-mcp--add-form-edit-field :url "URL: " session))))
      (insert "\n")
      (insert "Headers: ")
      (let ((hs (plist-get st :headers)))
        (if hs
            (insert (propertize (mapconcat #'identity hs ", ")
                                'font-lock-face 'eca-mcp-details-command-value-face))
          (insert (propertize "(none)" 'font-lock-face 'shadow))))
      (insert " ")
      (insert (eca-buttonize
               keymap
               (propertize "[edit]" 'font-lock-face 'eca-mcp-details-button-face)
               (lambda () (eca-mcp--add-form-edit-list-field
                           :headers "Header KEY: VALUE (empty to finish): " session))))
      (insert "\n")))
    (insert "Scope: ")
    (insert (eca-buttonize
             keymap
             (propertize (concat (if (string= scope "global") "[x]" "[ ]") " global")
                         'font-lock-face (if (string= scope "global")
                                             'eca-mcp-details-button-face
                                           'eca-mcp-details-button-disable-face))
             (lambda () (eca-mcp--add-form-set :scope "global" session))))
    (insert "  ")
    (insert (eca-buttonize
             keymap
             (propertize (concat (if (string= scope "workspace") "[x]" "[ ]") " workspace")
                         'font-lock-face (if (string= scope "workspace")
                                             'eca-mcp-details-button-face
                                           'eca-mcp-details-button-disable-face))
             (lambda () (eca-mcp--add-form-set :scope "workspace" session))))
    (insert "\n")
    (insert (eca-buttonize
             keymap
             (propertize "[Submit]" 'font-lock-face 'eca-mcp-details-button-face)
             (lambda () (eca-mcp--submit-add-server session))))
    (insert "  ")
    (insert (eca-buttonize
             keymap
             (propertize "[Cancel]" 'font-lock-face 'eca-mcp-details-button-stop-face)
             (lambda () (eca-mcp--cancel-add-form session))))
    (insert "\n\n")))