Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search function is broken and has questionable defaults #7458

Open
soerenwolfers opened this issue Sep 10, 2024 · 3 comments
Open

Search function is broken and has questionable defaults #7458

soerenwolfers opened this issue Sep 10, 2024 · 3 comments
Labels

Comments

@soerenwolfers
Copy link

Description

badv2.webm

The search function that's included in the JupyterLab based Jupyter notebooks (likely also the search function of JupyterLab itself, I never use that) via Ctrl-F is close to unusable. I got into the habit of clicking the top of the notebook, after which Ctrl-F opens the default browser search functionality, and hoped that the issues in the Jupyter search would eventually be ironed out but now that Jupyter started not rendering the entire notebook by default, it's a serious problem:

1: The search defaults to not search in cell outputs, which is way too opinionated for as general a shortcut as Ctrl-F. It has certainly never been my intent when I pressed Ctrl-F. This default currently even needs changing everytime a notebook is opened. See video above.

2: The highlighting of search results is broken for cell outputs. See video above.

3: The rotation of search result highlighting is broken when using the "up" button on the search window. See video above.

4: The latency on even an empty notebook is crazy high. Right here on github, when I use the browser search functionality via Ctrl-F the delay between updating the search term and the new matches being highlighted is non-existent. In a Jupyter notebook, whether I use the Jupyter notebook search window or the standard Browser search window, the delay is close to a second. See video above.

5: After a cell input match has been highlighted, closing the search bar does not put me into insert mode to let me edit the highlight straight away. See video below for how this should work.

Reproduce

Create notebook as in video and start playing around.

Expected behavior

goodv3.webm

Context

  • Operating System and version: Ubuntu 22.04
  • Browser and version: Chrome 126.0
  • Jupyter Notebook version: 7.2.2
Troubleshoot Output

[notice] A new release of pip is available: 23.0.1 -> 24.2
[notice] To update, run: pip install --upgrade pip
$PATH:
/home/soeren/bad/bin
/usr/local/src/anaconda3/bin
/createsubmission
/home/soeren/.local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

sys.path:
/home/soeren/bad/bin
/usr/lib/python39.zip
/usr/lib/python3.9
/usr/lib/python3.9/lib-dynload
/home/soeren/bad/lib/python3.9/site-packages

sys.executable:
/home/soeren/bad/bin/python3.9

sys.version:
3.9.20 (main, Sep 7 2024, 18:35:26)
[GCC 9.4.0]

platform.platform():
Linux-5.15.0-117-generic-x86_64-with-glibc2.31

which -a jupyter:
/home/soeren/bad/bin/jupyter

pip list:
Package Version
------------------------- --------------
anyio 4.4.0
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
arrow 1.3.0
asttokens 2.4.1
async-lru 2.0.4
attrs 24.2.0
babel 2.16.0
beautifulsoup4 4.12.3
bleach 6.1.0
certifi 2024.8.30
cffi 1.17.1
charset-normalizer 3.3.2
comm 0.2.2
debugpy 1.8.5
decorator 5.1.1
defusedxml 0.7.1
exceptiongroup 1.2.2
executing 2.1.0
fastjsonschema 2.20.0
fqdn 1.5.1
h11 0.14.0
httpcore 1.0.5
httpx 0.27.2
idna 3.8
importlib_metadata 8.4.0
ipykernel 6.29.5
ipython 8.18.1
ipywidgets 8.1.5
isoduration 20.11.0
jedi 0.19.1
Jinja2 3.1.4
json5 0.9.25
jsonpointer 3.0.0
jsonschema 4.23.0
jsonschema-specifications 2023.12.1
jupyter 1.1.1
jupyter_client 8.6.2
jupyter-console 6.6.3
jupyter_core 5.7.2
jupyter-events 0.10.0
jupyter-lsp 2.2.5
jupyter_server 2.14.2
jupyter_server_terminals 0.5.3
jupyterlab 4.2.5
jupyterlab_pygments 0.3.0
jupyterlab_server 2.27.3
jupyterlab_widgets 3.0.13
MarkupSafe 2.1.5
matplotlib-inline 0.1.7
mistune 3.0.2
nbclient 0.10.0
nbconvert 7.16.4
nbformat 5.10.4
nest-asyncio 1.6.0
notebook 7.2.2
notebook_shim 0.2.4
overrides 7.7.0
packaging 24.1
pandocfilters 1.5.1
parso 0.8.4
pexpect 4.9.0
pip 23.0.1
platformdirs 4.3.2
prometheus_client 0.20.0
prompt_toolkit 3.0.47
psutil 6.0.0
ptyprocess 0.7.0
pure_eval 0.2.3
pycparser 2.22
Pygments 2.18.0
python-dateutil 2.9.0.post0
python-json-logger 2.0.7
PyYAML 6.0.2
pyzmq 26.2.0
referencing 0.35.1
requests 2.32.3
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rpds-py 0.20.0
Send2Trash 1.8.3
setuptools 58.1.0
six 1.16.0
sniffio 1.3.1
soupsieve 2.6
stack-data 0.6.3
terminado 0.18.1
tinycss2 1.3.0
tomli 2.0.1
tornado 6.4.1
traitlets 5.14.3
types-python-dateutil 2.9.0.20240906
typing_extensions 4.12.2
uri-template 1.3.0
urllib3 2.2.2
wcwidth 0.2.13
webcolors 24.8.0
webencodings 0.5.1
websocket-client 1.8.0
widgetsnbextension 4.0.13
zipp 3.20.1

@soerenwolfers soerenwolfers added bug status:Needs Triage Applied to issues that need triage labels Sep 10, 2024
@JasonWeill
Copy link
Collaborator

Related:

We may need to split this into multiple items, to be able to deliver improvements to search in parallel. Thank you @soerenwolfers for opening this issue!

@gaulinmp
Copy link

I would add, while on the subject of improving the search function, that the Tab order for find/replace should really be adjusted. Currently, if you put your cursor in the find field, type something to find, then hit tab (to type its replacement) it moves the selection to the next button (which is "match case"). Compare this to any other program with find/replace: tab key will always first send the cursor to the replace field, then to highlight any subsequent buttons.

@JasonWeill
Copy link
Collaborator

@gaulinmp Thank you for your feedback! I migrated your request into the JupyterLab issues repo, since this code is primarily maintained in the JupyterLab package: jupyterlab/jupyterlab#16808

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants