elementary / code

Code editor designed for elementary OS
https://elementary.io
GNU General Public License v3.0
468 stars 112 forks source link

Code crashes when deleting lines #1443

Open TomiOhl opened 2 weeks ago

TomiOhl commented 2 weeks ago

What Happened?

Sometimes Code crashes when I select multiple lines and press backspace. I have an ocd where I need to keep only useful lines in bash history 😅, so when I'm deleting lines from there, that's when I get it mostly.

Steps to Reproduce

  1. Open a text file with code (e.g. bash history)
  2. Select some lines via the mouse
  3. Press backspace

Expected Behavior

The lines should be deleted and Code should not crash

OS Version

7.x (Horus)

Software Version

Latest release (I have run all updates)

Log Output

Segmentation fault

Hardware Info

No response

jeremypw commented 1 week ago

I could not reproduce this with the Early Access Elementary ( but only tested briefly). Please indicate whether you have AutoSave switched on and also indicate which extensions are active. If you are able please run Code under gdb in a terminal and when it crashes get a backtrace by typing bt and post the output here.

TomiOhl commented 1 week ago

Yes, I have autosave switched on. I have enabled these extensions:

gdb output:

GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from io.elementary.code...
(No debugging symbols found in io.elementary.code)
(gdb) run
Starting program: /usr/bin/io.elementary.code 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff2959640 (LWP 568669)]
[New Thread 0x7ffff2158640 (LWP 568670)]
[New Thread 0x7ffff18bc640 (LWP 568671)]
[New Thread 0x7ffff0eaf640 (LWP 568673)]
[Thread 0x7ffff0eaf640 (LWP 568673) exited]
[New Thread 0x7ffff0eaf640 (LWP 568674)]
[New Thread 0x7fffe93ff640 (LWP 568675)]
[Thread 0x7ffff0eaf640 (LWP 568674) exited]
[New Thread 0x7ffff0eaf640 (LWP 568676)]
[Thread 0x7fffe93ff640 (LWP 568675) exited]
[New Thread 0x7fffe93ff640 (LWP 568677)]
[Thread 0x7ffff0eaf640 (LWP 568676) exited]
[Thread 0x7fffe93ff640 (LWP 568677) exited]
[New Thread 0x7fffe93ff640 (LWP 568678)]
[New Thread 0x7ffff0eaf640 (LWP 568679)]
[New Thread 0x7fffe8bfe640 (LWP 568680)]
[Detaching after fork from child process 568682]
[New Thread 0x7fffd73ff640 (LWP 568694)]
[New Thread 0x7fffd6bfe640 (LWP 568695)]
[Thread 0x7fffd73ff640 (LWP 568694) exited]
[New Thread 0x7fffd73ff640 (LWP 568696)]
[New Thread 0x7fffd63fd640 (LWP 568697)]
[Thread 0x7fffd6bfe640 (LWP 568695) exited]
[Thread 0x7fffd63fd640 (LWP 568697) exited]
[Thread 0x7fffd73ff640 (LWP 568696) exited]
[New Thread 0x7fffd63fd640 (LWP 568698)]
[New Thread 0x7fffd73ff640 (LWP 568699)]
[Thread 0x7fffd63fd640 (LWP 568698) exited]
[New Thread 0x7fffd63fd640 (LWP 568700)]
[New Thread 0x7fffd6bfe640 (LWP 568701)]
[Thread 0x7fffd73ff640 (LWP 568699) exited]
[Thread 0x7fffd63fd640 (LWP 568700) exited]
[Thread 0x7fffd6bfe640 (LWP 568701) exited]
[New Thread 0x7fffd6bfe640 (LWP 568702)]
[New Thread 0x7fffd63fd640 (LWP 568703)]
[Thread 0x7fffd6bfe640 (LWP 568702) exited]
[New Thread 0x7fffd6bfe640 (LWP 568704)]
[New Thread 0x7fffd73ff640 (LWP 568705)]
[Thread 0x7fffd63fd640 (LWP 568703) exited]
[Thread 0x7fffd6bfe640 (LWP 568704) exited]
[Thread 0x7fffd73ff640 (LWP 568705) exited]
[New Thread 0x7fffd73ff640 (LWP 568706)]
[New Thread 0x7fffd6bfe640 (LWP 568707)]
[Thread 0x7fffd73ff640 (LWP 568706) exited]
[New Thread 0x7fffd73ff640 (LWP 568708)]
[New Thread 0x7fffd63fd640 (LWP 568709)]
[Thread 0x7fffd6bfe640 (LWP 568707) exited]
[Thread 0x7fffd73ff640 (LWP 568708) exited]
[New Thread 0x7fffd73ff640 (LWP 568710)]
[New Thread 0x7fffd6bfe640 (LWP 568711)]
[Thread 0x7fffd63fd640 (LWP 568709) exited]
[Thread 0x7fffd73ff640 (LWP 568710) exited]
[New Thread 0x7fffd73ff640 (LWP 568712)]
[New Thread 0x7fffd63fd640 (LWP 568713)]
[Thread 0x7fffd6bfe640 (LWP 568711) exited]
[Thread 0x7fffd73ff640 (LWP 568712) exited]
[New Thread 0x7fffd73ff640 (LWP 568714)]
[New Thread 0x7fffd63fd640 (LWP 568715)]
[Thread 0x7fffd63fd640 (LWP 568713) exited]
[Thread 0x7fffd73ff640 (LWP 568714) exited]
[New Thread 0x7fffd73ff640 (LWP 568716)]
[New Thread 0x7fffd6bfe640 (LWP 568717)]
[Thread 0x7fffd63fd640 (LWP 568715) exited]
[Thread 0x7fffd73ff640 (LWP 568716) exited]
[Thread 0x7fffd6bfe640 (LWP 568717) exited]
[New Thread 0x7fffd6bfe640 (LWP 568718)]
[New Thread 0x7fffd73ff640 (LWP 568719)]
[Thread 0x7fffd6bfe640 (LWP 568718) exited]
[New Thread 0x7fffd6bfe640 (LWP 568720)]
[New Thread 0x7fffd63fd640 (LWP 568721)]
[Thread 0x7fffd73ff640 (LWP 568719) exited]
[Thread 0x7fffd6bfe640 (LWP 568720) exited]
[Thread 0x7fffd63fd640 (LWP 568721) exited]
[New Thread 0x7fffd63fd640 (LWP 568722)]
[New Thread 0x7fffd6bfe640 (LWP 568723)]
[Thread 0x7fffd63fd640 (LWP 568722) exited]
[New Thread 0x7fffd63fd640 (LWP 568724)]
[New Thread 0x7fffd73ff640 (LWP 568725)]
[Thread 0x7fffd6bfe640 (LWP 568723) exited]
[Thread 0x7fffd63fd640 (LWP 568724) exited]
[Thread 0x7fffd73ff640 (LWP 568725) exited]
[New Thread 0x7fffd73ff640 (LWP 568726)]
[New Thread 0x7fffd63fd640 (LWP 568727)]
[Thread 0x7fffd73ff640 (LWP 568726) exited]
[New Thread 0x7fffd73ff640 (LWP 568728)]
[New Thread 0x7fffd6bfe640 (LWP 568729)]
[Thread 0x7fffd63fd640 (LWP 568727) exited]
[Thread 0x7fffd73ff640 (LWP 568728) exited]
[Thread 0x7fffd6bfe640 (LWP 568729) exited]
[Thread 0x7ffff0eaf640 (LWP 568679) exited]
[Thread 0x7fffe93ff640 (LWP 568678) exited]

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_regex_enabled: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_search_text: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_buffer_get_tag_table: assertion 'GTK_IS_TEXT_BUFFER (buffer)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_tag_table_get_size: assertion 'GTK_IS_TEXT_TAG_TABLE (table)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_tag_set_priority: assertion 'GTK_IS_TEXT_TAG (tag)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_iter_has_tag: assertion 'GTK_IS_TEXT_TAG (tag)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_iter_has_tag: assertion 'GTK_IS_TEXT_TAG (tag)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_iter_has_tag: assertion 'GTK_IS_TEXT_TAG (tag)' failed

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_at_word_boundaries: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_iter_has_tag: assertion 'GTK_IS_TEXT_TAG (tag)' failed

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_at_word_boundaries: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_search_text: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): Gtk-CRITICAL **: 01:39:53.208: gtk_text_buffer_remove_tag: assertion 'GTK_IS_TEXT_BUFFER (buffer)' failed

(io.elementary.code:568666): GtkSourceView-CRITICAL **: 01:39:53.208: gtk_source_search_settings_get_regex_enabled: assertion 'GTK_SOURCE_IS_SEARCH_SETTINGS (settings)' failed

(io.elementary.code:568666): GLib-GObject-CRITICAL **: 01:39:53.208: g_object_notify: assertion 'G_IS_OBJECT (object)' failed

Thread 1 "io.elementary.c" received signal SIGSEGV, Segmentation fault.
0x00007ffff6fbdefb in ?? () from /lib/x86_64-linux-gnu/libgtksourceview-4.so.0
(gdb) bt
#0  0x00007ffff6fbdefb in  () at /lib/x86_64-linux-gnu/libgtksourceview-4.so.0
jeremypw commented 1 week ago

Thanks, that is helpful. Did you only get one line of output after typing bt? The crash occured in a Gtk library. Ideally we want a full backtrace into the Code code.

TomiOhl commented 1 week ago

Yes, sadly only this one line got printed after typing bt.

jeremypw commented 1 week ago

You could try typing t a a bt instead to get a backtrace from all threads I guess but I thought gdb always gave the backtrace from the thread that crashed anyway. Another technique is to type set env G_DEBUG=fatal-criticals before typing run to investigate those critical error messages, which may or may not be related to the crash.

jeremypw commented 1 week ago

I'll see whether I can reproduce the crash using your settings on 7.1.

TomiOhl commented 1 week ago

Set the env and also got the output of t a a bt:

Output ``` Starting program: /usr/bin/io.elementary.code [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff2958640 (LWP 24175)] [New Thread 0x7ffff2157640 (LWP 24176)] [New Thread 0x7ffff18cd640 (LWP 24177)] [New Thread 0x7ffff0eb5640 (LWP 24179)] [Thread 0x7ffff0eb5640 (LWP 24179) exited] [New Thread 0x7ffff0eb5640 (LWP 24180)] [New Thread 0x7fffe93ff640 (LWP 24181)] [Thread 0x7ffff0eb5640 (LWP 24180) exited] [New Thread 0x7ffff0eb5640 (LWP 24182)] [New Thread 0x7fffe8bfe640 (LWP 24183)] [Thread 0x7fffe93ff640 (LWP 24181) exited] [Thread 0x7ffff0eb5640 (LWP 24182) exited] [Thread 0x7fffe8bfe640 (LWP 24183) exited] [New Thread 0x7fffe8bfe640 (LWP 24184)] [New Thread 0x7ffff0eb5640 (LWP 24185)] [New Thread 0x7fffe93ff640 (LWP 24186)] [Detaching after fork from child process 24188] [New Thread 0x7fffd73ff640 (LWP 24200)] [New Thread 0x7fffd6bfe640 (LWP 24201)] [Thread 0x7fffd73ff640 (LWP 24200) exited] [Thread 0x7fffd6bfe640 (LWP 24201) exited] [New Thread 0x7fffd6bfe640 (LWP 24202)] [New Thread 0x7fffd73ff640 (LWP 24203)] [Thread 0x7fffd6bfe640 (LWP 24202) exited] [Thread 0x7fffd73ff640 (LWP 24203) exited] [New Thread 0x7fffd73ff640 (LWP 24204)] [New Thread 0x7fffd6bfe640 (LWP 24205)] [Thread 0x7fffd73ff640 (LWP 24204) exited] [New Thread 0x7fffd73ff640 (LWP 24206)] [New Thread 0x7fffd63fd640 (LWP 24207)] [Thread 0x7fffd6bfe640 (LWP 24205) exited] [Thread 0x7fffd73ff640 (LWP 24206) exited] [Thread 0x7fffd63fd640 (LWP 24207) exited] [New Thread 0x7fffd63fd640 (LWP 24208)] [New Thread 0x7fffd73ff640 (LWP 24209)] [Thread 0x7fffd63fd640 (LWP 24208) exited] [New Thread 0x7fffd63fd640 (LWP 24210)] [New Thread 0x7fffd6bfe640 (LWP 24211)] [Thread 0x7fffd73ff640 (LWP 24209) exited] [Thread 0x7fffd63fd640 (LWP 24210) exited] [Thread 0x7fffd6bfe640 (LWP 24211) exited] [New Thread 0x7fffd6bfe640 (LWP 24212)] [New Thread 0x7fffd63fd640 (LWP 24213)] [Thread 0x7fffd6bfe640 (LWP 24212) exited] [New Thread 0x7fffd6bfe640 (LWP 24214)] [New Thread 0x7fffd73ff640 (LWP 24215)] [Thread 0x7fffd63fd640 (LWP 24213) exited] [Thread 0x7fffd6bfe640 (LWP 24214) exited] [New Thread 0x7fffd6bfe640 (LWP 24216)] [New Thread 0x7fffd63fd640 (LWP 24217)] [Thread 0x7fffd73ff640 (LWP 24215) exited] [Thread 0x7fffd6bfe640 (LWP 24216) exited] [New Thread 0x7fffd6bfe640 (LWP 24218)] [New Thread 0x7fffd73ff640 (LWP 24219)] [Thread 0x7fffd63fd640 (LWP 24217) exited] [Thread 0x7fffd6bfe640 (LWP 24218) exited] [New Thread 0x7fffd6bfe640 (LWP 24220)] [New Thread 0x7fffd63fd640 (LWP 24221)] [Thread 0x7fffd73ff640 (LWP 24219) exited] [Thread 0x7fffd6bfe640 (LWP 24220) exited] [New Thread 0x7fffd6bfe640 (LWP 24222)] [New Thread 0x7fffd73ff640 (LWP 24223)] [Thread 0x7fffd63fd640 (LWP 24221) exited] [Thread 0x7fffd6bfe640 (LWP 24222) exited] [Thread 0x7fffd73ff640 (LWP 24223) exited] [New Thread 0x7fffd73ff640 (LWP 24224)] [New Thread 0x7fffd6bfe640 (LWP 24225)] [Thread 0x7fffd73ff640 (LWP 24224) exited] [Thread 0x7fffd6bfe640 (LWP 24225) exited] [New Thread 0x7fffd73ff640 (LWP 24226)] [New Thread 0x7fffd6bfe640 (LWP 24227)] [Thread 0x7fffd73ff640 (LWP 24226) exited] [New Thread 0x7fffd73ff640 (LWP 24228)] [New Thread 0x7fffd63fd640 (LWP 24229)] [Thread 0x7fffd6bfe640 (LWP 24227) exited] [Thread 0x7fffd73ff640 (LWP 24228) exited] [New Thread 0x7fffd73ff640 (LWP 24230)] [New Thread 0x7fffd6bfe640 (LWP 24231)] [Thread 0x7fffd63fd640 (LWP 24229) exited] [Thread 0x7fffd73ff640 (LWP 24230) exited] [Thread 0x7fffd6bfe640 (LWP 24231) exited] [New Thread 0x7fffd6bfe640 (LWP 24232)] [New Thread 0x7fffd73ff640 (LWP 24233)] [Thread 0x7fffd6bfe640 (LWP 24232) exited] [New Thread 0x7fffd6bfe640 (LWP 24234)] [New Thread 0x7fffd63fd640 (LWP 24235)] [Thread 0x7fffd73ff640 (LWP 24233) exited] [Thread 0x7fffd6bfe640 (LWP 24234) exited] [Thread 0x7fffd63fd640 (LWP 24235) exited] [Thread 0x7fffe93ff640 (LWP 24186) exited] [Thread 0x7ffff0eb5640 (LWP 24185) exited] Thread 1 "io.elementary.c" received signal SIGSEGV, Segmentation fault. 0x00007ffff6fbdefb in ?? () from /lib/x86_64-linux-gnu/libgtksourceview-4.so.0 (gdb) t a a bt Thread 10 (Thread 0x7fffe8bfe640 (LWP 24184) "pool-io.element"): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007ffff7f140ac in g_cond_wait_until () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff7e943e1 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff7e94566 in g_async_queue_timeout_pop () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007ffff7ef67b9 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007ffff7ef3ab1 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #6 0x00007ffff6a94ac3 in start_thread (arg=) at ./nptl/pthread_create.c:442 #7 0x00007ffff6b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7ffff18cd640 (LWP 24177) "gdbus"): #0 0x00007ffff6b18bcf in __GI___poll (fds=0x7fffe4017390, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff7f1a256 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff7ec42b3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff7daa81a in () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #4 0x00007ffff7ef3ab1 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007ffff6a94ac3 in start_thread (arg=) at ./nptl/pthread_create.c:442 #6 0x00007ffff6b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7ffff2157640 (LWP 24176) "dconf worker"): #0 0x00007ffff6b18bcf in __GI___poll (fds=0x555555638b80, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff7f1a256 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff7ec23e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff29a533d in () at /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so #4 0x00007ffff7ef3ab1 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007ffff6a94ac3 in start_thread (arg=) at ./nptl/pthread_create.c:442 #6 0x00007ffff6b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7ffff2958640 (LWP 24175) "gmain"): #0 0x00007ffff6b18bcf in __GI___poll (fds=0x555555636f00, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff7f1a256 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff7ec23e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff7ec2431 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007ffff7ef3ab1 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007ffff6a94ac3 in start_thread (arg=) at ./nptl/pthread_create.c:442 #6 0x00007ffff6b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7ffff29d8cc0 (LWP 24170) "io.elementary.c"): #0 0x00007ffff6fbdefb in () at /lib/x86_64-linux-gnu/libgtksourceview-4.so.0 #1 0x00007ffff7ec4c44 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff7f1a2b8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 --Type for more, q to quit, c to continue without paging--c #3 0x00007ffff7ec23e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007ffff7d75fb5 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #5 0x0000555555579c25 in main () ```
jeremypw commented 1 week ago

Another thing that may give a clue is to disable extensions, especially the non-default ones to see whether the problem persists.

jeremypw commented 1 week ago

Also give the exact keystrokes that produce the crash and any other features such as whether there are highlighted words and what you did immediately prior to the crash.

jeremypw commented 1 week ago

Just reproduced the crash! Needs using BackSpace - deleting with Enter or <Ctrl>X or <Ctrl>K works OK.

Hmm, now I cannot reproduce it again :frowning_face:

TomiOhl commented 1 week ago

Yes, I always select either via the mouse or via Shift + arrows and always use backspace to delete. Sometimes there are highlighted words, sometimes there aren't when it happens, so I can't confirm if it's related to that feature. Sometimes it happens as soon as I open the file and do my first deletion. Sometimes it only comes after many deletions. I can provide a screen recording tomorrow with keystrokes if that helps - although now that you could reproduce the crash at least once it might not be needed

jeremypw commented 1 week ago

OK, I can reproduce it reasonable consistently now by repeating <Shift><Down> followed by BackSpace until it crashes. It seems to be associated with the "Highlight Selection" plugin.

jeremypw commented 1 week ago

@TomiOhl If you are able to try out the PR #1447 to see whether it fixes the issue for you that would be helpful but dont worry if you cannot.

jeremypw commented 1 week ago

Note you would need to install the PR after building it as it modifies a plugin.