diff --git a/MOST_REQUESTED_FEATURES_AND_BUGS.md b/MOST_REQUESTED_FEATURES_AND_BUGS.md new file mode 100644 index 000000000..ff09a906d --- /dev/null +++ b/MOST_REQUESTED_FEATURES_AND_BUGS.md @@ -0,0 +1,262 @@ +# Most Requested Features and Bugs in Pylance + +This document provides a comprehensive overview of the most requested features and bugs in the Pylance extension, based on community feedback from GitHub Discussions and Issues, sorted by number of reactions (👍). + +**Last Updated:** January 19, 2026 +**Maintenance:** This document is maintained by the community and should be updated quarterly or when significant changes occur in top-requested items. + +## Top Features and Enhancements + +### 1. Improved Docstring Display Support (363 reactions) - ✅ COMPLETED +**Issue:** [#1848](https://github.com/microsoft/pylance-release/issues/1848) +**Status:** Closed +**Description:** Enhanced support for Python docstrings, including recognition of existing docstrings with defined parameters/types and auto-generation of docstrings with type inference from function signatures. + +### 2. Show Class Hierarchy / Method Override Indicators (367 reactions) - ⏳ OPEN +**Issue:** [#4972](https://github.com/microsoft/pylance-release/issues/4972) +**Status:** Open (assigned) +**Description:** Display visual indicators (similar to PyCharm) showing which methods in a class override parent class methods, with ability to jump to the overriding parent method through icons. + +### 3. Import Resolution Issues (130 reactions) - ✅ COMPLETED +**Issue:** [#236](https://github.com/microsoft/pylance-release/issues/236) +**Status:** Closed +**Description:** "Import could not be resolved" errors for valid imports, particularly for local modules in subdirectories. + +### 4. Auto-Import Settings Control (120 reactions) - ✅ COMPLETED +**Issue:** [#64](https://github.com/microsoft/pylance-release/issues/64) +**Status:** Closed +**Description:** Ability to disable or configure auto-imports behavior to avoid unwanted automatic import suggestions. + +### 5. Support for PyScript & Brython (47 reactions) - ⏳ OPEN +**Issue:** [#6760](https://github.com/microsoft/pylance-release/issues/6760) +**Status:** Open (assigned) +**Description:** Enable Python language support in HTML files for PyScript and Brython projects, including code highlighting and autocompletion for Python code directly in HTML files. + +### 6. Add Support for Context-Based Code Actions (39 reactions) - ⏳ OPEN +**Issue:** [#5368](https://github.com/microsoft/pylance-release/issues/5368) +**Status:** Open (assigned) +**Description:** Provide refactoring code actions depending on context: +- Create parameter from undefined variable +- Create class from undefined class reference +- Create method from undefined function call + +### 7. Improved Django Support (30 reactions) - ⏳ OPEN +**Issue:** [#3701](https://github.com/microsoft/pylance-release/issues/3701) +**Status:** Open (assigned) +**Description:** Enhanced Django support including: +- Completion for all related keys generated by Django ORM +- Extended completions for filter operations based on key names +- Go to definition on models referenced in settings.py +- Completions on models in settings.py +- manage.py shortcuts + +### 8. Hide Private Variables/Attributes in Autocomplete (30 reactions) - ✅ COMPLETED +**Issue:** [#5281](https://github.com/microsoft/pylance-release/issues/5281) +**Status:** Closed +**Description:** Option to hide variables/attributes starting with underscore(s) from autocomplete suggestions outside their scope. + +### 9. Moving Folders/Files Does Not Update Imports (33 reactions) - ⏳ OPEN +**Issue:** [#7051](https://github.com/microsoft/pylance-release/issues/7051) +**Status:** Open (assigned) +**Description:** When moving folders or multiple files, Python imports are not automatically refactored. Works only when moving a single file. + +### 10. Different Docstring Format Support (29 reactions) - ✅ COMPLETED +**Issue:** [#48](https://github.com/microsoft/pylance-release/issues/48) +**Status:** Closed +**Description:** Support for Google-style docstrings and other popular docstring formats (not just reStructuredText). + +## Top Bugs and Issues + +### 1. Compatibility Issues Between Versions (48 reactions) - ✅ COMPLETED +**Issue:** [#5019](https://github.com/microsoft/pylance-release/issues/5019) +**Status:** Closed +**Description:** Pylance v2023.10.50 incompatibility with older Python Extension versions, causing licensing error messages. + +### 2. PEP-660 Editable Installs Not Recognized (27 reactions) - ✅ COMPLETED +**Issue:** [#3473](https://github.com/microsoft/pylance-release/issues/3473) +**Status:** Closed (by design) +**Description:** Pylance not recognizing imports from PEP-660 editable installs with non-standard directory structures. + +### 3. Jupyter Notebook Pylance Instability (27 reactions) - ✅ COMPLETED +**Issue:** [#4742](https://github.com/microsoft/pylance-release/issues/4742) +**Status:** Closed +**Description:** Pylance becomes unstable in Jupyter notebooks after 1-2 hours, losing syntax highlighting and error detection. + +### 4. Virtual Environment Configuration (25 reactions) - ✅ COMPLETED +**Issue:** [#330](https://github.com/microsoft/pylance-release/issues/330) +**Status:** Closed +**Description:** Difficulty setting Pylance to use virtual Python environments (venv, conda, etc.). + +### 5. Color Picker Support (26 reactions) - ✅ COMPLETED +**Issue:** [#6761](https://github.com/microsoft/pylance-release/issues/6761) +**Status:** Closed +**Description:** Invoke color picker for color values in Python code (RGB tuples, hex strings) similar to other languages. + +### 6. Go to Definition Goes to Stub Files (70 reactions) - ✅ COMPLETED +**Issue:** [#65](https://github.com/microsoft/pylance-release/issues/65) +**Status:** Closed +**Description:** "Go to Definition" navigating to stub files (.pyi) instead of actual implementation code. + +### 7. Refactoring: Move Module Members (73 reactions) - ✅ COMPLETED +**Issue:** [#76](https://github.com/microsoft/pylance-release/issues/76) +**Status:** Closed +**Description:** Refactoring feature to move variables or functions to different modules and automatically update all imports. + +### 8. Line-Level Error Suppression (61 reactions) - ✅ COMPLETED +**Issue:** [#196](https://github.com/microsoft/pylance-release/issues/196) +**Status:** Closed +**Description:** Allow suppression of specific errors on individual lines (similar to `# pylint: disable=...`). + +### 9. reportGeneralTypeIssues Too Generic (28 reactions) - ✅ COMPLETED +**Issue:** [#497](https://github.com/microsoft/pylance-release/issues/497) +**Status:** Closed +**Description:** The `reportGeneralTypeIssues` category covers both certain errors and assumed errors, making it difficult to handle differently. + +### 10. Refactoring Features for File/Module/Variable Names (45 reactions) - ✅ COMPLETED +**Issue:** [#1510](https://github.com/microsoft/pylance-release/issues/1510) +**Status:** Closed +**Description:** Add comprehensive refactoring support for renaming files, modules, and variables with automatic update of all references. + +## Additional Notable Issues + +### Library-Specific Issues + +#### TensorFlow Support (34 reactions) - ✅ COMPLETED +**Issue:** [#1066](https://github.com/microsoft/pylance-release/issues/1066) +**Status:** Closed +**Description:** Pylance not properly resolving TensorFlow modules like `tensorflow.data`. + +#### NumPy Type Information (25 reactions) - ✅ COMPLETED +**Issue:** [#150](https://github.com/microsoft/pylance-release/issues/150) +**Status:** Closed +**Description:** Missing type information for numpy, showing "Unknown" for numpy types like `np.ndarray`. + +#### OpenCV (cv2) Intellisense (22 reactions) - ✅ COMPLETED +**Issue:** [#138](https://github.com/microsoft/pylance-release/issues/138) +**Status:** Closed +**Description:** No intellisense for OpenCV (cv2) methods. + +#### Attrs Library Support (35 reactions) - ✅ COMPLETED +**Issue:** [#226](https://github.com/microsoft/pylance-release/issues/226) +**Status:** Closed +**Description:** Pylance not recognizing constructor parameters from attrs library decorators. + +### Configuration and Settings + +#### VS Code Settings Schema Recognition (28 reactions) - ✅ COMPLETED +**Issue:** [#16](https://github.com/microsoft/pylance-release/issues/16) +**Status:** Closed +**Description:** JSON config file not recognizing Pylance as a valid language server option. + +#### Support for `pylance.analysis.exclude` Setting (33 reactions) - ✅ COMPLETED +**Issue:** [#1150](https://github.com/microsoft/pylance-release/issues/1150) +**Status:** Closed +**Description:** Add VS Code setting to exclude directories from analysis (similar to pyrightconfig.json). + +### Debugging and Error Handling + +#### EMFILE: Too Many Open Files (24 reactions) - ✅ COMPLETED +**Issue:** [#936](https://github.com/microsoft/pylance-release/issues/936) +**Status:** Closed +**Description:** Error when opening Python files due to too many file handles being opened. + +#### Local Import Resolution (25 reactions) - ✅ COMPLETED +**Issue:** [#519](https://github.com/microsoft/pylance-release/issues/519) +**Status:** Closed +**Description:** Pylance cannot resolve imports of local .py files in the same directory. + +#### Local Imports in Subdirectories (36 reactions) - ✅ COMPLETED +**Issue:** [#68](https://github.com/microsoft/pylance-release/issues/68) +**Status:** Closed +**Description:** Local imports not resolving correctly when files are in subdirectories. + +### Code Quality and Enhancement Features + +#### Fold All Docstrings Command (25 reactions) - ✅ COMPLETED +**Issue:** [#4677](https://github.com/microsoft/pylance-release/issues/4677) +**Status:** Closed +**Description:** Add command to fold all docstrings in a file to improve code readability. + +#### Folding Range Support (23 reactions) - ✅ COMPLETED +**Issue:** [#372](https://github.com/microsoft/pylance-release/issues/372) +**Status:** Closed +**Description:** Support for LSP folding-range requests to enable better code folding. + +#### functools.wraps Decorator Support (26 reactions) - ✅ COMPLETED +**Issue:** [#442](https://github.com/microsoft/pylance-release/issues/442) +**Status:** Closed +**Description:** Special-case support for `@functools.wraps` to preserve function signatures in decorators. + +#### functools.partial Parameter Hints (21 reactions) - ✅ COMPLETED +**Issue:** [#1434](https://github.com/microsoft/pylance-release/issues/1434) +**Status:** Closed +**Description:** Parameter hints not updating when using `functools.partial`. + +#### Auto-Update Import Paths on File Move/Rename (20 reactions) - ✅ COMPLETED +**Issue:** [#127](https://github.com/microsoft/pylance-release/issues/127) +**Status:** Closed +**Description:** Automatically update import paths throughout the project when moving or renaming Python files. + +### Jupyter Notebook Issues + +#### Jupyter Notebook Cell Deletion Crash (21 reactions) - ✅ COMPLETED +**Issue:** [#4685](https://github.com/microsoft/pylance-release/issues/4685) +**Status:** Closed +**Description:** Pylance crashes when deleting cells in Jupyter notebooks in specific orders. + +#### Jupyter Notebook Syntax Highlighting Failure (23 reactions) - ✅ COMPLETED +**Issue:** [#5543](https://github.com/microsoft/pylance-release/issues/5543) +**Status:** Closed +**Description:** Syntax highlighting fails in Jupyter notebooks after switching focus between documents. + +### Documentation + +#### Missing Docstrings for Builtins (25 reactions) - ✅ COMPLETED +**Issue:** [#49](https://github.com/microsoft/pylance-release/issues/49) +**Status:** Closed +**Description:** Missing docstrings for Python builtin functions and classes in hover tooltips. + +## Summary Statistics + +- **Total Issues Analyzed:** 43 +- **Closed/Completed:** 38 (88%) +- **Still Open:** 5 (12%) +- **Average Reactions (Top 20):** 52 reactions +- **Peak Reactions:** 367 reactions (#4972 - Class Hierarchy) + +## Key Themes + +### Most Requested Features (By Category): +1. **Refactoring & Code Actions** - Move files/folders, rename with auto-update, context-based code generation +2. **Enhanced Language Support** - PyScript/Brython, Django, better library stubs +3. **Developer Experience** - Class hierarchy visualization, docstring management, auto-imports control +4. **Type Checking Improvements** - Better handling of dynamic types, partial function support + +### Most Common Bugs (By Category): +1. **Import Resolution** - Local imports, virtual environments, editable installs +2. **Jupyter Notebook Issues** - Stability, syntax highlighting, cell operations +3. **Library Compatibility** - NumPy, TensorFlow, OpenCV, attrs +4. **Performance** - File handle limits, large projects + +## Recommendations + +### High Priority Open Items: +1. **Class Hierarchy/Method Override Indicators** (#4972) - Highly requested IDE feature parity with PyCharm +2. **Moving Folders/Multiple Files Import Refactoring** (#7051) - Critical refactoring gap +3. **Django Support** (#3701) - Important for Django developer ecosystem +4. **Context-Based Code Actions** (#5368) - Productivity enhancement +5. **PyScript & Brython Support** (#6760) - Emerging Python-in-browser ecosystem + +### Community Engagement: +- The community is very active with detailed bug reports and feature requests +- Most issues are well-documented with reproduction steps +- High completion rate indicates responsive development team +- Many features implemented after community feedback + +## Notes + +- This report is based on GitHub Issues sorted by reaction count (👍) +- Many highly-requested features have already been implemented +- The development team has been very responsive to community feedback +- Several library-specific issues require upstream stub packages +- Import resolution and refactoring remain active areas of development diff --git a/README.md b/README.md index 3394bd837..d7a865625 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ Pylance is the default language support for [Python in Visual Studio Code](https The Pylance name is a small ode to Monty Python's Lancelot who was the first knight to answer the bridgekeeper's questions in the Holy Grail. +Community Feedback +------------------ +Interested in what features and improvements the community is requesting? Check out our [Most Requested Features and Bugs](MOST_REQUESTED_FEATURES_AND_BUGS.md) document to see what's being prioritized based on community feedback. + Quick Start ============ 1. Install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) from the marketplace. Pylance will be installed as an optional extension.