[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/sweeprolog 8dc9359dca 082/166: ADDED: sweep-set-prolog-fla
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/sweeprolog 8dc9359dca 082/166: ADDED: sweep-set-prolog-flag for setting Prolog flags |
Date: |
Fri, 30 Sep 2022 04:59:28 -0400 (EDT) |
branch: elpa/sweeprolog
commit 8dc9359dcaf721f266b40f0fb8fd344007a6ebbf
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>
ADDED: sweep-set-prolog-flag for setting Prolog flags
---
sweep.el | 41 ++++++++++++++++++++++++++++++++++++++++-
sweep.pl | 16 ++++++++++++++++
2 files changed, 56 insertions(+), 1 deletion(-)
diff --git a/sweep.el b/sweep.el
index e6790d52c2..0778c7fb1c 100644
--- a/sweep.el
+++ b/sweep.el
@@ -6,7 +6,7 @@
;; Maintainer: Eshel Yaron <me(at)eshelyaron(dot)com>
;; Keywords: prolog languages extensions
;; URL: https://git.sr.ht/~eshel/sweep
-;; Package-Version: 0.1.1
+;; Package-Version: 0.1.2
;; Package-Requires: ((emacs "27"))
;; This file is NOT part of GNU Emacs.
@@ -47,6 +47,12 @@ is used to find a the swipl executable."
:type 'string
:group 'sweep)
+(defcustom sweep-read-flag-prompt "Flag: "
+ "Prompt used for reading a Prolog flag name from the minibuffer."
+ :package-version '((sweep . "0.1.2"))
+ :type 'string
+ :group 'sweep)
+
(defcustom sweep-read-module-prompt "Module: "
"Prompt used for reading a Prolog module name from the minibuffer."
:package-version '((sweep . "0.1.0"))
@@ -172,6 +178,39 @@ is used to find a the swipl executable."
(set-window-point win (point))
win)))
+(defun sweep-current-prolog-flags (&optional prefix)
+ (sweep-open-query "user" "sweep" "sweep_current_prolog_flags" (or prefix ""))
+ (let ((sol (sweep-next-solution)))
+ (sweep-close-query)
+ (when (sweep-true-p sol)
+ (cdr sol))))
+
+(defun sweep-read-prolog-flag ()
+ "Read a Prolog flag from the minibuffer, with completion."
+ (let* ((col (sweep-current-prolog-flags))
+ (completion-extra-properties
+ (list :annotation-function
+ (lambda (key)
+ (let* ((val (cdr (assoc-string key col))))
+ (if val
+ (concat (make-string
+ (max (- 32 (length key)) 1) ? )
+ val)
+ nil))))))
+ (completing-read sweep-read-flag-prompt col)))
+
+(defun sweep-set-prolog-flag (flag value)
+ (interactive (let ((f (sweep-read-prolog-flag)))
+ (list f (read-string (concat "Set " f " to: ")))))
+ (sweep-open-query "user"
+ "sweep"
+ "sweep_set_prolog_flag"
+ (cons flag value))
+ (let ((sol (sweep-next-solution)))
+ (sweep-close-query)
+ (when (sweep-true-p sol)
+ (cdr sol))))
+
(defun sweep-setup-message-hook ()
(with-current-buffer (get-buffer-create sweep-messages-buffer-name)
(setq-local window-point-insertion-type t)
diff --git a/sweep.pl b/sweep.pl
index 8afce756b9..bdbebf9fea 100644
--- a/sweep.pl
+++ b/sweep.pl
@@ -34,6 +34,8 @@
[ sweep_colourise_buffer/2,
sweep_colourise_some_terms/2,
sweep_setup_message_hook/2,
+ sweep_current_prolog_flags/2,
+ sweep_set_prolog_flag/2,
sweep_documentation/2,
sweep_identifier_at_point/2,
sweep_expand_file_name/2,
@@ -85,6 +87,20 @@ prolog:xref_open_source(Source, Stream) :-
prolog:xref_close_source(Source, Stream) :-
sweep_open(Source, Stream).
+
+sweep_current_prolog_flags(Sub, Flags) :-
+ findall([Flag|Value],
+ (current_prolog_flag(Flag0, Value0),
+ atom_string(Flag0, Flag),
+ once(sub_string(Flag, _, _, _, Sub)),
+ term_string(Value0, Value)),
+ Flags).
+
+sweep_set_prolog_flag([Flag0|Value0], []) :-
+ atom_string(Flag, Flag0),
+ term_string(Value, Value0),
+ set_prolog_flag(Flag, Value).
+
sweep_colourise_buffer([String|Path], Colors) :-
setup_call_cleanup(( new_memory_file(H),
insert_memory_file(H, 0, String),
- [nongnu] elpa/sweeprolog 97440dda21 043/166: DOC: update the manual to reflect the latest GMP deconflication, (continued)
- [nongnu] elpa/sweeprolog 97440dda21 043/166: DOC: update the manual to reflect the latest GMP deconflication, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 9466ce0d59 046/166: ADDED: completion-at-point function in sweep-top-level-mode, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 6e9ac379e6 047/166: DOC: Expand top-level documentation section, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 4ecc8ec55f 050/166: Add BSD license, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog a26ca14c81 053/166: ENHANCED: show more relevant candidates in top-level completion, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 7fa11fdcdd 055/166: FIXED: hide predicates starting with '$' in sweep-find-predicate, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog e70b4aef2f 057/166: ADDED: sweep-file-name-handler, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 10516034be 061/166: ADDED: sweep-indent-line, an indent-line-function for sweep-mode, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog face064afa 062/166: ADDED: custom font-lock-fontify-region-function for sweep-mode, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 6363ddef3a 073/166: ADDED: implemented all xref backend callback functions, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 8dc9359dca 082/166: ADDED: sweep-set-prolog-flag for setting Prolog flags,
ELPA Syncer <=
- [nongnu] elpa/sweeprolog 0f86b23be9 080/166: ENHANCED: emit Prolog messages with color coding, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 1f4b1a6dcc 079/166: MODIFIED: use executable-find to locate the swipl executable..., ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog f772a136e4 081/166: DOC: fix typos, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 75ec7290be 096/166: ADDED: sweep-load-buffer, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 3717572348 091/166: FIXED: handle more missing color terms, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 1744b29cc2 092/166: FIXED: off by one in sweep-colourise-some-terms, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 16d1a380ab 122/166: FIXED: (sweep-beginning-of-top-term): possible infinite loop, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog f887a4b3f0 085/166: ENHANCED: provide caller predicate in xref-find-references, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 49214a669b 109/166: PORT: don't depend on pos-bol added in Emacs 29, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 1aefaea2ab 106/166: ADDED: (sweep-find-file-at-point): new function, ELPA Syncer, 2022/09/30