* Print value of selected-window in some info buffer @ 2024-05-14 21:25 Heime 2024-05-14 23:50 ` tpeplt 2024-05-15 5:25 ` Yuri Khan 0 siblings, 2 replies; 6+ messages in thread From: Heime @ 2024-05-14 21:25 UTC (permalink / raw) To: Heime via Users list for the GNU Emacs text editor How can the value of selected-window be printed in some info buffer ? Because I get a failure with (bdrive-insert (selected-window)) (defun bdrive-insert (objekt) "TODO" (with-current-buffer (get-buffer-create bfname) (cond ((stringp objekt) (insert (concat objekt "\n" ))) ))) ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Print value of selected-window in some info buffer 2024-05-14 21:25 Print value of selected-window in some info buffer Heime @ 2024-05-14 23:50 ` tpeplt 2024-05-15 0:05 ` Heime 2024-05-15 5:25 ` Yuri Khan 1 sibling, 1 reply; 6+ messages in thread From: tpeplt @ 2024-05-14 23:50 UTC (permalink / raw) To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor Heime <heimeborgia@protonmail.com> writes: > How can the value of selected-window be printed in some info buffer ? > > Because I get a failure with (bdrive-insert (selected-window)) > > (defun bdrive-insert (objekt) > "TODO" > > (with-current-buffer (get-buffer-create bfname) > > (cond > ((stringp objekt) > (insert (concat objekt "\n" ))) ))) 1. It would be helpful if you would include with your question the error that was reported. 2. Have you attempted to compile the buffer or file in which your function definition resides? Have you attempted to include a call to your function in a file with the function definition and compile that buffer? Compilation will often point out mistakes and oversights in your code. -- The lyf so short, the craft so long to lerne. - Geoffrey Chaucer, The Parliament of Birds. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Print value of selected-window in some info buffer 2024-05-14 23:50 ` tpeplt @ 2024-05-15 0:05 ` Heime 0 siblings, 0 replies; 6+ messages in thread From: Heime @ 2024-05-15 0:05 UTC (permalink / raw) To: tpeplt; +Cc: Heime via Users list for the GNU Emacs text editor Sent with Proton Mail secure email. On Wednesday, May 15th, 2024 at 11:50 AM, tpeplt <tpeplt@gmail.com> wrote: > Heime heimeborgia@protonmail.com writes: > > > How can the value of selected-window be printed in some info buffer ? > > > > Because I get a failure with (bdrive-insert (selected-window)) > > > > (defun bdrive-insert (objekt) > > "TODO" > > > > (with-current-buffer (get-buffer-create bfname) > > > > (cond > > ((stringp objekt) > > (insert (concat objekt "\n" ))) ))) > > > 1. It would be helpful if you would include with your question the error > that was reported. > > 2. Have you attempted to compile the buffer or file in which your > function definition resides? Have you attempted to include a call to > your function in a file with the function definition and compile that > buffer? Compilation will often point out mistakes and oversights in > your code. I just don't get anything printed > -- > The lyf so short, the craft so long to lerne. > - Geoffrey Chaucer, The Parliament of Birds. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Print value of selected-window in some info buffer 2024-05-14 21:25 Print value of selected-window in some info buffer Heime 2024-05-14 23:50 ` tpeplt @ 2024-05-15 5:25 ` Yuri Khan 2024-05-15 11:52 ` Heime 1 sibling, 1 reply; 6+ messages in thread From: Yuri Khan @ 2024-05-15 5:25 UTC (permalink / raw) To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor On Wed, 15 May 2024 at 04:26, Heime <heimeborgia@protonmail.com> wrote: > > How can the value of selected-window be printed in some info buffer ? > > Because I get a failure with (bdrive-insert (selected-window)) You are passing a window here… > (defun bdrive-insert (objekt) > "TODO" > > (with-current-buffer (get-buffer-create bfname) > > (cond > ((stringp objekt) … but here you test objekt for being a string, and if not, you skip the insertion. > (insert (concat objekt "\n" ))) ))) If you want to print the window object’s default string representation, like ‘#<window 669 on *scratch*>’, remove the stringp test and use: (insert (format "%s\n" objekt)) If you want to print specific properties of the window, extract those with the appropriate ‘window-*’ functions and pass them into ‘format’. Provide placeholders in the format string for each value you print. Also, learn to use the debugger so you can solve this and similar issues yourself. Anywhere within the ‘bdrive-insert’ definition, type ‘C-u C-M-x’. This instruments your function to invoke the debugger when called. Next, evaluate your ‘(bdrive-insert (selected-window))’ form. You get a window showing the function source, with point on the first subexpression to be evaluated, likely ‘bfname’, echo area showing its value. Type ‘n’ for ‘next’. Point moves to the next expression in evaluation order. Do this until you get to ‘objekt’ (showing ‘#<window 669 on *scratch*>’) and then ‘(stringp objekt)’ (showing ‘nil’). At this point, you can see that a window is not a string. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Print value of selected-window in some info buffer 2024-05-15 5:25 ` Yuri Khan @ 2024-05-15 11:52 ` Heime 2024-05-15 13:14 ` tpeplt 0 siblings, 1 reply; 6+ messages in thread From: Heime @ 2024-05-15 11:52 UTC (permalink / raw) To: Yuri Khan; +Cc: Heime via Users list for the GNU Emacs text editor On Wednesday, May 15th, 2024 at 5:25 PM, Yuri Khan <yuri.v.khan@gmail.com> wrote: > On Wed, 15 May 2024 at 04:26, Heime heimeborgia@protonmail.com wrote: > > > How can the value of selected-window be printed in some info buffer ? > > > > Because I get a failure with (bdrive-insert (selected-window)) > > > You are passing a window here… > > > (defun bdrive-insert (objekt) > > "TODO" > > > > (with-current-buffer (get-buffer-create bfname) > > > > (cond > > ((stringp objekt) > > > … but here you test objekt for being a string, and if not, you skip > the insertion. > > > (insert (concat objekt "\n" ))) ))) > > > If you want to print the window object’s default string > representation, like ‘#<window 669 on scratch>’, remove the stringp > > test and use: > > (insert (format "%s\n" objekt)) I want to print the string representation. The function will perform something for a string, something else for an integer, ... How can one capture a window such as (selected-window) with a cond ? > If you want to print specific properties of the window, extract those > with the appropriate ‘window-*’ functions and pass them into ‘format’. > Provide placeholders in the format string for each value you print. > > > Also, learn to use the debugger so you can solve this and similar > issues yourself. Anywhere within the ‘bdrive-insert’ definition, type > ‘C-u C-M-x’. This instruments your function to invoke the debugger > when called. Next, evaluate your ‘(bdrive-insert (selected-window))’ > form. You get a window showing the function source, with point on the > first subexpression to be evaluated, likely ‘bfname’, echo area > showing its value. Type ‘n’ for ‘next’. Point moves to the next > expression in evaluation order. Do this until you get to ‘objekt’ > (showing ‘#<window 669 on scratch>’) and then ‘(stringp objekt)’ > > (showing ‘nil’). At this point, you can see that a window is not a > string. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Print value of selected-window in some info buffer 2024-05-15 11:52 ` Heime @ 2024-05-15 13:14 ` tpeplt 0 siblings, 0 replies; 6+ messages in thread From: tpeplt @ 2024-05-15 13:14 UTC (permalink / raw) To: Heime; +Cc: Yuri Khan, Heime via Users list for the GNU Emacs text editor Heime <heimeborgia@protonmail.com> writes: > > I want to print the string representation. The function will perform > something for a string, something else for an integer, ... > > How can one capture a window such as (selected-window) with a cond ? > >> If you want to print specific properties of the window, extract those >> with the appropriate ‘window-*’ functions and pass them into ‘format’. >> Provide placeholders in the format string for each value you print. >> >> >> Also, learn to use the debugger so you can solve this and similar >> issues yourself. Anywhere within the ‘bdrive-insert’ definition, type >> ‘C-u C-M-x’. This instruments your function to invoke the debugger >> when called. Next, evaluate your ‘(bdrive-insert (selected-window))’ >> form. You get a window showing the function source, with point on the >> first subexpression to be evaluated, likely ‘bfname’, echo area >> showing its value. Type ‘n’ for ‘next’. Point moves to the next >> expression in evaluation order. Do this until you get to ‘objekt’ >> (showing ‘#<window 669 on scratch>’) and then ‘(stringp objekt)’ >> >> (showing ‘nil’). At this point, you can see that a window is not a >> string. > Note that examples using the debugger are included in the Introduction to Emacs Lisp. To read the chapter on debugging, evaluate the following expression in Emacs: (info "(eintr) Debugging") It might also be useful to look at the buffer functions in the ‘shortdoc’ summary. To read it, evaluate the following expression in Emacs: (shortdoc-display-group "buffer") ‘shortdoc’ was introduced in Emacs 28, so it is not available if you are using an earlier version of Emacs. -- The lyf so short, the craft so long to lerne. - Geoffrey Chaucer, The Parliament of Birds. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-05-15 13:14 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-05-14 21:25 Print value of selected-window in some info buffer Heime 2024-05-14 23:50 ` tpeplt 2024-05-15 0:05 ` Heime 2024-05-15 5:25 ` Yuri Khan 2024-05-15 11:52 ` Heime 2024-05-15 13:14 ` tpeplt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).