[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [External] : Getting text from next non-blank line
From: |
Stephen Berman |
Subject: |
Re: [External] : Getting text from next non-blank line |
Date: |
Sat, 20 Apr 2024 00:37:45 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
On Fri, 19 Apr 2024 21:50:12 +0000 Heime <heimeborgia@protonmail.com> wrote:
> Sent with Proton Mail secure email.
>
> On Saturday, April 20th, 2024 at 9:04 AM, Drew Adams <drew.adams@oracle.com>
> wrote:
>
>> > This interactive function requests the user to input a string
>> > associated with the current line number. I want to change it so
>> > that the function picks out the text on the current line or the
>> > text of the next non-blank line. But also allow the user to write
>> > their own text for the line.
>>
>> ...
>>
>> > (interactive "sString: ")
>>
>>
>> Don't use that, if you want to provide a
>> default value for the user input.
>>
>> Instead, use a function that accepts a
>> default value. E.g., `read-string' or` completing-read'.
>>
>> Read how to use `interactive' with a sexp as argument that returns the list
>> of args you want` interactive' to pass
>> to the function body.
>>
>> https://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Interactive.html
>
> Have started with this to get the non-blank text. But still no way for
> use to use his own text.
Follow Drew's advice, e.g. use read-string with your if-sexp as the
default value. (But what if the next line after a blank line is also
blank? And the string (thing-at-point 'line t) returns includes the
newline at the end of the line; do you want that?)
Steve Berman
> (defun tema-mark (text)
> "Associate line number at cursor position with text."
>
> (interactive
> (list (if (string-blank-p (thing-at-point 'line t))
> (progn (forward-line)
> (thing-at-point 'line t))
> (thing-at-point 'line t))))
>
> (let ( (line-number (line-number-at-pos)) )
> (setq-local tema-lugar
> (append tema-lugar
> (list (cons text line-number))))
> ))