Function: eca-providers--render

eca-providers--render is a natively compiled function defined in eca-providers.el.

Signature

(eca-providers--render SESSION BUFFER)

Documentation

Render provider list for SESSION into BUFFER.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-providers.el
(defun eca-providers--render (session buffer)
  "Render provider list for SESSION into BUFFER."
  (when (buffer-live-p buffer)
    (with-current-buffer buffer
      (let ((inhibit-read-only t)
            (keymap (current-local-map))
            (providers (eca--session-providers session)))
        (erase-buffer)
        (insert "\n")
        (insert (propertize "Providers / Models" 'font-lock-face 'eca-settings-heading))
        (insert "\n")
        (insert (propertize "For more details check " 'face 'shadow))
        (insert-text-button "https://eca.dev/config/models/"
                            'face 'link
                            'action (lambda (_) (browse-url "https://eca.dev/config/models/"))
                            'help-echo "Open in browser")
        (insert "\n\n")
        (if (not providers)
            (insert (propertize "  Loading providers..." 'face 'shadow))
          (let* ((sorted (-sort (lambda (a b)
                                  (< (eca-providers--sort-key a)
                                     (eca-providers--sort-key b)))
                                providers))
                 (configured (-filter (lambda (p) (plist-get p :configured)) sorted))
                 (unconfigured (-filter (lambda (p) (not (plist-get p :configured))) sorted)))
            (seq-doseq (provider configured)
              (eca-providers--render-provider provider session keymap))
            (when unconfigured
              (insert (propertize " ── not configured ─────────────────────\n\n"
                                  'face 'eca-providers-section-face))
              (seq-doseq (provider unconfigured)
                (eca-providers--render-provider provider session keymap)))))
        (insert "\n")))))