pylance-release icon indicating copy to clipboard operation
pylance-release copied to clipboard

"Go to symbol in workspace" does not see the symbol

Open ibobak opened this issue 1 year ago • 5 comments

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

When I am trying to find the symbol ("go to symbol in workspace"), I don't see it: image

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

Diagnostic data

Output for Python in the Output panel (ViewOutput, 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.languageServer setting: 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

ibobak avatar May 28 '24 20:05 ibobak

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.

Sajjon avatar Mar 23 '24 17:03 Sajjon

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.

FiloSottile avatar Mar 23 '24 17:03 FiloSottile

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

bleichenbacher-daniel avatar Mar 23 '24 20:03 bleichenbacher-daniel

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.

bleichenbacher-daniel avatar Apr 06 '24 08:04 bleichenbacher-daniel

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.

bleichenbacher-daniel avatar Aug 09 '24 06:08 bleichenbacher-daniel

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.

cpu avatar Mar 17 '25 18:03 cpu