Function: projectile-register-shell-backend
projectile-register-shell-backend is a byte-compiled function defined
in projectile.el.
Signature
(projectile-register-shell-backend NAME &rest PLIST)
Documentation
Register NAME as a projectile-run backend with PLIST properties.
Recognised PLIST keys:
:description a human-readable string shown in prompts;
:available a zero-argument predicate returning non-nil when the
backend can be used (omit for an always-available one);
:run a function called as (NEW-PROCESS OTHER-WINDOW) that
launches the shell/REPL/terminal in the project root.
NEW-PROCESS is the command's prefix argument (start a fresh process);
OTHER-WINDOW requests display in another window (honoured by the
terminals that support it).
Use this to plug in your own terminal, e.g.:
(projectile-register-shell-backend 'mistty
:description "mistty"
:available (lambda () (require 'mistty nil t))
:run (lambda (_new-process _other-window)
(mistty-in-project)))
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
(defun projectile-register-shell-backend (name &rest plist)
"Register NAME as a `projectile-run' backend with PLIST properties.
Recognised PLIST keys:
:description a human-readable string shown in prompts;
:available a zero-argument predicate returning non-nil when the
backend can be used (omit for an always-available one);
:run a function called as (NEW-PROCESS OTHER-WINDOW) that
launches the shell/REPL/terminal in the project root.
NEW-PROCESS is the command's prefix argument (start a fresh process);
OTHER-WINDOW requests display in another window (honoured by the
terminals that support it).
Use this to plug in your own terminal, e.g.:
(projectile-register-shell-backend \\='mistty
:description \"mistty\"
:available (lambda () (require \\='mistty nil t))
:run (lambda (_new-process _other-window)
(mistty-in-project)))"
(apply #'projectile-register-backend 'projectile-shell-backends name plist))