emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] scratch/ediprolog 1c8b127701 02/31: initial revision


From: Stefan Monnier
Subject: [elpa] scratch/ediprolog 1c8b127701 02/31: initial revision
Date: Sun, 2 Oct 2022 17:01:36 -0400 (EDT)

branch: scratch/ediprolog
commit 1c8b12770100860618a9b70e8cb1ff7becee7393
Author: Markus Triska <markus.triska@gmx.at>
Commit: Markus Triska <markus.triska@gmx.at>

    initial revision
---
 README | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/README b/README
new file mode 100644
index 0000000000..4ee9da7ad7
--- /dev/null
+++ b/README
@@ -0,0 +1,62 @@
+This lets you interact with SWI-Prolog in all Emacs buffers.
+You can consult Prolog programs and evaluate embedded queries.
+
+Installation
+============
+
+Copy ediprolog.el to your load-path and add to your .emacs:
+
+    (require 'ediprolog)
+    (global-set-key [f10] 'ediprolog-dwim)
+
+Restart Emacs and customize ediprolog with
+
+    M-x customize-group RET ediprolog RET
+
+
+Usage
+=====
+
+The central function is `ediprolog-dwim' (Do What I Mean), which is
+bound to F10 by the snippet above. Depending on the content at
+point, `ediprolog-dwim' does the "appropriate" thing: If point is
+on a query, F10 sends the query to a Prolog process, and you
+interact with the process in the current buffer as on a terminal.
+Queries start with "?-" or ":-", possibly preceded by "%" and
+whitespace. An example of a query is (without leading ";;"):
+
+  %?- member(X, [a,b,c]).
+
+If you press F10 when point is on that query, you get:
+
+  %?- member(X, [a,b,c]).
+  %@ X = a ;
+  %@ X = b ;
+  %@ X = c ;
+  %@ false.
+
+When waiting for output of the Prolog process, you can press C-g to
+unblock Emacs and continue with other work. To resume interaction
+with the Prolog process, use M-x ediprolog-toplevel RET.
+
+If you press F10 when point is NOT on a query, the buffer content
+is consulted in the Prolog process, and point is moved to the first
+error (if any).
+
+For convenience, the most recent interactions with the Prolog
+process are logged in the buffer "*ediprolog-history*".
+
+Use M-x ediprolog-localize RET to make any Prolog process started
+in the current buffer buffer-local. This way, you can run distinct
+processes simultaneously. Revert with M-x ediprolog-unlocalize RET.
+
+`ediprolog-dwim' with prefix arguments has special meanings:
+
+  C-0 F10       kill Prolog process
+  C-1 F10       always consult buffer (even when point is on a query)
+  C-2 F10       always consult buffer, using a new process
+  C-7 F10       equivalent to `ediprolog-toplevel'
+  C-u F10       first consult buffer, then evaluate query (if any)
+  C-u C-u F10   like C-u F10, with a new process
+
+Tested with SWI-Prolog 5.6.55 + Emacs 21.2, 22.3, 23.1 and 24.3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]