* lisp/server.el: Improve Commentary.

This commit is contained in:
Stefan Kangas 2022-09-05 15:44:01 +02:00
parent ee5c591249
commit ecbdb3b0ad

View file

@ -27,12 +27,12 @@
;;; Commentary: ;;; Commentary:
;; This Lisp code is run in Emacs when it is to operate as ;; This library allows Emacs to operate as a server for other
;; a server for other processes. ;; processes.
;; Load this library and do M-x server-edit to enable Emacs as a server. ;; Load this library and do `M-x server-start' to enable Emacs as a server.
;; Emacs opens up a socket for communication with clients. If there are no ;; Emacs opens up a socket for communication with clients. If there are no
;; client buffers to edit, server-edit acts like (switch-to-buffer ;; client buffers to edit, `server-edit' acts like (switch-to-buffer
;; (other-buffer)) ;; (other-buffer))
;; When some other program runs "the editor" to edit a file, ;; When some other program runs "the editor" to edit a file,
@ -42,10 +42,10 @@
;; Note that any number of clients may dispatch files to Emacs to be edited. ;; Note that any number of clients may dispatch files to Emacs to be edited.
;; When you finish editing a Server buffer, again call server-edit ;; When you finish editing a Server buffer, again call `server-edit'
;; to mark that buffer as done for the client and switch to the next ;; to mark that buffer as done for the client and switch to the next
;; Server buffer. When all the buffers for a client have been edited ;; Server buffer. When all the buffers for a client have been edited
;; and exited with server-edit, the client "editor" will return ;; and exited with `server-edit', the client "editor" will return
;; to the program that invoked it. ;; to the program that invoked it.
;; Your editing commands and Emacs's display output go to and from ;; Your editing commands and Emacs's display output go to and from
@ -54,25 +54,28 @@
;; the client. This is possible in four cases: ;; the client. This is possible in four cases:
;; 1. On a window system, where Emacs runs in one window and the ;; 1. On a window system, where Emacs runs in one window and the
;; program that wants to use "the editor" runs in another. ;; program that wants to use "the editor" runs in another.
;; 2. On a multi-terminal system, where Emacs runs on one terminal and the ;; 2. On a multi-terminal system, where Emacs runs on one terminal and
;; program that wants to use "the editor" runs on another. ;; the program that wants to use "the editor" runs on another.
;; 3. When the program that wants to use "the editor" is running ;; 3. When the program that wants to use "the editor" is running as a
;; as a subprocess of Emacs. ;; subprocess of Emacs.
;; 4. On a system with job control, when Emacs is suspended, the program ;; 4. On a system with job control, when Emacs is suspended, the
;; that wants to use "the editor" will stop and display ;; program that wants to use "the editor" will stop and display
;; "Waiting for Emacs...". It can then be suspended, and Emacs can be ;; "Waiting for Emacs...". It can then be suspended, and Emacs can
;; brought into the foreground for editing. When done editing, Emacs is ;; be brought into the foreground for editing. When done editing,
;; suspended again, and the client program is brought into the foreground. ;; Emacs is suspended again, and the client program is brought into
;; the foreground.
;; The buffer local variable "server-buffer-clients" lists ;; The buffer local variable `server-buffer-clients' lists
;; the clients who are waiting for this buffer to be edited. ;; the clients who are waiting for this buffer to be edited.
;; The global variable "server-clients" lists all the waiting clients, ;; The global variable `server-clients' lists all the waiting clients,
;; and which files are yet to be edited for each. ;; and which files are yet to be edited for each.
;;; Code:
;; Todo: ;; Todo:
;; - handle command-line-args-left. ;; - handle command-line-args-left.
@ -80,8 +83,6 @@
;; to here. ;; to here.
;; - fix up handling of the client's environment (place it in the terminal?). ;; - fix up handling of the client's environment (place it in the terminal?).
;;; Code:
(eval-when-compile (require 'cl-lib)) (eval-when-compile (require 'cl-lib))
(defgroup server nil (defgroup server nil