pylance-release
pylance-release copied to clipboard
"Go to symbol in workspace" does not see the symbol
Type: Bug
Behaviour
it looks like symbols are not accessible in the "Go to symbol in workspace" lookup.
Steps to reproduce:
I have a python project with a dedicated environment and several libraries set in settings:
When I am trying to find the symbol ("go to symbol in workspace"), I don't see it:
It would be good to make so that all symbols of all packages of my environment were accessible in this search.
Contrary to VS code, PyCharm does this search by default:
Diagnostic data
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
XXX
Extension version: 2024.6.0 VS Code version: Code 1.89.1 (dc96b837cf6bb4af9cd736aa3af08cf8279f7685, 2024-05-07T05:16:23.416Z) OS version: Linux x64 6.4.6-060406-generic Modes:
- Python version (& distribution if applicable, e.g. Anaconda): 3.10.13
- Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Venv
- Value of the
python.languageServersetting: Pylance
User Settings
languageServer: "Pylance"
Installed Extensions
| Extension Name | Extension Id | Version |
|---|---|---|
| .NET Install Tool | ms-dotnettools.vscode-dotnet-runtime | 2.0.5 |
| autoDocstring - Python Docstring Generator | njpwerner.autodocstring | 0.6.1 |
| Ayu Monokai | lakshits11.ayu-monokai | 0.0.3 |
| Black Formatter | ms-python.black-formatter | 2024.2.0 |
| C# | ms-dotnettools.csharp | 2.30.28 |
| C# Dev Kit | ms-dotnettools.csdevkit | 1.6.8 |
| Checkpoints | micnil.vscode-checkpoints | 1.3.3 |
| Code Runner | formulahendry.code-runner | 0.12.2 |
| Conventional Commits | vivaxy.vscode-conventional-commits | 1.25.0 |
| Data Wrangler | ms-toolsai.datawrangler | 1.0.2 |
| Dev Containers | ms-vscode-remote.remote-containers | 0.362.0 |
| Django | batisteo.vscode-django | 1.15.0 |
| Docker | ms-azuretools.vscode-docker | 1.29.1 |
| Docs View | bierner.docs-view | 0.1.0 |
| Edit csv | janisdd.vscode-edit-csv | 0.9.1 |
| Git Extension Pack | donjayamanne.git-extension-pack | 0.1.3 |
| Git Extension Pack (GPack) | SeyyedKhandon.gpack | 2.0.0 |
| Git File History | pomber.git-file-history | 1.0.1 |
| Git History | donjayamanne.githistory | 0.6.20 |
| Github Light Theme | Hyzeta.vscode-theme-github-light | 7.14.2 |
| GitHub Plus Theme | thenikso.github-plus-theme | 1.4.3 |
| GitHub Theme | GitHub.github-vscode-theme | 6.3.4 |
| gitignore | codezombiech.gitignore | 0.9.0 |
| GitLens — Git supercharged | eamodio.gitlens | 15.0.4 |
| Grey Light+ Pro | elanzalaco.grey-light-plus-pro | 0.0.1 |
| IntelliCode | VisualStudioExptTeam.vscodeintellicode | 1.3.1 |
| IntelliCode API Usage Examples | VisualStudioExptTeam.intellicode-api-usage-examples | 0.2.8 |
| IntelliCode for C# Dev Kit | ms-dotnettools.vscodeintellicode-csharp | 2.1.11 |
| JavaScript Debugger | ms-vscode.js-debug | 1.89.0 |
| JavaScript Debugger Companion Extension | ms-vscode.js-debug-companion | 1.1.2 |
| Jinja | wholroyd.jinja | 0.0.8 |
| julia light | JuliaLight.julia-light | 0.4.0 |
| Jupyter | ms-toolsai.jupyter | 2024.4.0 |
| Jupyter Cell Tags | ms-toolsai.vscode-jupyter-cell-tags | 0.1.9 |
| Jupyter Keymap | ms-toolsai.jupyter-keymap | 1.1.2 |
| Jupyter Notebook Renderers | ms-toolsai.jupyter-renderers | 1.0.17 |
| Jupyter Slide Show | ms-toolsai.vscode-jupyter-slideshow | 0.1.6 |
| Jupyter Theme | sam-the-programmer.jupyter-theme | 0.1.3 |
| JupyterLab Light Theme | MiguelCorralJr.jupyterlab-light-theme | 0.1.1 |
| Light Pink Theme | mgwg.light-pink-theme | 0.6.0 |
| Markdown All in One | yzhang.markdown-all-in-one | 3.6.2 |
| Markdown Preview Enhanced | shd101wyy.markdown-preview-enhanced | 0.8.13 |
| MZ Light Grey Theme | Malaz-YI.mz-light-grey | 2.1.1 |
| Night Owl | sdras.night-owl | 2.0.1 |
| Notepad++ color themes | ShayanAhmedKhan.notepadpp-color-theme | 0.2.0 |
| Numbered Bookmarks | alefragnani.numbered-bookmarks | 8.4.0 |
| One Dark Pro | zhuangtongfa.material-theme | 3.17.2 |
| One Dark Theme | mskelton.one-dark-theme | 1.14.2 |
| Open in GitHub, Bitbucket, Gitlab, VisualStudio.com ! | ziyasal.vscode-open-in-github | 1.3.6 |
| Path Intellisense | christian-kohler.path-intellisense | 2.8.5 |
| Project Manager | alefragnani.project-manager | 12.8.0 |
| Pylance | ms-python.vscode-pylance | 2024.5.1 |
| Pylint | ms-python.pylint | 2023.10.1 |
| Python | ms-python.python | 2024.6.0 |
| Python Debugger | ms-python.debugpy | 2024.6.0 |
| Python Environment Manager | donjayamanne.python-environment-manager | 1.2.4 |
| Python Extension Pack | donjayamanne.python-extension-pack | 1.7.0 |
| Python Indent | KevinRose.vsc-python-indent | 1.18.0 |
| Remote - SSH | ms-vscode-remote.remote-ssh | 0.110.1 |
| Remote - SSH: Editing Configuration Files | ms-vscode-remote.remote-ssh-edit | 0.86.0 |
| Remote - Tunnels | ms-vscode.remote-server | 1.5.1 |
| Remote Development | ms-vscode-remote.vscode-remote-extensionpack | 0.25.0 |
| Remote Explorer | ms-vscode.remote-explorer | 0.4.3 |
| Studio Icons | jtlowe.vscode-icon-theme | 1.6.6 |
| Table Visualizer for JavaScript Profiles | ms-vscode.vscode-js-profile-table | 1.0.9 |
| Visual Studio Keymap | ms-vscode.vs-keybindings | 0.2.1 |
| WSL | ms-vscode-remote.remote-wsl | 0.88.2 |
| Zoomer | anthonyattard.zoomer | 0.3.1 |
System Info
| Item | Value |
|---|---|
| CPUs | Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz (88 x 1197) |
| GPU Status | 2d_canvas: enabled canvas_oop_rasterization: disabled_off direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_graphite: disabled_off video_decode: enabled video_encode: disabled_software vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: disabled_off |
| Load (avg) | 1, 1, 1 |
| Memory (System) | 251.76GB (229.16GB free) |
| Process Argv | --crash-reporter-id 27d42247-63fb-4d9e-9cb0-87d9974843dc |
| Screen Reader | no |
| VM | 50% |
| DESKTOP_SESSION | ubuntu-xorg |
| XDG_CURRENT_DESKTOP | Unity |
| XDG_SESSION_DESKTOP | ubuntu-xorg |
| XDG_SESSION_TYPE | x11 |
A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscoreces:30445986
vscod805:30301674
binariesv615:30325510
vsaa593:30376534
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
2i9eh265:30646982
962ge761:30959799
pythongtdpath:30769146
welcomedialog:30910333
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pythonmypyd1:30879173
pythoncet0:30885854
h48ei257:31000450
pythontbext0:30879054
accentitlementst:30995554
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
chatpanelt:31048053
dsvsc021:30996838
9c06g630:31013171
pythoncenvpt:31049070
a69g1124:31058053
dvdeprecation:31061160
pythonprt:31056678
dwnewjupyter:31046869
26j00206:31048877
A collection of canonical JSON test vector sounds like a good vision for the project!
And if we will go with only one reference implementation - there are far more suitable languages than Java for it! E.g. Rust or possibly Swift - but Rust has far better cryptography ecosystem support.
And if we will go with only one reference implementation - there are far more suitable languages than Java for it! E.g. Rust or possibly Swift - but Rust has far better cryptography ecosystem support.
Heh, well, me being me it would probably be Go :) but again it would just be about making sure a PR doesn't break the tests and cause a bunch of downstream false positives. Tests for the tests, essentially. Doesn't even have to be the same language for all vectors, as long as someone is there to maintain the tests.
Heh, well, me being me it would probably be Go :) but again it would just be about making sure a PR doesn't break the tests and cause a bunch of downstream false positives. Tests for the tests, essentially. Doesn't even have to be the same language for all vectors, as long as someone is there to maintain the tests.
One thing I'm currently doing is to keep a small database with test results. Running a test adds an entry to the data base. This allows to generate a list of algorithms with entries such as
"x25519.json": { "type": "Xdh", "alg": { "type": "Xdh", "primitive": "X25519" }, "references": ["RFC 7748"], "test_status": { "pyca": { "test_version": "0.29", "date": "2024-03-16 13:13", "lib_version": "41.0.7", "passed": 236, "skipped": 0, "failed": 0 } } },
One of the options to simplify the test environment is to run tests with test vectors through
java/com/google/security/wycheproof/testcases/JsonTest.java
This class takes a file with any test vectors as input and returns a structure with the test results. It is independent of JUnit and the dependencies that are essentially required are the provider to test and a JSON parser. The class allows to generate test files with subsets of the test vectors, so that it is for example possible to rerun just the failing tests. There is also a bit of support for detecting false positives in this class. If no valid test vector in a file passes then it is likely that the test setup is wrong or uses incorrect assumptions and one should check this first before sending out automatic notifications to third parties.
The current setup is to use long lists of test cases like
@Test public void testSecp160k1Sha256() throws Exception { testVerification("ecdsa_secp160k1_sha256_test.json", true); }
@Test public void testSecp160r1Sha256() throws Exception { testVerification("ecdsa_secp160r1_sha256_test.json", true); }
...
This setup is useful if one has tools to monitor the state of test cases over time, but as pointed out makes the tests less flexible and adds more dependencies.
I'm currently testing new test vectors against pyca and Rust. That gives about 70% of coverage. When testing against Rust I often struggle with seemingly non-uniform interfaces. Otherwise Rust does indeed support quite a large range of algorithms and primitives.
I see a number of supportive 👍 reactions on the original issue description. I also find the arguments compelling, and so opened https://github.com/C2SP/wycheproof/pull/127 to implement the change.