notebook
notebook copied to clipboard
Search function is broken and has questionable defaults
Description
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
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