jupyter / jupyter/notebook

Feature Request: Fuzzy match for code suggestion tool (eg. pressing '.' then [tab] and begin typing)

Open
#3,083 9 comments 5 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
13.3k
Forks
5.8k
Avg merge
6d 11h
Merged PRs (30d)
7

Description

Hi All,

This is is a request for a better fuzzy autocompletion tool for jupyter notebooks (ipython).

It would be a great help to have a simpler yet better fuzzy finder that made it easier to isolate functions relevant to a particular class.

Currently the autocomplete for jupyter feels more like a spelling checker (you have to know what you are looking for, be able to spell it, and then scroll heavily to find it ).

I am coding using deep learning libraries which pytorch, keras, tensorflow, theano, and these have pretty convoluted and similar and potentially confusing APIs. Fuzzy finding in these libraries would be a huge help.

eg some examples in keras API
keras.layers

e.g. typing ".1d" might give you all the operations:
- AvfPool**1D**
- AveragePooling**1D**
- Conv**1D**

e.g. typing ".cv2d" might give you all the operations:
- **C**on**v2D**
- De**C**on**v2D**
- *but not* Cropping2D

For inspiration [Fuzzy finder](https://github.com/amjith/fuzzyfinder) is a python library which does this, it appears.
![fuzzy finder example](https://raw.githubusercontent.com/amjith/fuzzyfinder/master/screenshots/pgcli-fuzzy.gif)

Is it possible to incorporate this code, or something similar, into an upcoming version of jupyter. It would be a great help!!

For other related discussions, I have searched the codebase and found these two issues:
[Better autocompletion for our Python APIs #135](https://github.com/googledatalab/datalab/issues/135)
[Fuzzy search completion list #504](https://github.com/jonathanslenders/python-prompt-toolkit/issues/504)

I'd love to hear if anyone has found any solutions to this, or people who might be able to add their upvotes, or other considerations.

Thanks

Contributor guide

Open the contributing guide

Research direction

The issue does not name implementation files, tests, or an entry point. Start by reviewing Jupyter Notebook's existing completion behavior, then examine the referenced fuzzyfinder project and related discussions to define an achievable scope and acceptance criteria for fuzzy matching.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.