[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cape 80ca6abfd5 063/146: Add cape-line
From: |
ELPA Syncer |
Subject: |
[elpa] externals/cape 80ca6abfd5 063/146: Add cape-line |
Date: |
Sun, 9 Jan 2022 20:57:43 -0500 (EST) |
branch: externals/cape
commit 80ca6abfd50196608b81e6a25ad372b50ee5f409
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add cape-line
---
README.org | 1 +
cape.el | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/README.org b/README.org
index eef1a87b08..607ffc1d60 100644
--- a/README.org
+++ b/README.org
@@ -50,6 +50,7 @@ this package should be upstreamed into Emacs itself.
("C-c p s" . cape-symbol)
("C-c p a" . cape-abbrev)
("C-c p i" . cape-ispell)
+ ("C-c p l" . cape-line)
("C-c p w" . cape-dict))
:init
;; Add `completion-at-point-functions', used by `completion-at-point'.
diff --git a/cape.el b/cape.el
index e6600fe145..4c7d1f2dc9 100644
--- a/cape.el
+++ b/cape.el
@@ -710,6 +710,27 @@ VALID is the input comparator, see `cape--input-valid-p'."
(complete-with-action action table str pred)))
,@plist)))))
+;;;###autoload
+(defun cape-line ()
+ "Complete current line from other lines in buffer."
+ (interactive)
+ (let ((beg (point-min))
+ (max (point-max))
+ (pt (point))
+ (ht (make-hash-table :test #'equal))
+ end lines)
+ (save-excursion
+ (while (< beg max)
+ (goto-char beg)
+ (setq end (line-end-position))
+ (unless (<= beg pt end)
+ (let ((line (buffer-substring-no-properties beg end)))
+ (unless (or (string-blank-p line) (gethash line ht))
+ (puthash line t ht)
+ (push line lines))))
+ (setq beg (1+ end))))
+ (completion-in-region (line-beginning-position) (point) lines)))
+
;;;###autoload
(defun cape-capf-with-properties (capf &rest properties)
"Return a new CAPF with additional completion PROPERTIES.
- [elpa] externals/cape ff5b19afc0 025/146: Add missing omit-nulls, (continued)
- [elpa] externals/cape ff5b19afc0 025/146: Add missing omit-nulls, ELPA Syncer, 2022/01/09
- [elpa] externals/cape a54a512030 030/146: cape-merge-capfs: Compute candidates later, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 0bdc6ae05c 034/146: README: Mention cape-capf-buster, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 8fd6c17a01 033/146: Add cape-capf-buster, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 90ad5d68d5 037/146: Extract cape--cached-table, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 04a332c5fe 036/146: Extract cape--input-changed-p, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 882b9d9e79 042/146: Rename cape-merge-capfs, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 9111ad5101 043/146: Ensure that dabbrev is initialized properly, ELPA Syncer, 2022/01/09
- [elpa] externals/cape af4268549c 055/146: Dabbrev: Use equality check, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 29f828cc82 061/146: Reorder, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 80ca6abfd5 063/146: Add cape-line,
ELPA Syncer <=
- [elpa] externals/cape 52c86daf8c 062/146: Version 0.2, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 8643892a6d 066/146: Minor refactoring, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 0fdbf4f5c3 073/146: cape-line: Implement capf, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 16ef21309b 076/146: Improve cape-dabbrev, ELPA Syncer, 2022/01/09
- [elpa] externals/cape edb2be3b71 092/146: Version 0.3, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 08877dbf75 096/146: Improve comments, ELPA Syncer, 2022/01/09
- [elpa] externals/cape b5485b8878 031/146: cape-ispell-capf: Compute candidates later, ELPA Syncer, 2022/01/09
- [elpa] externals/cape dc26e9f7ab 049/146: cape-dict-capf: Load the dict lazily, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 2bcdd7bfe5 052/146: cape-file-capf: Require directory as prefix (Fix #9), ELPA Syncer, 2022/01/09
- [elpa] externals/cape 673b086dae 056/146: Annotate abbreviations with expansion, ELPA Syncer, 2022/01/09