Feature Request: Fuzzy match for code suggestion tool (eg. pressing '.' then [tab] and begin typing)
- 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.

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
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