facelessuser / Rummage

Rummage is a GUI for grep like searches in Python
https://facelessuser.github.io/Rummage/
MIT License
74 stars 10 forks source link

Too aggressive auto-completion #454

Closed toxpal closed 3 months ago

toxpal commented 4 months ago

Can't remember when exactly this issue started, but probably a few releases ago. I like auto-completion in "Search for" field, but it's super aggressive in recent releases.

Let's say I searched for phrase "lemonade" in the past, and want to search for "lemongrass" now. As soon as I type 2 letters ("le"), Rummage automatically enters whole previously used word ("lemonade") and I need to manually delete it and enter the phrase I actually need.

Can this be changed, please?

facelessuser commented 4 months ago

I haven't changed anything in regard to auto complete. It is probably a wxPthon issue. I can look into though. I also wonder if this is platform specific. Are you on Linux?

facelessuser commented 4 months ago

Can you elaborate a little more as well? It's supposed to enter the text and have the new text highlighted so you can type over it. There was a time that I had autocomplete deleted on linux due to issues, but then it was fixed, maybe the issue is back.

facelessuser commented 4 months ago

Original change here: https://github.com/facelessuser/Rummage/pull/412/files. This removed a change that handled Linux special, but with degraded functionality.

This is how it is supposed to work. Is this not the functionality you get? Completed text should be overwritten if you keep typing. If it isn't doing this, then I'll add back in the Linux hack.

autocomplete

toxpal commented 4 months ago

Yes, I use Linux, and yes, it worked just like in your video in the past . This is how it works now - https://streamable.com/zc7phd (notice how I just type a few letters and it auto-enters whole word used in previous search)

facelessuser commented 4 months ago

Ugh, that is unfortunate. I really do hate that the fiddly bits underneath keep changing for Linux. Windows and Mac have been fairly solid since the beginning.

Just to confirm, can you tell me Python version and wxPython version.

toxpal commented 4 months ago

python 3.11.7 wxPython 4.2.1

facelessuser commented 4 months ago

Well, if we are lucky, I'll be able to fix autocomplete, worst case, I disable it for Linux. I'll update once I've had time to investigate.

facelessuser commented 4 months ago

@toxpal What version of Linux are you on? At least in Ubuntu 23.0.4 it works fine.

rummage

With that said, I am on wxPython 4.2.0 on this distro. I wonder if that is the issue...

facelessuser commented 4 months ago

Maybe I can just add a feature to turn off auto-complete. It is a pain to install various versions of wxpython on Linux, and it is a pain to hunt down what various distro is breaking things and why. I think I may just add a setting as a workaround for now.

toxpal commented 4 months ago

I'm using Manjaro KDE. Yes, I think a simple checkbox to enable/disable such feature will be easier to implement than constantly monitoring changes in every distro and releasing fixes every time...

facelessuser commented 3 months ago

Just an FYI, I am working on this. I've also stumbled on a difference in how the keyboard shortcuts work for the completion history. Cross-platform support is always a pain.

facelessuser commented 3 months ago

Autocomplete will be configurable in the next version as the change has been committed. I'd like to look into the cross platform keyboard access to the completion history before the release, but if I don't get around to a solution in the next couple of days, I'll go ahead and push a release as I feel the broken autocomplete on some Linux machines is more problematic.

facelessuser commented 3 months ago

Release has been made https://github.com/facelessuser/Rummage/releases/tag/4.20

toxpal commented 3 months ago

That's great news. Unfortunately, right after upgrading to new version (upgrade command succeeded as usually) Rummage isn't working anymore for me. Running "rummage" in command line always returns error "command not found: rummage"

Rebooting and uninstalling/re-installing multiple times didn't help, not sure if it's related to my system (which had no changes, and Rummage was working just fine before upgrade), or latest version somehow "unregistered" rummage command on Linux...

toxpal commented 3 months ago

After some debugging I believe it's the issue with Rummage itself. If I re-install v4.19, it starts working again.

I know it might be a pain in the *** to solve, but any idea?

facelessuser commented 3 months ago

@toxpal

  1. Absolutely nothing has changed in regards to how the command is installed or made available. Recent release has only 4 commits, 2 of which do nothing but update documentation stuff. The other two only address the issues related to autocomplete: this issue and the shortcut issues related to autocomplete.

    You can see the commits here: https://github.com/facelessuser/Rummage/compare/4.19...4.20.

  2. The issue is likely a quirk with your machine or Linux in general. Without more info, I am likely unable to guess what the issue is. At the very least I can update it in my Linux repo and see if I somehow experience the same issue, but if not, I have no idea.

It is likely due to how they've made it so hard to install packages in Ubunutu in an intuitive way. Or maybe they changed something in pip. I'll have to see if I can recreate the issue somehow.

toxpal commented 3 months ago

I personally use Manjaro KDE, and just tried uninstalling Rummage and installing v4.20. Installation succeeds, but app doesn't work. Uninstalling v4.20 and installing v4.19 solves the issue instantly.

The strange thing is that no other packages (like wxpython, etc) are modified during upgrade and/or installation of v4.20.

Here's log of upgrading to 4.20:

pip install rummage --upgrade                                                                                                                                                                                                                                                                              
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: rummage in ./.local/lib/python3.11/site-packages (4.19)
Collecting rummage
  Using cached rummage-4.20-py3-none-any.whl
Requirement already satisfied: backrefs<6.0,>=5.6 in ./.local/lib/python3.11/site-packages (from rummage) (5.6.post1)
Requirement already satisfied: bracex>=2.4 in ./.local/lib/python3.11/site-packages (from rummage) (2.4)
Requirement already satisfied: chardet>=5.1.0 in /usr/lib/python3.11/site-packages (from rummage) (5.2.0)
Requirement already satisfied: coloraide>=2.9.1 in ./.local/lib/python3.11/site-packages (from rummage) (2.16)
Requirement already satisfied: filelock>=3.12.2 in ./.local/lib/python3.11/site-packages (from rummage) (3.12.2)
Requirement already satisfied: markdown>=3.4.4 in ./.local/lib/python3.11/site-packages (from rummage) (3.5.1)
Requirement already satisfied: pygments>=2.14.1 in ./.local/lib/python3.11/site-packages (from rummage) (2.15.1)
Requirement already satisfied: pymdown-extensions>=10.3 in ./.local/lib/python3.11/site-packages (from rummage) (10.7)
Requirement already satisfied: send2trash>=1.8.2 in ./.local/lib/python3.11/site-packages (from rummage) (1.8.2)
Requirement already satisfied: wcmatch<9.0,>=8.5 in /usr/lib/python3.11/site-packages (from rummage) (8.5.1)
Requirement already satisfied: wxpython>=4.1.0 in /usr/lib/python3.11/site-packages (from rummage) (4.2.1)
Requirement already satisfied: pyyaml in /usr/lib/python3.11/site-packages (from pymdown-extensions>=10.3->rummage) (6.0.1)
Requirement already satisfied: pillow in ./.local/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage) (10.0.0)
Requirement already satisfied: six in /usr/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage) (1.16.0)
Requirement already satisfied: numpy in ./.local/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage) (1.25.1)
Installing collected packages: rummage
  Attempting uninstall: rummage
    Found existing installation: rummage 4.19
    Uninstalling rummage-4.19:
      Successfully uninstalled rummage-4.19
Successfully installed rummage-4.20

zsh: rummage                                                                                                                                                                                                                                                                                                     
zsh: command not found: rummage

and re-installing 4.19:

pip install rummage==4.19                                                                                                                                                                                                                                                                               
Defaulting to user installation because normal site-packages is not writeable
Collecting rummage==4.19
  Using cached rummage-4.19-py3-none-any.whl
Requirement already satisfied: backrefs<6.0,>=5.6 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (5.6.post1)
Requirement already satisfied: bracex>=2.4 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (2.4)
Requirement already satisfied: chardet>=5.1.0 in /usr/lib/python3.11/site-packages (from rummage==4.19) (5.2.0)
Requirement already satisfied: coloraide>=2.9.1 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (2.16)
Requirement already satisfied: filelock>=3.12.2 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (3.12.2)
Requirement already satisfied: markdown>=3.4.4 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (3.5.1)
Requirement already satisfied: pygments>=2.14.1 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (2.15.1)
Requirement already satisfied: pymdown-extensions>=10.3 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (10.7)
Requirement already satisfied: send2trash>=1.8.2 in ./.local/lib/python3.11/site-packages (from rummage==4.19) (1.8.2)
Requirement already satisfied: wcmatch<9.0,>=8.5 in /usr/lib/python3.11/site-packages (from rummage==4.19) (8.5.1)
Requirement already satisfied: wxpython>=4.1.0 in /usr/lib/python3.11/site-packages (from rummage==4.19) (4.2.1)
Requirement already satisfied: pyyaml in /usr/lib/python3.11/site-packages (from pymdown-extensions>=10.3->rummage==4.19) (6.0.1)
Requirement already satisfied: pillow in ./.local/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage==4.19) (10.0.0)
Requirement already satisfied: six in /usr/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage==4.19) (1.16.0)
Requirement already satisfied: numpy in ./.local/lib/python3.11/site-packages (from wxpython>=4.1.0->rummage==4.19) (1.25.1)
Installing collected packages: rummage
  Attempting uninstall: rummage
    Found existing installation: rummage 4.20
    Uninstalling rummage-4.20:
      Successfully uninstalled rummage-4.20
Successfully installed rummage-4.19

zsh: rummage
.........app is launched
facelessuser commented 3 months ago

Can you run it directly python3 -m rummage? Or however it is done on Linux now due to the way it manages user packages...

I'm seeing the binary not install in macOS, for some unknown reason, but the package is there and works if I run python3 -m rummage. I've changed nothing as to how the binary installs, but I'm not seeing the binary appear in normal places.

facelessuser commented 3 months ago

For now, let's create a separate issue. This seems like a new can of worms that's been opened.

toxpal commented 3 months ago

Can you run it directly python3 -m rummage?

This one works for both 4.19 and 4.20...

facelessuser commented 3 months ago

Okay, that is good. I'll need a new issue opened for me to figure out when, where, and how the command line availability broke. It could be an issue with the packager (hatch), pip, or any number of places. I had no idea this wasn't working. I guess I've often just been running python3 -m rummage.

facelessuser commented 3 months ago

I opened the new issue. Follow along there for more info.