[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/sweeprolog a26ca14c81 053/166: ENHANCED: show more relevan
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/sweeprolog a26ca14c81 053/166: ENHANCED: show more relevant candidates in top-level completion |
Date: |
Fri, 30 Sep 2022 04:59:25 -0400 (EDT) |
branch: elpa/sweeprolog
commit a26ca14c81f6c2361ed3837a575cd5c2f86eaa3c
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>
ENHANCED: show more relevant candidates in top-level completion
---
sweep.el | 25 ++++++++++++++-----------
sweep.pl | 24 ++++++++++++------------
2 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/sweep.el b/sweep.el
index b984b42194..e5af56058b 100644
--- a/sweep.el
+++ b/sweep.el
@@ -66,8 +66,7 @@
:type '(list string)
:group 'sweep)
-
-(defvar sweep-prolog-server-port 12345)
+(defvar sweep-prolog-server-port nil)
;;;###autoload
(defun sweep-module-compile ()
@@ -104,16 +103,15 @@
(defun sweep-start-prolog-server ()
(sweep-open-query "user"
- "sweep"
- "sweep_start_prolog_server"
- sweep-prolog-server-port)
+ "prolog_server"
+ "prolog_server"
+ nil t)
(let ((sol (sweep-next-solution)))
(sweep-close-query)
- sol))
+ (when (sweep-true-p sol)
+ (setq sweep-prolog-server-port (cdr sol)))))
(defun sweep-init ()
- (setq sweep-prolog-server-port (+ (random 10000)
- sweep-prolog-server-port))
(apply #'sweep-initialize
(cons (expand-file-name "bin/swipl" (file-name-directory
load-file-name))
@@ -123,8 +121,12 @@
(defvar sweep-predicate-completion-collection nil)
+(defvar-local sweep-buffer-module nil)
+
(defun sweep-local-predicates-collection (&optional prefix)
- (sweep-open-query "user" "sweep" "sweep_local_predicate_completion" prefix)
+ (sweep-open-query "user" "sweep" "sweep_local_predicate_completion"
+ (cons sweep-buffer-module
+ prefix))
(let ((sol (sweep-next-solution)))
(sweep-close-query)
(when (sweep-true-p sol)
@@ -549,8 +551,8 @@ module name, F is a functor name and N is its arity."
(put-text-property beg end 'font-lock-face
(pcase g
(`("recursion" . ,_) sweep-recursion-face)
- (`("meta" . ,_) sweep-meta-face)
- (`("built_in" . ,_) sweep-built-in-face)
+ (`("meta" . ,_) sweep-meta-face)
+ (`("built_in" . ,_) sweep-built-in-face)
(`("undefined" . ,_) sweep-undefined-face)
(_ sweep-goal-face))))
("unused_import" (put-text-property beg end 'font-lock-face
sweep-unused-import-face))
@@ -633,6 +635,7 @@ module name, F is a functor name and N is its arity."
(add-hook 'post-self-insert-hook
#'sweep-top-level--post-self-insert-function nil t)
(setq sweep-top-level-timer (run-with-idle-timer 0.2 t
#'sweep-colourise-query (current-buffer)))
(add-hook 'completion-at-point-functions
#'sweep-completion-at-point-function nil t)
+ (setq sweep-buffer-module "user")
(add-hook 'kill-buffer-hook
(lambda ()
(when (timerp sweep-top-level-timer)
diff --git a/sweep.pl b/sweep.pl
index 5de752344c..68343bed66 100644
--- a/sweep.pl
+++ b/sweep.pl
@@ -37,7 +37,6 @@
sweep_predicates_collection/2,
sweep_modules_collection/2,
sweep_packs_collection/2,
- sweep_start_prolog_server/2,
sweep_pack_install/2,
sweep_module_path/2
]).
@@ -227,18 +226,19 @@ sweep_predicate_location(MFN, [Path|Line]) :-
predicate_property(M:H, line_count(Line)),
predicate_property(M:H, file(Path0)), atom_string(Path0, Path).
-sweep_local_predicate_completion(Sub, Preds) :-
+sweep_local_predicate_completion([Mod|Sub], Preds) :-
+ atom_string(M, Mod),
findall(F/N,
- current_predicate(F/N),
+ @(current_predicate(F/N), M),
Preds0),
- list_to_set(Preds0, Preds1),
- convlist(sweep_predicate_completion_annotated(Sub), Preds1, Preds).
+ convlist(sweep_predicate_completion_annotated(Sub, M), Preds0, Preds).
-sweep_predicate_completion_annotated(Sub, F/N, [S|A]) :-
+sweep_predicate_completion_annotated(Sub, M, F/N, [S|A]) :-
format(string(S), '~W/~w', [F, [quoted(true), character_escapes(true)],
N]),
sub_string(S, _, _, _, Sub),
+ \+ sub_string(S, _, _, _, "$"),
pi_head(F/N, Head),
- findall(P, predicate_property(Head, P), Ps0),
+ findall(P, @(predicate_property(Head, P), M), Ps0),
sweep_predicate_completion_op_annotation(F, Ps0, Ps),
phrase(sweep_head_annotation(Ps), A).
@@ -282,14 +282,17 @@ sweep_predicates_collection(Sub, Preds) :-
Tail),
list_to_set(Preds0, Preds1),
maplist(sweep_predicate_description, Preds1, Preds2),
+ include(sweep_predicate_non_hidden, Preds2, Preds3),
( Sub == []
- -> Preds = Preds2
- ; include(sweep_predicate_matches(Sub), Preds2, Preds)
+ -> Preds = Preds3
+ ; include(sweep_predicate_matches(Sub), Preds3, Preds)
).
sweep_predicate_matches(Sub, [String|_]) :-
sub_string(String, _, _, _, Sub).
+sweep_predicate_non_hidden([String|_]) :-
+ \+ sub_string(String, 0, _, _, "$").
sweep_predicate_description(M:F/N, [S|T]) :-
sweep_predicate_description_(M, F, N, T), format(string(S), '~w:~w/~w',
[M, F, N]).
@@ -314,9 +317,6 @@ sweep_pack_install(PackName, []) :-
atom_string(Pack, PackName), pack_install(Pack, [silent(true),
upgrade(true), interactive(false)]).
-sweep_start_prolog_server(Port, []) :-
- prolog_server(Port, []).
-
sweep_colourise_query([String|Offset], _) :-
prolog_colourise_query(String, module(sweep),
sweep_handle_query_color(Offset)).
- [nongnu] elpa/sweeprolog ecc36d67e1 089/166: FIXED: handle some missing color terms, (continued)
- [nongnu] elpa/sweeprolog ecc36d67e1 089/166: FIXED: handle some missing color terms, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog f72ebe6d62 127/166: ENHANCHED: automatic syntax aware autoindentation in sweep-mode, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog ccaa53a19c 147/166: DOC: update installation instruction to reflect inclusion in swipl, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog c8192b8c31 145/166: DOC: document imenu support in sweep-mode buffers, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 6b9e2a7833 139/166: Tweak README to prevent a hosting platform from failing to render it, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 79bf5b78b8 042/166: Run `make check` with libswipl preloaded, ELPA Syncer, 2022/09/30
- [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 <=
- [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, 2022/09/30
- [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