branch: externals/eev commit 2b04415e95fd7308ff8d43d14b505cf54509479e Author: Eduardo Ochs <eduardoo...@gmail.com> Commit: Eduardo Ochs <eduardoo...@gmail.com>
Rewrote eev-kla.el almost completely. --- ChangeLog | 4 +++ VERSION | 4 +-- eev-kla.el | 115 ++++++++++++++++++++++++++++++++++++++++++++----------------- 3 files changed, 89 insertions(+), 34 deletions(-) diff --git a/ChangeLog b/ChangeLog index f453baffb1..50c03d2af3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2022-03-07 Eduardo Ochs <eduardoo...@gmail.com> + + * eev-kla.el: rewritten almost completely. + 2022-03-03 Eduardo Ochs <eduardoo...@gmail.com> * eev-intro.el (find-eev-quick-intro): rewrote the section "10.2. diff --git a/VERSION b/VERSION index e8701c529f..8881439aab 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -Thu Mar 3 18:41:29 GMT 2022 -Thu Mar 3 15:41:29 -03 2022 +Mon Mar 7 04:33:45 GMT 2022 +Mon Mar 7 01:33:45 -03 2022 diff --git a/eev-kla.el b/eev-kla.el index 63ed0e2a5d..2308f21cfb 100644 --- a/eev-kla.el +++ b/eev-kla.el @@ -1,4 +1,4 @@ -;;; eev-kla.el -- kill link to anchor and variants. -*- lexical-binding: nil; -*- +;;; eev-kla.el -- kill link to anchor and friends. -*- lexical-binding: nil; -*- ;; Copyright (C) 2012-2021 Free Software Foundation, Inc. ;; @@ -19,7 +19,7 @@ ;; ;; Author: Eduardo Ochs <eduardoo...@gmail.com> ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com> -;; Version: 20220224 +;; Version: 20220307 ;; Keywords: e-scripts ;; ;; Latest version: <http://angg.twu.net/eev-current/eev-kla.el> @@ -144,6 +144,10 @@ ;; ;; Copied to the kill ring: (find-eevfile "eev-kla.el") ;; +;; 3) `M-x eeklas' +;; +;; 4) `M-x eeklfs' +;; ;; 3) `M-x ee-preferred-c-show', that shows the current directory ;; and the value of `ee-preferred-c' at the window at the right. ;; This is useful to check if the ".dir-locals.el" file was @@ -193,12 +197,33 @@ ;; «utils» (to ".utils") +;; Tests: (ee-kl-c) +;; (ee-kl-dir) +;; (ee-kl-fname) +;; ee-edir +;; (ee-kl-dir "e") +;; (ee-efile "textmodes/fill.el") +;; (ee-kl-fname "e" (ee-efile "textmodes/fill.el")) ;; -(defun ee-kl-dir (c) - (ee-expand (eval (read (format "ee-%sdir" c))))) +(defun ee-kl-c () + (or ee-preferred-c (error "`ee-preferred-c' is nil here!"))) -(defun ee-kl-fname (c fname) - (ee-remove-prefix (ee-kl-dir c) (ee-expand fname))) +(defun ee-kl-dir (&optional c) + (ee-expand (eval (read (format "ee-%sdir" (or c (ee-kl-c))))))) + +(defun ee-kl-fname (&optional c fname) + (ee-remove-prefix (ee-kl-dir c) (ee-expand (or fname buffer-file-name)))) + +;; Tests: (ee-kl-anchor) +;; (ee-kl-region) +;; (ee-kl-kill "(FOO \"BAR\")") +;; +(defun ee-kl-anchor () + (ee-copy-preceding-tag-to-kill-ring)) + +(defun ee-kl-region () + (if (not (use-region-p)) (error "The region is not active!")) + (buffer-substring-no-properties (point) (mark))) (defun ee-kl-kill (sexp) (kill-new (concat sexp "\n")) @@ -206,6 +231,32 @@ +;; Tests: +;; (defun find-2ae (sexp) (find-2a nil `(find-estring ,sexp :end))) +;; (find-2ae ' (concat "FOO\n" "BAR") ) +;; (find-2ae ' (ee-kla-sexp "eev" "foo.el" "ANCHOR") ) +;; (find-2ae ' (ee-klas-sexp "eev" "foo.el" "ANCHOR" "FOO\nBAR") ) +;; (find-2ae ' (ee-klf-sexp "eev" "foo.el") ) +;; (find-2ae ' (ee-klfs-sexp "eev" "foo.el" "FOO\nBAR") ) +;; +(defun ee-kla-sexp (c fname anchor) + (format "(find-%s \"%s\" \"%s\")" c fname anchor)) + +(defun ee-klas-sexp (c fname anchor str) + (format "(find-%s \"%s\" \"%s\" %s)" c fname anchor (ee-S str))) + +(defun ee-klf-sexp (c fname) + (format "(find-%sfile \"%s\")" c fname)) + +(defun ee-klfs-sexp (c fname str) + (format "(find-%sfile \"%s\" %s)" c fname (ee-S str))) + + + + + + + ;;; _ _ ;;; ___ ___| | _| | __ _ ;;; / _ \/ _ \ |/ / |/ _` | @@ -213,46 +264,46 @@ ;;; \___|\___|_|\_\_|\__,_| ;;; ;; «eekla» (to ".eekla") -;; <K>ill <L>ink to <A>nchor. +;; <K>ill <L>ink to <A>nchor, +;; <K>ill <L>ink to <A>nchor and <S>tring, +;; <K>ill <L>ink to <File>. +;; <K>ill <L>ink to <File> and <S>tring. ;; More precisely: produce a link to the preceding anchor and put it ;; in the kill-ring. -(defun ee-kla-sexp (c fname anchor) - (format "(find-%s \"%s\" \"%s\")" c (ee-kl-fname c fname) anchor)) +;; (eek "C-e 4*<left> C-SPC <<klas>>") + (defun eekla () - "Put in the kill ring a link to the preceding anchor." + "<K>ill <L>ink to <A>nchor. +Put in the kill ring a link to the preceding anchor." (interactive) - (let* ((c (or ee-preferred-c (error "`ee-preferred-c' is nil here!"))) - (fname buffer-file-name) - (anchor (ee-copy-preceding-tag-to-kill-ring))) - (ee-kl-kill (ee-kla-sexp c fname anchor)))) - - -;;; _ _ __ -;;; ___ ___| | _| |/ _| -;;; / _ \/ _ \ |/ / | |_ -;;; | __/ __/ <| | _| -;;; \___|\___|_|\_\_|_| -;;; -;; «eeklf» (to ".eeklf") -;; <K>ill <L>ink to <File>. + (ee-kl-kill (ee-kla-sexp (ee-kl-c) (ee-kl-fname) (ee-kl-anchor)))) -(defun ee-klf-sexp (c fname) - (format "(find-%sfile \"%s\")" c (ee-kl-fname c fname))) +(defun eeklas () + "<K>ill <L>ink to <A>nchor and <S>tring. +Put in the kill ring a link to the preceding anchor." + (interactive) + (ee-kl-kill (ee-klas-sexp (ee-kl-c) (ee-kl-fname) (ee-kl-anchor) (ee-kl-region)))) (defun eeklf () - "Put in the kill ring a link to this file." + "<K>ill <L>ink to <F>ile." (interactive) - (let* ((c (or ee-preferred-c (error "`ee-preferred-c' is nil here!"))) - (fname buffer-file-name)) - (ee-kl-kill (ee-klf-sexp c fname)))) + (ee-kl-kill (ee-klf-sexp (ee-kl-c) (ee-kl-fname)))) + +(defun eeklfs () + "<K>ill <L>ink to <F>ile and <S>tring." + (interactive) + (ee-kl-kill (ee-klfs-sexp (ee-kl-c) (ee-kl-fname) (ee-kl-region)))) + ;; «aliases» (to ".aliases") ;; I use these aliases: -;; (defalias 'kla 'eekla) -;; (defalias 'klf 'eeklf) +;; (defalias 'kla 'eekla) +;; (defalias 'klas 'eeklas) +;; (defalias 'klf 'eeklf) +;; (defalias 'klfs 'eeklfs)