[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/sweeprolog fc6c2964d9 105/166: ADDED: (sweep-file-at-point
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/sweeprolog fc6c2964d9 105/166: ADDED: (sweep-file-at-point): new function |
Date: |
Fri, 30 Sep 2022 04:59:30 -0400 (EDT) |
branch: elpa/sweeprolog
commit fc6c2964d9c47a99864a28d206dde3b55cd530d4
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>
ADDED: (sweep-file-at-point): new function
---
sweep.el | 25 ++++++++++++++++++++++++-
sweep.pl | 32 ++++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 1 deletion(-)
diff --git a/sweep.el b/sweep.el
index 866130f84a..16aa103c50 100644
--- a/sweep.el
+++ b/sweep.el
@@ -1190,13 +1190,36 @@ Interactively, a prefix arg means to prompt for BUFFER."
(and (looking-at-p (rx bol graph))
(not (nth 8 (syntax-ppss)))))
-(defun sweep-identifier-at-point (&optional point)
+(defun sweep-file-at-point (&optional point)
(let* ((p (or point (point)))
(beg (save-mark-and-excursion
(goto-char p)
(unless (sweep-at-beginning-of-top-term-p)
(sweep-beginning-of-top-term))
+ (max (1- (point)) (point-min))))
+ (end (save-mark-and-excursion
+ (goto-char p)
+ (sweep-end-of-top-term)
(point)))
+ (contents (buffer-substring-no-properties beg end)))
+ (sweep-open-query "user"
+ "sweep"
+ "sweep_file_at_point"
+ (list contents
+ (buffer-file-name)
+ (- p beg)))
+ (let ((sol (sweep-next-solution)))
+ (sweep-close-query)
+ (when (sweep-true-p sol)
+ (cdr sol)))))
+
+(defun sweep-identifier-at-point (&optional point)
+ (let* ((p (or point (point)))
+ (beg (save-mark-and-excursion
+ (goto-char p)
+ (unless (sweep-at-beginning-of-top-term-p)
+ (sweep-beginning-of-top-term))
+ (max (1- (point)) (point-min))))
(end (save-mark-and-excursion
(goto-char p)
(sweep-end-of-top-term)
diff --git a/sweep.pl b/sweep.pl
index 75138a17db..d5d451fef2 100644
--- a/sweep.pl
+++ b/sweep.pl
@@ -37,6 +37,7 @@
sweep_current_prolog_flags/2,
sweep_set_prolog_flag/2,
sweep_documentation/2,
+ sweep_file_at_point/2,
sweep_identifier_at_point/2,
sweep_expand_file_name/2,
sweep_path_module/2,
@@ -130,6 +131,37 @@ sweep_colourise_buffer_(Path0, Contents, []) :-
erase(Ref1).
+sweep_file_at_point([Contents,Path0,Point], Result) :-
+ atom_string(Path, Path0),
+ with_buffer_stream(Stream,
+ Contents,
+ sweep_file_at_point_(Stream, Path, Point, Result)).
+
+:- dynamic sweep_current_file_at_point/1.
+
+sweep_file_at_point_(Stream, Path, Point, File) :-
+ set_stream(Stream, file_name(Path)),
+ retractall(sweep_current_file_at_point(_)),
+ prolog_colourise_term(Stream, Path,
+ sweep_handle_file_at_point(Point),
+ []),
+ sweep_current_file_at_point(File0),
+ atom_string(File0, File).
+
+sweep_handle_file_at_point(Point, file_no_depend(File), Beg, Len) :-
+ Beg =< Point,
+ Point =< Beg + Len,
+ !,
+ asserta(sweep_current_file_at_point(File)).
+sweep_handle_file_at_point(Point, file(File), Beg, Len) :-
+ Beg =< Point,
+ Point =< Beg + Len,
+ !,
+ asserta(sweep_current_file_at_point(File)).
+sweep_handle_file_at_point(_, _, _, _).
+
+
+
sweep_identifier_at_point([Contents0, Path, Point], Identifier) :-
setup_call_cleanup(( new_memory_file(H),
insert_memory_file(H, 0, Contents0),
- [nongnu] elpa/sweeprolog f887a4b3f0 085/166: ENHANCED: provide caller predicate in xref-find-references, (continued)
- [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
- [nongnu] elpa/sweeprolog ce88557fdc 104/166: DOC: NEWS.org: new file, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 28170f629f 124/166: FIXED: (sweep--colourise): handle the dict_content color term, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 6d1509a06a 090/166: FIXED: sweep-beginning-of-top-term stopping at comment start, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 9dfbbf9e9b 128/166: ADDED: new user option for choosing indentation increments, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 19d725b869 129/166: New make target: make info, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog a563bc36dc 121/166: FIXED: package-lint complaint about autoloaded private function, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog c94b509fcb 119/166: DOC: Add Top-level history section, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog fc6c2964d9 105/166: ADDED: (sweep-file-at-point): new function,
ELPA Syncer <=
- [nongnu] elpa/sweeprolog 1f83ce9f04 088/166: FIXED: use operators from xref in sweep_colourise_some_terms, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 92f599fbbc 094/166: FIXED: premature cut in sweep_predicate_location/2, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 9d87b4d445 131/166: BUILD: rely on preexisting emacs-module.h, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 504d4ff714 136/166: Find Emacs as `emacs`, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 07fc84b716 140/166: DOC: document new user option sweep-faces-style, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog f7dfbda2f2 148/166: Update LICENSE, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog b6e444bbdc 152/166: FIXED: remove message_hook during cleanup to avoid possible crash, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 04964e36b4 143/166: ENHANCED: also update highlighting between sub terms, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 8affae71da 138/166: ADDED: sweep-faces-style user option for controlling highlighting, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 615312796c 048/166: FIXED: copy paste error (singleton variable), ELPA Syncer, 2022/09/30