spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.1k stars 1.57k forks source link

Slow response when editing files (after some time) #15631

Closed sphh closed 2 years ago

sphh commented 3 years ago

Issue Report Checklist

Problem Description

When I start spyder, editing works perfect: Letters typed appear immediately, completions are shown almost immediately, etc. After some time the editing becomes cumbersome: Letters don't appear immediately, only after some time (and then you could see them appear one by one), completions need forever to be shown, the GUI reacts very slowly …

This is reproducible if you wait long enough.

There are some other issues referring to a slow response of the editor, but IMHO all of them describe a different behaviour.

What steps reproduce the problem?

  1. Open spyder.
  2. Start editing a file.
  3. After some time the experience becomes laggy.

Paste Log Below (if applicable)

I started spyder with --debug-info verbose and tried to catch when this behaviour started. Here is one snipplet of the log: Look at time step from 16:58:28,465 to 16:59:15,201 where I had to wait nearly 1 second for a reaction of spyder

2021-05-15 16:58:27,729 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] -> ===>starting: <spyder.plugins.editor.widgets.editorstack_helpers.AnalysisThread object at 0x7f4114698b80>
2021-05-15 16:58:27,958 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:27,958 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2187
2021-05-15 16:58:27,958 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2308
2021-05-15 16:58:27,959 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/completion for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:27,959 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2308
2021-05-15 16:58:27,959 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/completion with id 2188
2021-05-15 16:58:27,959 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/completion with id 2309
2021-05-15 16:58:27,961 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/completion with id 2309
2021-05-15 16:58:28,027 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,028 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2310
2021-05-15 16:58:28,028 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2189
2021-05-15 16:58:28,029 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2310
2021-05-15 16:58:28,029 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/completion for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,029 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/completion with id 2311
2021-05-15 16:58:28,038 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/completion with id 2190
2021-05-15 16:58:28,043 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/completion with id 2311
2021-05-15 16:58:28,115 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,116 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2191
2021-05-15 16:58:28,116 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2312
2021-05-15 16:58:28,116 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2312
2021-05-15 16:58:28,194 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,194 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2313
2021-05-15 16:58:28,194 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2192
2021-05-15 16:58:28,195 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2313
2021-05-15 16:58:28,275 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,275 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2193
2021-05-15 16:58:28,276 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2314
2021-05-15 16:58:28,277 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2314
2021-05-15 16:58:28,354 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,354 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2194
2021-05-15 16:58:28,355 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2315
2021-05-15 16:58:28,356 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2315
2021-05-15 16:58:28,440 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,440 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2195
2021-05-15 16:58:28,440 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2316
2021-05-15 16:58:28,445 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2316
2021-05-15 16:58:28,447 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,448 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2196
2021-05-15 16:58:28,448 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2317
2021-05-15 16:58:28,450 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/signatureHelp for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,450 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2317
2021-05-15 16:58:28,451 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/signatureHelp with id 2197
2021-05-15 16:58:28,452 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/signatureHelp with id 2318
2021-05-15 16:58:28,453 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,454 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2198
2021-05-15 16:58:28,454 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/signatureHelp with id 2318
2021-05-15 16:58:28,454 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2319
2021-05-15 16:58:28,459 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2319
2021-05-15 16:58:28,461 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:58:28,462 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2199
2021-05-15 16:58:28,462 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2320
2021-05-15 16:58:28,465 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2320
2021-05-15 16:59:15,201 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] -> Updating queue:
2021-05-15 16:59:15,201 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] ->     started: 0
2021-05-15 16:59:15,201 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] ->     pending: 0
2021-05-15 16:59:15,202 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] -> Updating queue:
2021-05-15 16:59:15,202 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] ->     started: 0
2021-05-15 16:59:15,203 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] ->     pending: 0
2021-05-15 16:59:15,203 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2309 Got response from snippets
2021-05-15 16:59:15,203 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2309 Got response from fallback
2021-05-15 16:59:15,203 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2311 Got response from fallback
2021-05-15 16:59:15,203 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2311 Got response from snippets
2021-05-15 16:59:15,235 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> python response: textDocument/publishDiagnostics
2021-05-15 16:59:15,507 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2309 Got response from lsp
2021-05-15 16:59:15,509 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2309 removed
2021-05-15 16:59:15,509 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2311 Got response from lsp
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2311 removed
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/completion
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Responses statistics: {'fallback': 0, 'snippets': 0, 'lsp': 25}
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2318 Got response from lsp
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2318 removed
2021-05-15 16:59:15,510 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/signatureHelp
2021-05-15 16:59:15,522 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> python response: textDocument/publishDiagnostics
2021-05-15 16:59:15,526 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,526 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2200
2021-05-15 16:59:15,526 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2321
2021-05-15 16:59:15,527 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2321
2021-05-15 16:59:15,528 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] -> Added thread <spyder.plugins.editor.widgets.editorstack_helpers.AnalysisThread object at 0x7f4115e7e1f0> to queue
2021-05-15 16:59:15,528 [DEBUG] [spyder.plugins.editor.widgets.editorstack_helpers] -> Added thread <spyder.plugins.editor.widgets.editorstack_helpers.AnalysisThread object at 0x7f4115e7e160> to queue
2021-05-15 16:59:15,532 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/cursorEvent for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,532 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/cursorEvent with id 2322
2021-05-15 16:59:15,533 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/cursorEvent with id 2322
2021-05-15 16:59:15,534 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,534 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2201
2021-05-15 16:59:15,534 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2323
2021-05-15 16:59:15,535 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2323
2021-05-15 16:59:15,535 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,537 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2202
2021-05-15 16:59:15,540 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2324
2021-05-15 16:59:15,540 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2324
2021-05-15 16:59:15,719 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,720 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2203
2021-05-15 16:59:15,721 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2325
2021-05-15 16:59:15,722 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2325
2021-05-15 16:59:15,826 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,827 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2204
2021-05-15 16:59:15,828 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2326
2021-05-15 16:59:15,829 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2326
2021-05-15 16:59:15,930 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:15,930 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2205
2021-05-15 16:59:15,931 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2327
2021-05-15 16:59:15,932 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2327
2021-05-15 16:59:16,031 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,032 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2206
2021-05-15 16:59:16,033 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2328
2021-05-15 16:59:16,034 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2328
2021-05-15 16:59:16,137 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,137 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2207
2021-05-15 16:59:16,138 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2329
2021-05-15 16:59:16,140 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2329
2021-05-15 16:59:16,228 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,229 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2208
2021-05-15 16:59:16,230 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2330
2021-05-15 16:59:16,233 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,233 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2330
2021-05-15 16:59:16,234 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2209
2021-05-15 16:59:16,235 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2331
2021-05-15 16:59:16,237 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2331
2021-05-15 16:59:16,237 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/signatureHelp for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,238 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/signatureHelp with id 2210
2021-05-15 16:59:16,242 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/signatureHelp with id 2332
2021-05-15 16:59:16,238 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/signatureHelp with id 2332
2021-05-15 16:59:16,331 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,331 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2211
2021-05-15 16:59:16,331 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2333
2021-05-15 16:59:16,332 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2333
2021-05-15 16:59:16,445 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,446 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2212
2021-05-15 16:59:16,447 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2334
2021-05-15 16:59:16,447 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2334
2021-05-15 16:59:16,559 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,560 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2213
2021-05-15 16:59:16,560 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2335
2021-05-15 16:59:16,560 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2335
2021-05-15 16:59:16,658 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,659 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2214
2021-05-15 16:59:16,660 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2336
2021-05-15 16:59:16,661 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2336
2021-05-15 16:59:16,747 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,748 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2215
2021-05-15 16:59:16,748 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2337
2021-05-15 16:59:16,749 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2337
2021-05-15 16:59:16,830 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,831 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2216
2021-05-15 16:59:16,831 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2338
2021-05-15 16:59:16,832 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/completion for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,833 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2338
2021-05-15 16:59:16,833 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/completion with id 2339
2021-05-15 16:59:16,834 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/completion with id 2217
2021-05-15 16:59:16,846 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/completion with id 2339
2021-05-15 16:59:16,927 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:16,928 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2218
2021-05-15 16:59:16,928 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2340
2021-05-15 16:59:16,931 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2340
2021-05-15 16:59:17,015 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,015 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2219
2021-05-15 16:59:17,015 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2341
2021-05-15 16:59:17,017 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2341
2021-05-15 16:59:17,129 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,130 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2220
2021-05-15 16:59:17,130 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2342
2021-05-15 16:59:17,133 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2342
2021-05-15 16:59:17,220 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,221 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2221
2021-05-15 16:59:17,221 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2343
2021-05-15 16:59:17,222 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2343
2021-05-15 16:59:17,312 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,312 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2222
2021-05-15 16:59:17,312 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2344
2021-05-15 16:59:17,314 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2344
2021-05-15 16:59:17,394 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,394 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2223
2021-05-15 16:59:17,394 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2345
2021-05-15 16:59:17,395 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2345
2021-05-15 16:59:17,503 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,504 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2224
2021-05-15 16:59:17,504 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2346
2021-05-15 16:59:17,508 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2346
2021-05-15 16:59:17,510 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,511 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2225
2021-05-15 16:59:17,511 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2347
2021-05-15 16:59:17,512 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2347
2021-05-15 16:59:17,512 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/signatureHelp for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,513 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/signatureHelp with id 2226
2021-05-15 16:59:17,513 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/signatureHelp with id 2348
2021-05-15 16:59:17,514 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/signatureHelp with id 2348
2021-05-15 16:59:17,514 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,515 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2227
2021-05-15 16:59:17,515 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2349
2021-05-15 16:59:17,515 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2349
2021-05-15 16:59:17,523 [DEBUG] [spyder.plugins.editor.plugin] -> Perform request textDocument/didChange for: /home/sph/Software/git/menumodel.git/mopidymenu.py
2021-05-15 16:59:17,523 [DEBUG] [spyder.plugins.completion.providers.languageserver.client] -> Perform request textDocument/didChange with id 2228
2021-05-15 16:59:17,523 [DEBUG] [spyder.plugins.completion.providers.fallback.actor] -> Perform request textDocument/didChange with id 2350
2021-05-15 16:59:17,525 [DEBUG] [spyder.plugins.completion.providers.snippets.actor] -> Perform request textDocument/didChange with id 2350
2021-05-15 17:00:07,696 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2339 Got response from fallback
2021-05-15 17:00:07,696 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2339 Got response from snippets
2021-05-15 17:00:07,743 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2332 Got response from lsp
2021-05-15 17:00:07,743 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2332 removed
2021-05-15 17:00:07,743 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/signatureHelp
2021-05-15 17:00:07,744 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2339 Got response from lsp
2021-05-15 17:00:07,745 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2339 removed
2021-05-15 17:00:07,746 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/completion
2021-05-15 17:00:07,746 [DEBUG] [spyder.plugins.completion.plugin] -> Responses statistics: {'fallback': 0, 'snippets': 0, 'lsp': 25}
2021-05-15 17:00:07,748 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2348 Got response from lsp
2021-05-15 17:00:07,748 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 2348 removed

If I haven't captured everything you need, please feel free to ask for it!

My configuration ```ini [main] opengl = automatic single_instance = True open_files_port = 21128 mac_open_file = False normal_screen_resolution = False high_dpi_scaling = True high_dpi_custom_scale_factor = False high_dpi_custom_scale_factors = 1.5 vertical_tabs = False prompt_on_exit = False panes_locked = True window/is_maximized = True window/is_fullscreen = False use_custom_margin = True custom_margin = 0 use_custom_cursor_blinking = False show_internal_errors = True check_updates_on_startup = True cursor/width = 2 report_error/remember_token = False show_tour_message = False version = 69.0.0 previous_crash = interface_language = en custom_cursor_blinking = 1200 window/statusbar = True [toolbar] enable = True toolbars_visible = True [statusbar] show_status_bar = True memory_usage/enable = False memory_usage/timeout = 2000 cpu_usage/enable = False cpu_usage/timeout = 2000 clock/enable = False clock/timeout = 1000 [internal_console] max_line_count = 300 working_dir_history = 30 working_dir_adjusttocontents = False wrap = True codecompletion/auto = False external_editor/path = SciTE external_editor/gotoline = -goto: message = Spyder Internal Console This console is used to report application internal errors and to inspect Spyder internals with the following commands: spy.app, spy.window, dir(spy) Please don't use it to run your code multithreaded = False profile = False commands = [] namespace = {} show_internal_errors = True first_time = True [main_interpreter] default = True custom = False umr/enabled = True umr/verbose = True umr/namelist = [] [ipython_console] show_banner = True completion_type = 0 show_calltips = True ask_before_closing = False show_reset_namespace_warning = True buffer_size = 500 pylab = True pylab/autoload = False pylab/backend = 0 pylab/inline/figure_format = 0 pylab/inline/resolution = 72 pylab/inline/width = 6 pylab/inline/height = 4 pylab/inline/bbox_inches = True startup/run_lines = startup/use_run_file = False startup/run_file = greedy_completer = False jedi_completer = False autocall = 0 symbolic_math = False in_prompt = out_prompt = show_elapsed_time = False ask_before_restart = True hide_cmd_windows = True pdb_prevent_closing = True pdb_ignore_lib = False pdb_execute_events = True pdb_use_exclamation_mark = True pdb_stop_first_line = True startup/pdb_run_lines = first_time = True [variable_explorer] check_all = False dataframe_format = .6g excluded_names = ['nan', 'inf', 'infty', 'little_endian', 'colorbar_doc', 'typecodes', '__builtins__', '__main__', '__doc__', 'NaN', 'Inf', 'Infinity', 'sctypes', 'rcParams', 'rcParamsDefault', 'sctypeNA', 'typeNA', 'False_', 'True_'] exclude_private = True exclude_uppercase = True exclude_capitalized = False exclude_unsupported = False exclude_callables_and_modules = True truncate = True minmax = False show_callable_attributes = True show_special_attributes = False first_time = True [plots] mute_inline_plotting = True show_plot_outline = False auto_fit_plotting = True save_dir = /home/user first_time = False [editor] printer_header/font/family = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', 'Bitstream Charter', 'Lucida Grande', 'MS Shell Dlg 2', 'Calibri', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'Times', 'sans-serif'] printer_header/font/size = 9 printer_header/font/italic = False printer_header/font/bold = False wrap = False wrapflag = True todo_list = True realtime_analysis = True realtime_analysis/timeout = 2500 outline_explorer = True line_numbers = True blank_spaces = False edge_line = True edge_line_columns = 79 indent_guides = False code_folding = False show_code_folding_warning = True scroll_past_end = True toolbox_panel = True close_parentheses = True close_quotes = True add_colons = True auto_unindent = True indent_chars = * * tab_stop_width_spaces = 4 check_eol_chars = True convert_eol_on_save = False convert_eol_on_save_to = LF tab_always_indent = False intelligent_backspace = True automatic_completions = True automatic_completions_after_chars = 3 automatic_completions_after_ms = 300 completions_hint = True completions_hint_after_ms = 500 underline_errors = True highlight_current_line = True highlight_current_cell = True occurrence_highlighting = True occurrence_highlighting/timeout = 1500 always_remove_trailing_spaces = True add_newline = True always_remove_trailing_newlines = True show_tab_bar = True show_class_func_dropdown = True max_recent_files = 20 save_all_before_run = True focus_to_editor = True run_cell_copy = False onsave_analysis = False autosave_enabled = True autosave_interval = 60 docstring_type = Numpydoc strip_trailing_spaces_on_modify = False windows_layout_settings = [] last_working_dir = /home/user first_time = True [historylog] enable = True wrap = True go_to_eof = True line_numbers = False first_time = False [help] enable = True max_history_entries = 20 wrap = True connect/editor = False connect/ipython_console = False math = True automatic_import = True plain_mode = False rich_mode = True show_source = False locked = False css_path = /usr/local/lib/python3.8/dist-packages/spyder/plugins/help/utils/static/css first_time = False [onlinehelp] enable = True handle_links = False max_history_entries = 20 first_time = False [outline_explorer] enable = True show_fullpath = False show_all_files = False group_cells = True sort_files_alphabetically = False show_comments = True follow_cursor = True display_variables = False first_time = True visibility = True [project_explorer] name_filters = {} show_all = True show_hscrollbar = True visible_if_project_open = False date_column = False file_associations = {} show_hidden = False single_click_to_open = False size_column = False type_column = False first_time = False [explorer] enable = True name_filters = {} show_hidden = False single_click_to_open = False size_column = False type_column = False date_column = True visible_columns = [0, 3] first_time = False [find_in_files] enable = True supported_encodings = ['utf-8', 'iso-8859-1', 'cp1252'] exclude = [''] exclude_regexp = False search_text_regexp = False search_text = ['', '(^|#)[ ]*(TODO|FIXME|XXX|HINT|TIP|@todo|HACK|BUG|OPTIMIZE|!!!|\\?\\?\\?)([^#]*)'] search_text_samples = ['(^|#)[ ]*(TODO|FIXME|XXX|HINT|TIP|@todo|HACK|BUG|OPTIMIZE|!!!|\\?\\?\\?)([^#]*)'] more_options = False case_sensitive = False exclude_case_sensitive = False max_results = 1000 text_color = #19232D hist_limit = 15 path_history = [] exclude_idx = 0 search_in_index = 0 first_time = False [breakpoints] enable = True first_time = False [completions] enable = True kite_call_to_action = False enable_code_snippets = True completions_wait_for_ms = 200 enabled_providers = {'kite': False} provider_configuration = {'fallback': {'version': '0.1.0', 'values': {}, 'defaults': {}}, 'kite': {'version': '0.1.0', 'values': {'spyder_runs': 3, 'show_installation_dialog': False, 'show_onboarding': True, 'show_installation_error_message': True}, 'defaults': {'spyder_runs': 1, 'show_installation_dialog': True, 'show_onboarding': True, 'show_installation_error_message': True}}, 'lsp': {'version': '0.1.0', 'values': {'enable_hover_hints': True, 'show_lsp_down_warning': True, 'code_completion': True, 'jedi_definition': True, 'jedi_definition/follow_imports': True, 'jedi_signature_help': True, 'preload_modules': 'numpy, scipy, sympy, pandas, networkx, statsmodels, matplotlib, sklearn, skimage, mpmath, os, pillow, OpenGL, array, audioop, binascii, cPickle, cStringIO, cmath, collections, datetime, errno, exceptions, gc, importlib, itertools, math, mmap, msvcrt, nt, operator, ast, signal, sys, threading, time, wx, zipimport, zlib, pytest, PyQt4, PyQt5, PySide, PySide2, os.path', 'pyflakes': True, 'mccabe': True, 'formatting': 'autopep8', 'format_on_save': False, 'pycodestyle': True, 'pycodestyle/filename': '', 'pycodestyle/exclude': '', 'pycodestyle/select': '', 'pycodestyle/ignore': '', 'pycodestyle/max_line_length': 79, 'pydocstyle': True, 'pydocstyle/convention': 'numpy', 'pydocstyle/select': '', 'pydocstyle/ignore': '', 'pydocstyle/match': '(?!test_).*\\.py', 'pydocstyle/match_dir': '[^\\.].*', 'advanced/enabled': False, 'advanced/module': 'pyls', 'advanced/host': '127.0.0.1', 'advanced/port': 2087, 'advanced/external': False, 'advanced/stdio': False}, 'defaults': {'enable_hover_hints': True, 'show_lsp_down_warning': True, 'code_completion': True, 'jedi_definition': True, 'jedi_definition/follow_imports': True, 'jedi_signature_help': True, 'preload_modules': 'numpy, scipy, sympy, pandas, networkx, statsmodels, matplotlib, sklearn, skimage, mpmath, os, pillow, OpenGL, array, audioop, binascii, cPickle, cStringIO, cmath, collections, datetime, errno, exceptions, gc, importlib, itertools, math, mmap, msvcrt, nt, operator, ast, signal, sys, threading, time, wx, zipimport, zlib, pytest, PyQt4, PyQt5, PySide, PySide2, os.path', 'pyflakes': True, 'mccabe': False, 'formatting': 'autopep8', 'format_on_save': False, 'pycodestyle': False, 'pycodestyle/filename': '', 'pycodestyle/exclude': '', 'pycodestyle/select': '', 'pycodestyle/ignore': '', 'pycodestyle/max_line_length': 79, 'pydocstyle': False, 'pydocstyle/convention': 'numpy', 'pydocstyle/select': '', 'pydocstyle/ignore': '', 'pydocstyle/match': '(?!test_).*\\.py', 'pydocstyle/match_dir': '[^\\.].*', 'advanced/enabled': False, 'advanced/module': 'pyls', 'advanced/host': '127.0.0.1', 'advanced/port': 2087, 'advanced/external': False, 'advanced/stdio': False}}, 'snippets': {'version': '0.1.0', 'values': {'python': {'class': {'plain': {'text': 'class ${1:ClassName}:\n def __init__(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'inheritance': {'text': 'class ${1:ClassName}($2):\n def __init__(self, ${3:*args}, ${4:**kwargs}):\n super().__init__(${5:*args}, ${6:**kwargs})$0', 'remove_trigger': False}}, 'def': {'method': {'text': 'def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'function': {'text': 'def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}}, 'for': {'range': {'text': 'for ${1:i} in range(${2:0}, ${3:n}):\n ${4:pass}$0', 'remove_trigger': False}, 'iterator': {'text': 'for ${1:x} in ${2:iterator}:\n ${3:pass}$0', 'remove_trigger': False}}, 'while': {'condition': {'text': 'while ${1:cond}:\n ${2:pass}$0', 'remove_trigger': False}, 'infinite': {'text': 'while True:\n ${1:pass}$0', 'remove_trigger': False}}, 'import': {'package': {'text': 'import ${1:package}$0', 'remove_trigger': False}, 'alias': {'text': 'import ${1:package} as ${2:alias}$0', 'remove_trigger': False}}, 'from': {'import': {'text': 'from ${1:package} import ${2:module}$0', 'remove_trigger': False}, 'alias': {'text': 'from ${1:package} import ${2:module} as ${3:alias}$0', 'remove_trigger': False}}, 'async': {'def': {'text': 'async def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'method': {'text': 'async def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'for': {'text': 'async for ${1:x} in ${2:iterator}:\n ${3:pass}$0', 'remove_trigger': False}}, 'try': {'except': {'text': '\ntry:\n ${1:pass}\nexcept ${2:Exception}:\n ${3:pass}$0\n', 'remove_trigger': False}, 'except alias': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n ${4:pass}$0', 'remove_trigger': False}, 'except/finally': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception}:\n ${3:pass}\nfinally:\n ${4:pass}$0', 'remove_trigger': False}, 'except alias/finally': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n ${4:pass}\nfinally:\n ${5:pass}$0', 'remove_trigger': False}}, 'with': {'context': {'text': 'with ${1:context} as ${2:alias}:\n ${3:pass}$0', 'remove_trigger': False}}, 'list': {'comprehension': {'text': '[${1:x} for ${2:x} in ${3:iterator}]$0', 'remove_trigger': True}, 'comprehension if': {'text': '[${1:x} for ${2:x} in ${3:iterator} if ${4:cond}]$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '[${1:x} if ${2:cond} else ${3:other} for ${4:x} in ${5:iterator}]$0', 'remove_trigger': True}}, 'dict': {'comprehension': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator} if ${5:cond}\\}$0', 'remove_trigger': True}}, 'set': {'comprehension': {'text': '{${1:elem} for ${2:elem} in ${3:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:elem} for ${2:elem} in ${3:iterator} if ${4:cond}\\}$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '{${1:elem} if ${2:cond} else ${3:other} for ${4:elem} in ${5:iterator}\\}$0', 'remove_trigger': True}}}}, 'defaults': {'python': {'class': {'plain': {'text': 'class ${1:ClassName}:\n def __init__(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'inheritance': {'text': 'class ${1:ClassName}($2):\n def __init__(self, ${3:*args}, ${4:**kwargs}):\n super().__init__(${5:*args}, ${6:**kwargs})$0', 'remove_trigger': False}}, 'def': {'method': {'text': 'def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'function': {'text': 'def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}}, 'for': {'range': {'text': 'for ${1:i} in range(${2:0}, ${3:n}):\n ${4:pass}$0', 'remove_trigger': False}, 'iterator': {'text': 'for ${1:x} in ${2:iterator}:\n ${3:pass}$0', 'remove_trigger': False}}, 'while': {'condition': {'text': 'while ${1:cond}:\n ${2:pass}$0', 'remove_trigger': False}, 'infinite': {'text': 'while True:\n ${1:pass}$0', 'remove_trigger': False}}, 'import': {'package': {'text': 'import ${1:package}$0', 'remove_trigger': False}, 'alias': {'text': 'import ${1:package} as ${2:alias}$0', 'remove_trigger': False}}, 'from': {'import': {'text': 'from ${1:package} import ${2:module}$0', 'remove_trigger': False}, 'alias': {'text': 'from ${1:package} import ${2:module} as ${3:alias}$0', 'remove_trigger': False}}, 'async': {'def': {'text': 'async def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'method': {'text': 'async def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n ${4:pass}$0', 'remove_trigger': False}, 'for': {'text': 'async for ${1:x} in ${2:iterator}:\n ${3:pass}$0', 'remove_trigger': False}}, 'try': {'except': {'text': '\ntry:\n ${1:pass}\nexcept ${2:Exception}:\n ${3:pass}$0\n', 'remove_trigger': False}, 'except alias': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n ${4:pass}$0', 'remove_trigger': False}, 'except/finally': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception}:\n ${3:pass}\nfinally:\n ${4:pass}$0', 'remove_trigger': False}, 'except alias/finally': {'text': 'try:\n ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n ${4:pass}\nfinally:\n ${5:pass}$0', 'remove_trigger': False}}, 'with': {'context': {'text': 'with ${1:context} as ${2:alias}:\n ${3:pass}$0', 'remove_trigger': False}}, 'list': {'comprehension': {'text': '[${1:x} for ${2:x} in ${3:iterator}]$0', 'remove_trigger': True}, 'comprehension if': {'text': '[${1:x} for ${2:x} in ${3:iterator} if ${4:cond}]$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '[${1:x} if ${2:cond} else ${3:other} for ${4:x} in ${5:iterator}]$0', 'remove_trigger': True}}, 'dict': {'comprehension': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator} if ${5:cond}\\}$0', 'remove_trigger': True}}, 'set': {'comprehension': {'text': '{${1:elem} for ${2:elem} in ${3:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:elem} for ${2:elem} in ${3:iterator} if ${4:cond}\\}$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '{${1:elem} if ${2:cond} else ${3:other} for ${4:elem} in ${5:iterator}\\}$0', 'remove_trigger': True}}}}}} request_priorities = {'$/cancelRequest': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'client/registerCapability': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'client/unregisterCapability': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'codeLens/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'completionItem/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/codeAction': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/codeLens': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/completion': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/cursorEvent': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/definition': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didChange': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didClose': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didOpen': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didSave': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/foldingRange': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/formatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentHighlight': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/hover': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentLink': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'documentLink/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/onTypeFormatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/publishDiagnostics': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/rangeFormatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, ' textDocument/references': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/rename': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/signatureHelp': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentSymbol': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/willSave': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/willSaveWaitUntil': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'exit': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'initialize': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'initialized': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'shutdown': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'telemetry/event': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/logMessage': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/showMessage': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/showMessageRequest': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/applyEdit': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/configuration': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeConfiguration': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/executeCommand': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/workspaceFolders': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeWorkspaceFolders': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/symbol': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeWatchedFiles': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}} [profiler] enable = True text_color = #19232D first_time = False max_entries = 50 [pylint] enable = True max_entries = 30 project_dir = '/home/user/Software/git/menu' save_before = True first_time = False [workingdir] working_dir_adjusttocontents = False working_dir_history = 20 console/use_project_or_home_directory = False console/use_cwd = True console/use_fixed_directory = False startup/use_fixed_directory = False init_workdir = None history = ['/home/user/Software/git/menu', '/home/user'] workdir = None startup/use_project_or_home_directory = True [shortcuts] _/close pane = Shift+Ctrl+F4 _/lock unlock panes = Shift+Ctrl+F5 _/use next layout = Shift+Alt+PgDown _/use previous layout = Shift+Alt+PgUp _/maximize pane = Ctrl+Alt+Shift+M _/fullscreen mode = F11 _/save current layout = Shift+Alt+S _/layout preferences = Shift+Alt+P _/spyder documentation = F1 _/restart = Shift+Alt+R _/quit = Ctrl+Q _/file switcher = Ctrl+P _/symbol finder = Ctrl+Alt+P _/debug = Ctrl+F5 _/debug step over = Ctrl+F10 _/debug continue = Ctrl+F12 _/debug step into = Ctrl+F11 _/debug step return = Ctrl+Shift+F11 _/debug exit = Ctrl+Shift+F12 _/run = F5 _/configure = Ctrl+F6 _/re-run last script = F6 _/switch to help = Ctrl+Shift+H _/switch to outline_explorer = Ctrl+Shift+O _/switch to editor = Ctrl+Shift+E _/switch to historylog = Ctrl+Shift+L _/switch to onlinehelp = Ctrl+Shift+D _/switch to project_explorer = Ctrl+Shift+P _/switch to ipython_console = Ctrl+Shift+I _/switch to variable_explorer = Ctrl+Shift+V _/switch to find_in_files = Ctrl+Shift+F _/switch to explorer = Ctrl+Shift+X _/switch to plots = Ctrl+Shift+G _/switch to pylint = Ctrl+Shift+C _/switch to profiler = Ctrl+Shift+R find_replace/find text = Ctrl+F find_replace/find next = F3 find_replace/find previous = Shift+F3 find_replace/replace text = Ctrl+R find_replace/hide find and replace = Escape editor/code completion = Ctrl+Space editor/duplicate line up = Shift+Alt+Up editor/duplicate line down = Shift+Alt+Down editor/delete line = Ctrl+D editor/transform to uppercase = Ctrl+Shift+U editor/transform to lowercase = Ctrl+U editor/indent = Ctrl+] editor/unindent = Ctrl+[ editor/move line up = Alt+Up editor/move line down = Alt+Down editor/go to new line = Ctrl+Shift+Return editor/go to definition = Ctrl+G editor/toggle comment = Ctrl+1 editor/blockcomment = Ctrl+4 editor/unblockcomment = Ctrl+5 editor/start of line = Meta+A editor/end of line = Meta+E editor/previous line = Meta+P editor/next line = Meta+N editor/previous char = Meta+B editor/next char = Meta+F editor/previous word = Ctrl+Left editor/next word = Ctrl+Right editor/kill to line end = Meta+K editor/kill to line start = Meta+U editor/yank = Meta+Y editor/rotate kill ring = Shift+Meta+Y editor/kill previous word = Meta+Backspace editor/kill next word = Meta+D editor/start of document = Ctrl+Home editor/end of document = Ctrl+End editor/undo = Ctrl+Z editor/redo = Ctrl+Shift+Z editor/cut = Ctrl+X editor/copy = Ctrl+C editor/paste = Ctrl+V editor/delete = Del editor/select all = Ctrl+A editor/inspect current object = Ctrl+I editor/breakpoint = F12 editor/conditional breakpoint = Shift+F12 editor/run selection = F9 editor/go to line = Ctrl+L editor/go to previous file = Ctrl+Shift+Tab editor/go to next file = Ctrl+Tab editor/cycle to previous file = Ctrl+PgUp editor/cycle to next file = Ctrl+PgDown editor/new file = Ctrl+N editor/open last closed = Ctrl+Shift+T editor/open file = Ctrl+O editor/save file = Ctrl+S editor/save all = Ctrl+Alt+S editor/save as = Ctrl+Shift+S editor/close all = Ctrl+Shift+W editor/last edit location = Ctrl+Alt+Shift+Left editor/previous cursor position = Alt+Left editor/next cursor position = Alt+Right editor/previous warning = Ctrl+Alt+Shift+, editor/next warning = Ctrl+Alt+Shift+. editor/zoom in 1 = Ctrl++ editor/zoom in 2 = Ctrl+= editor/zoom out = Ctrl+- editor/zoom reset = Ctrl+0 editor/close file 1 = Ctrl+W editor/close file 2 = Ctrl+F4 editor/run cell = Ctrl+Return editor/run cell and advance = Shift+Return editor/debug cell = Alt+Shift+Return editor/go to next cell = Ctrl+Down editor/go to previous cell = Ctrl+Up editor/re-run last cell = Alt+Return editor/split vertically = Ctrl+{ editor/split horizontally = Ctrl+_ editor/close split panel = Alt+Shift+W editor/docstring = Ctrl+Alt+D editor/autoformatting = Ctrl+Alt+I editor/show in external file explorer = _/switch to breakpoints = Ctrl+Shift+B console/inspect current object = Ctrl+I console/clear shell = Ctrl+L console/clear line = Shift+Escape pylint/run analysis = F8 profiler/run profiler = F10 ipython_console/new tab = Ctrl+T ipython_console/reset namespace = Ctrl+Alt+R ipython_console/restart kernel = Ctrl+. array_builder/enter array inline = Ctrl+Alt+M array_builder/enter array table = Ctrl+M variable_explorer/copy = Ctrl+C variable_explorer/search = Ctrl+F variable_explorer/refresh = Ctrl+R plots/copy = Ctrl+C plots/previous figure = Ctrl+PgUp plots/next figure = Ctrl+PgDown plots/save = Ctrl+S plots/save all = Ctrl+Alt+S plots/close = Ctrl+W plots/close all = Ctrl+Shift+W plots/zoom in = Ctrl++ plots/zoom out = Ctrl+- explorer/copy file = Ctrl+C explorer/paste file = Ctrl+V explorer/copy absolute path = Ctrl+Alt+C explorer/copy relative path = Ctrl+Alt+Shift+C find_in_files/find in files = Ctrl+Alt+F shortcuts/show_shortcut_summary_action = _/switch to internal_console = profiler/profile_current_filename_action = [appearance] icon_theme = spyder 3 font/family = 'Hack' font/size = 11 font/italic = False font/bold = False rich_font/family = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', 'Bitstream Charter', 'Lucida Grande', 'MS Shell Dlg 2', 'Calibri', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'Times', 'sans-serif'] rich_font/size = 9 rich_font/italic = False rich_font/bold = False ui_theme = light names = ['emacs', 'idle', 'inkpot', 'minimal', 'monokai', 'nightlion', 'notepad++', 'oblivion', 'obsidian', 'pastel', 'pydev', 'retta', 'roboticket', 'scintilla', 'solarized/dark', 'solarized/light', 'spyder', 'spyder/dark', 'sublime-monokai/extended', 'vibrant-ink', 'zenburn'] selected = spyder emacs/name = Emacs emacs/background = #000000 emacs/currentline = #2b2b43 emacs/currentcell = #1c1c2d emacs/occurrence = #1A72BB emacs/ctrlclick = #0000ff emacs/sideareas = #555555 emacs/matched_p = #009800 emacs/unmatched_p = #c80000 emacs/normal = ('#ffffff', False, False) emacs/keyword = ('#3c51e8', False, False) emacs/magic = ('#3c51e8', False, False) emacs/builtin = ('#900090', False, False) emacs/definition = ('#ff8040', True, False) emacs/comment = ('#005100', False, False) emacs/string = ('#00aa00', False, True) emacs/number = ('#800000', False, False) emacs/instance = ('#ffffff', False, True) idle/name = IDLE idle/background = #ffffff idle/currentline = #f2e6f3 idle/currentcell = #feefff idle/occurrence = #C2E3FA idle/ctrlclick = #0000ff idle/sideareas = #efefef idle/matched_p = #99ff99 idle/unmatched_p = #ff9999 idle/normal = ('#000000', False, False) idle/keyword = ('#ff7700', True, False) idle/magic = ('#ff7700', True, False) idle/builtin = ('#900090', False, False) idle/definition = ('#0000ff', False, False) idle/comment = ('#dd0000', False, True) idle/string = ('#00aa00', False, False) idle/number = ('#924900', False, False) idle/instance = ('#777777', True, True) monokai/name = Monokai monokai/background = #2a2b24 monokai/currentline = #484848 monokai/currentcell = #3d3d3d monokai/occurrence = #1A72BB monokai/ctrlclick = #0000ff monokai/sideareas = #2a2b24 monokai/matched_p = #688060 monokai/unmatched_p = #bd6e76 monokai/normal = ('#ddddda', False, False) monokai/keyword = ('#f92672', False, False) monokai/magic = ('#f92672', False, False) monokai/builtin = ('#ae81ff', False, False) monokai/definition = ('#a6e22e', False, False) monokai/comment = ('#75715e', False, True) monokai/string = ('#e6db74', False, False) monokai/number = ('#ae81ff', False, False) monokai/instance = ('#ddddda', False, True) pydev/name = Pydev pydev/background = #ffffff pydev/currentline = #e8f2fe pydev/currentcell = #eff8fe pydev/occurrence = #C2E3FA pydev/ctrlclick = #0000ff pydev/sideareas = #efefef pydev/matched_p = #99ff99 pydev/unmatched_p = #ff99992 pydev/normal = ('#000000', False, False) pydev/keyword = ('#0000ff', False, False) pydev/magic = ('#0000ff', False, False) pydev/builtin = ('#900090', False, False) pydev/definition = ('#000000', True, False) pydev/comment = ('#c0c0c0', False, False) pydev/string = ('#00aa00', False, True) pydev/number = ('#800000', False, False) pydev/instance = ('#000000', False, True) scintilla/name = Scintilla scintilla/background = #ffffff scintilla/currentline = #e1f0d1 scintilla/currentcell = #edfcdc scintilla/occurrence = #C2E3FA scintilla/ctrlclick = #0000ff scintilla/sideareas = #efefef scintilla/matched_p = #99ff99 scintilla/unmatched_p = #ff9999 scintilla/normal = ('#000000', False, False) scintilla/keyword = ('#00007f', True, False) scintilla/magic = ('#00007f', True, False) scintilla/builtin = ('#000000', False, False) scintilla/definition = ('#007f7f', True, False) scintilla/comment = ('#007f00', False, False) scintilla/string = ('#7f007f', False, False) scintilla/number = ('#007f7f', False, False) scintilla/instance = ('#000000', False, True) spyder/name = Spyder spyder/background = #ffffff spyder/currentline = #f7ecf8 spyder/currentcell = #fdfdde spyder/occurrence = #C2E3FA spyder/ctrlclick = #0000ff spyder/sideareas = #efefef spyder/matched_p = #99ff99 spyder/unmatched_p = #ff9999 spyder/normal = ('#000000', False, False) spyder/keyword = ('#0000ff', False, False) spyder/magic = ('#0000ff', False, False) spyder/builtin = ('#900090', False, False) spyder/definition = ('#000000', True, False) spyder/comment = ('#adadad', False, True) spyder/string = ('#00aa00', False, False) spyder/number = ('#800000', False, False) spyder/instance = ('#924900', False, True) spyder/dark/name = Spyder Dark spyder/dark/background = #19232D spyder/dark/currentline = #3a424a spyder/dark/currentcell = #292d3e spyder/dark/occurrence = #1A72BB spyder/dark/ctrlclick = #179ae0 spyder/dark/sideareas = #222b35 spyder/dark/matched_p = #0bbe0b spyder/dark/unmatched_p = #ff4340 spyder/dark/normal = ('#ffffff', False, False) spyder/dark/keyword = ('#c670e0', False, False) spyder/dark/magic = ('#c670e0', False, False) spyder/dark/builtin = ('#fab16c', False, False) spyder/dark/definition = ('#57d6e4', True, False) spyder/dark/comment = ('#999999', False, False) spyder/dark/string = ('#b0e686', False, True) spyder/dark/number = ('#faed5c', False, False) spyder/dark/instance = ('#ee6772', False, True) zenburn/name = Zenburn zenburn/background = #3f3f3f zenburn/currentline = #333333 zenburn/currentcell = #2c2c2c zenburn/occurrence = #1A72BB zenburn/ctrlclick = #0000ff zenburn/sideareas = #3f3f3f zenburn/matched_p = #688060 zenburn/unmatched_p = #bd6e76 zenburn/normal = ('#dcdccc', False, False) zenburn/keyword = ('#dfaf8f', True, False) zenburn/magic = ('#dfaf8f', True, False) zenburn/builtin = ('#efef8f', False, False) zenburn/definition = ('#efef8f', False, False) zenburn/comment = ('#7f9f7f', False, True) zenburn/string = ('#cc9393', False, False) zenburn/number = ('#8cd0d3', False, False) zenburn/instance = ('#dcdccc', False, True) solarized/light/name = Solarized Light solarized/light/background = #fdf6e3 solarized/light/currentline = #f5efdB solarized/light/currentcell = #eee8d5 solarized/light/occurrence = #C2E3FA solarized/light/ctrlclick = #d33682 solarized/light/sideareas = #eee8d5 solarized/light/matched_p = #d6dabf solarized/light/unmatched_p = #dc322f solarized/light/normal = ('#657b83', False, False) solarized/light/keyword = ('#859900', False, False) solarized/light/magic = ('#859900', False, False) solarized/light/builtin = ('#6c71c4', False, False) solarized/light/definition = ('#268bd2', True, False) solarized/light/comment = ('#93a1a1', False, True) solarized/light/string = ('#2aa198', False, False) solarized/light/number = ('#d33682', False, False) solarized/light/instance = ('#b58900', False, True) solarized/dark/name = Solarized Dark solarized/dark/background = #002b36 solarized/dark/currentline = #083f4d solarized/dark/currentcell = #073642 solarized/dark/occurrence = #1A72BB solarized/dark/ctrlclick = #d33682 solarized/dark/sideareas = #073642 solarized/dark/matched_p = #586e75 solarized/dark/unmatched_p = #dc322f solarized/dark/normal = ('#E1E1E1', False, False) solarized/dark/keyword = ('#859900', False, False) solarized/dark/magic = ('#859900', False, False) solarized/dark/builtin = ('#6c71c4', False, False) solarized/dark/definition = ('#268bd2', True, False) solarized/dark/comment = ('#657b83', False, True) solarized/dark/string = ('#2aa198', False, False) solarized/dark/number = ('#d33682', False, False) solarized/dark/instance = ('#b58900', False, True) inkpot/name = Inkpot inkpot/background = #1f1f27 inkpot/currentline = #2d2d44 inkpot/currentcell = #33333A inkpot/occurrence = #1A72BB inkpot/ctrlclick = #1f1f27 inkpot/sideareas = #2d2d44 inkpot/matched_p = #3672b5 inkpot/unmatched_p = #8b8bff inkpot/normal = ('#cfbfad', False, False) inkpot/keyword = ('#808bed', False, False) inkpot/magic = ('#808bed', False, False) inkpot/builtin = ('#87cefa', False, False) inkpot/definition = ('#87cefa', False, False) inkpot/comment = ('#cd8b00', False, False) inkpot/string = ('#ffcd8b', False, False) inkpot/number = ('#ffcd8b', False, False) inkpot/instance = ('#cfbfad', False, False) minimal/name = Minimal minimal/background = #ffffff minimal/currentline = #aaccff minimal/currentcell = #E7F1FF minimal/occurrence = #C2E3FA minimal/ctrlclick = #05314d minimal/sideareas = #aaccff minimal/matched_p = #000000 minimal/unmatched_p = #efefff minimal/normal = ('#000000', False, False) minimal/keyword = ('#5c8198', False, False) minimal/magic = ('#5c8198', False, False) minimal/builtin = ('#000066', False, False) minimal/definition = ('#5c8198', False, False) minimal/comment = ('#334466', False, False) minimal/string = ('#333333', False, False) minimal/number = ('#333333', False, False) minimal/instance = ('#566874', False, False) nightlion/name = NightLion Aptana Theme nightlion/background = #1e1e1e nightlion/currentline = #505050 nightlion/currentcell = #323232 nightlion/occurrence = #1A72BB nightlion/ctrlclick = #b3b5af nightlion/sideareas = #505050 nightlion/matched_p = #3672b5 nightlion/unmatched_p = #364656 nightlion/normal = ('#e2e2e2', False, False) nightlion/keyword = ('#8dcbe2', False, False) nightlion/magic = ('#8dcbe2', False, False) nightlion/builtin = ('#cae682', False, False) nightlion/definition = ('#dfbe95', False, False) nightlion/comment = ('#7f9f7f', False, False) nightlion/string = ('#cc9393', False, False) nightlion/number = ('#eab882', False, False) nightlion/instance = ('#b3b784', False, False) notepad++/name = Notepad++ notepad++/background = #ffffff notepad++/currentline = #eeeeee notepad++/currentcell = #D9D9D9 notepad++/occurrence = #C2E3FA notepad++/ctrlclick = #800080 notepad++/sideareas = #eeeeee notepad++/matched_p = #8000ff notepad++/unmatched_p = #eeeeee notepad++/normal = ('#8000ff', False, False) notepad++/keyword = ('#0000ff', False, False) notepad++/magic = ('#0000ff', False, False) notepad++/builtin = ('#000080', False, False) notepad++/definition = ('#ff00ff', False, False) notepad++/comment = ('#008000', False, False) notepad++/string = ('#808080', False, False) notepad++/number = ('#ff8000', False, False) notepad++/instance = ('#800080', False, False) oblivion/name = Oblivion oblivion/background = #1e1e1e oblivion/currentline = #2a2a2a oblivion/currentcell = #323232 oblivion/occurrence = #1A72BB oblivion/ctrlclick = #ccdf32 oblivion/sideareas = #2a2a2a oblivion/matched_p = #de7878 oblivion/unmatched_p = #000000 oblivion/normal = ('#d8d8d8', False, False) oblivion/keyword = ('#ffffff', False, False) oblivion/magic = ('#ffffff', False, False) oblivion/builtin = ('#de7878', False, False) oblivion/definition = ('#ffffff', False, False) oblivion/comment = ('#c7dd0c', False, False) oblivion/string = ('#ffc600', False, False) oblivion/number = ('#7fb347', False, False) oblivion/instance = ('#bed6ff', False, False) obsidian/name = Obsidian obsidian/background = #293134 obsidian/currentline = #2f393c obsidian/currentcell = #3C4346 obsidian/occurrence = #1A72BB obsidian/ctrlclick = #7d8c93 obsidian/sideareas = #2f393c obsidian/matched_p = #3672b5 obsidian/unmatched_p = #804000 obsidian/normal = ('#e0e2e4', False, False) obsidian/keyword = ('#93c763', False, False) obsidian/magic = ('#93c763', False, False) obsidian/builtin = ('#678cb1', False, False) obsidian/definition = ('#678cb1', False, False) obsidian/comment = ('#7d8c93', False, False) obsidian/string = ('#ec7600', False, False) obsidian/number = ('#ffcd22', False, False) obsidian/instance = ('#678cb1', False, False) pastel/name = Pastel pastel/background = #1f2223 pastel/currentline = #2f393c pastel/currentcell = #454849 pastel/occurrence = #1A72BB pastel/ctrlclick = #7d8c93 pastel/sideareas = #2f393c pastel/matched_p = #3672b5 pastel/unmatched_p = #95bed8 pastel/normal = ('#e0e2e4', False, False) pastel/keyword = ('#a57b61', False, False) pastel/magic = ('#a57b61', False, False) pastel/builtin = ('#678cb1', False, False) pastel/definition = ('#678cb1', False, False) pastel/comment = ('#7d8c93', False, False) pastel/string = ('#c78d9b', False, False) pastel/number = ('#c78d9b', False, False) pastel/instance = ('#678cb1', False, False) retta/name = Retta retta/background = #000000 retta/currentline = #2a2a2a retta/currentcell = #171717 retta/occurrence = #1A72BB retta/ctrlclick = #83786e retta/sideareas = #2a2a2a retta/matched_p = #de7878 retta/unmatched_p = #527d5d retta/normal = ('#f8e1aa', False, False) retta/keyword = ('#e79e3c', True, False) retta/magic = ('#e79e3c', True, False) retta/builtin = ('#de6546', True, False) retta/definition = ('#a4b0c0', False, False) retta/comment = ('#83786e', False, False) retta/string = ('#d6c248', False, False) retta/number = ('#d6c248', False, False) retta/instance = ('#de6546', False, False) roboticket/name = Roboticket roboticket/background = #f5f5f5 roboticket/currentline = #e0e0ff roboticket/currentcell = #CCCCE8 roboticket/occurrence = #C2E3FA roboticket/ctrlclick = #ad95af roboticket/sideareas = #e0e0ff roboticket/matched_p = #585858 roboticket/unmatched_p = #bdd8f2 roboticket/normal = ('#585858', False, False) roboticket/keyword = ('#295f94', False, True) roboticket/magic = ('#295f94', False, True) roboticket/builtin = ('#ab2525', False, False) roboticket/definition = ('#bc5a65', True, False) roboticket/comment = ('#ad95af', False, True) roboticket/string = ('#317ecc', False, False) roboticket/number = ('#af0f91', False, False) roboticket/instance = ('#566874', False, False) sublime-monokai/extended/name = Sublime Text Monokai Extended sublime-monokai/extended/background = #222222 sublime-monokai/extended/currentline = #2f2f2f sublime-monokai/extended/currentcell = #363636 sublime-monokai/extended/occurrence = #1A72BB sublime-monokai/extended/ctrlclick = #ffffff sublime-monokai/extended/sideareas = #2f2f2f sublime-monokai/extended/matched_p = #679116 sublime-monokai/extended/unmatched_p = #cc9900 sublime-monokai/extended/normal = ('#cfbfad', False, False) sublime-monokai/extended/keyword = ('#ff007f', False, False) sublime-monokai/extended/magic = ('#ff007f', False, False) sublime-monokai/extended/builtin = ('#52e3f6', False, False) sublime-monokai/extended/definition = ('#a7ec21', False, False) sublime-monokai/extended/comment = ('#ffffff', False, False) sublime-monokai/extended/string = ('#ece47e', False, False) sublime-monokai/extended/number = ('#c48cff', False, False) sublime-monokai/extended/instance = ('#cfbfad', False, False) vibrant-ink/name = Vibrant Ink vibrant-ink/background = #191919 vibrant-ink/currentline = #222220 vibrant-ink/currentcell = #2D2D2D vibrant-ink/occurrence = #1A72BB vibrant-ink/ctrlclick = #8c3fc8 vibrant-ink/sideareas = #222220 vibrant-ink/matched_p = #598c19 vibrant-ink/unmatched_p = #414c3b vibrant-ink/normal = ('#ffffff', False, False) vibrant-ink/keyword = ('#ec691e', False, False) vibrant-ink/magic = ('#ec691e', False, False) vibrant-ink/builtin = ('#9cf828', False, False) vibrant-ink/definition = ('#f7c527', False, False) vibrant-ink/comment = ('#8146a2', False, False) vibrant-ink/string = ('#477488', False, False) vibrant-ink/number = ('#477488', False, False) vibrant-ink/instance = ('#357a8f', False, False) custom_names = [] [snippet-completions] erlang = {} swift = {} json = {} kotlin = {} r = {} fortran = {} bash = {} typescript = {} javascript = {} scala = {} haxe = {} php = {} cpp = {} c# = {} html = {} go = {} graphql = {} julia = {} java = {} rust = {} groovy = {} ocaml = {} css/less/sass = {} elixir = {} [run] post_mortem = False clear_namespace = False console_namespace = False interact = False open_on_firstrun = False default/interpreter/current = False default/interpreter/dedicated = True default/interpreter/systerm = False default/wdir/use_script_directory = False default/wdir/use_cwd_directory = True default/wdir/use_fixed_directory = False history = 20 open_at_least_once = False ```

Versions

Dependencies


# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  1.6.0 (OK)
cookiecutter >=1.6.0          :  1.7.2 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.1.0 (OK)
IPython >=7.6.0               :  7.23.1 (OK)
jedi =0.17.2                  :  0.17.2 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.0.1 (OK)
nbconvert >=4.0               :  6.0.7 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
parso =0.7.0                  :  0.7.0 (OK)
pexpect >=4.4.0               :  4.6.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.5.1 (OK)
pygments >=2.0                :  2.9.0 (OK)
pylint >=1.0                  :  2.8.2 (OK)
pyls >=0.36.2;<1.0.0          :  0.36.2 (OK)
pyls_black >=0.4.6            :  0.4.6 (OK)
pyls_spyder >=0.3.2;<0.4.0    :  0.3.2 (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.0 (OK)
qtawesome >=1.0.2             :  1.0.2 (OK)
qtconsole >=5.1.0             :  5.1.0 (OK)
qtpy >=1.5.0                  :  1.9.0 (OK)
setuptools >=39.0.0           :  56.2.0 (OK)
sphinx >=0.6.6                :  4.0.1 (OK)
spyder_kernels >=2.0.2;<2.1.0 :  2.0.2 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3;<2.0.0      :  1.0.2 (OK)
xdg >=0.26                    :  0.26 (OK)
zmq >=17                      :  22.0.3 (OK)

# Optional:
cython >=0.21                 :  None (NOK)
matplotlib >=2.0.0            :  3.4.2 (OK)
numpy >=1.7                   :  1.20.3 (OK)
pandas >=1.1.1                :  1.2.4 (OK)
scipy >=0.17.0                :  1.6.3 (OK)
sympy >=0.7.3                 :  1.8 (OK)
sphh commented 3 years ago

I forgot to mention, that during the time I wait for spyder to react, the CPU load (of the core running spyder) is 100%.

ccordoba12 commented 3 years ago

Hey @sphh, thanks for reporting. Did you check that the CPU load is caused by Spyder?

sphh commented 3 years ago

Yes, it is the spyder process, which uses 100% CPU. I checked that, because I initially thought it is the language server. But this process does not show a higher CPU usage than normal.

ccordoba12 commented 3 years ago

Ok, are you working with long files in the editor? I mean, files with more than 1000 lines of code?

sphh commented 3 years ago

I am currently working on a file which has ~650 lines.

ccordoba12 commented 3 years ago

Could you check with a smaller file? Just to be sure if the problem is with the file length or it's something else.

ccordoba12 commented 3 years ago

It's fine with a 100 or 200 lines file.

sphh commented 3 years ago

It's better with a file with only 120 lines. But still there is a noticeable and irritating lag when typing fast.

At the beginning there is no lag at all (for large and small files). After restarting the LSP (from the statusbar), it is close to the experience after starting spyder, but the feeling becomes ‘laggy’ quite quickly. For the large file, to be unusable and for the small one, so that you can still feel it.

ccordoba12 commented 3 years ago

So if you disable the LSP in

Preferences > Completion and linting > General > Providers > Enable Language Server Protocol (LSP) provider

and restart Spyder, does the sluggishness disappear?

sphh commented 3 years ago

Yes it does (it disappears even without restarting spyder).

TimBergner commented 3 years ago

I have the same problem and it even occurred on a 35 line file (no other files were open) whereby I noticed one special case: It occurs to me most strongly (but not only) when you edit code after open brackets that are not yet closed again. When editing code in this situation, it sometimes takes 10s to appear. It does not matter whether it is writing, auto-completing or deleting. The situation is immediately better when the closed bracket is there too. Disabling the LSP provider helped, simply restarting the LSP server had no effect.

sphh commented 3 years ago

I can confirm @TimBergner findings: It is (noticeable) slower if the corresponding bracket is not closed yet.

My feeling is, that the sluggishness often starts, when the bracket is open or when editing a triple-quoted doc-string or a f-string (but this is just my feeling and in no way an objective finding).

ccordoba12 commented 3 years ago

It is (noticeable) slower if the corresponding bracket is not closed yet.

Ok, this is really interesting and a pretty nice finding. This sluggishness is also present when the LSP is turned off?

ccordoba12 commented 3 years ago

Note: this could be related to PR #14376, which was added in our 4.2.2 version.

@hengin, are you able to reproduce these problems?

remisalmon commented 3 years ago

I am having the same issue with Spyder 5.0.3 and 5.0.2 on MacOS, after a few hours of use the editor becomes extremely slow/frozen for several seconds, and the CPU usage jumps to 100%.

The issues seems to trigger when the code analysis detects errors in the code, and only after a few hours of use.

ccordoba12 commented 3 years ago

@remisalmon, do the problems disappear if you restart the language server?

remisalmon commented 3 years ago

@ccordoba12 no, it seems unrelated.

Disabling "Underline errors and warning" (but not "Enable basic linting") solves the issue entirely - just found out about this.

hengin commented 3 years ago

Note: this could be related to PR #14376, which was added in our 4.2.2 version.

@hengin, are you able to reproduce these problems?

I have not seen these problems (but then I have not had any long-running Spyder sessions open recently). If it was related to #14376 then the lag should be the same independently of how long Spyder has been running. It should only depend on the length of the file and the depth of nested brackets. And the lag should be proportional to both. If closing and reopening Spyder changes the amount of lag then it should be unrelated.

jagauthier commented 3 years ago

Hello, I started using Spyder for the first time yesterday (go me). I enabled the linter, and I was happily programming some stuff. I left Spyder open over night. This morning, I noticed the editor was laggy, even after just making a small change and moving the cursor. I found this thread. I disabled the LSP server, and the problem went away immediately, but caused Spyder to become unstable. So I restarted Spyder. At this point the LSP was disabled. I re-enabled it, and restart Spyder again. Currently, the interface is back to normal.

This is with Spyder 5.0.3.

fanny-j commented 3 years ago

Hello, I experience the same lagging issues when working on files over 500 lines long, after some time. I've been working on Spyder for a few years (currently on 5.0.0), and I think it started happening on Spyder 4.0. I am not always on large files so cannot be sure about the timing. I'm on Ubuntu 20.04.2 LTS. Following @remisalmon comment on disabling "Underline errors and warning" and other comments before, I tried a few of these things too. "Underline errors and warnings" was already disabled for me, and I was having the lagging happening. So I unchecked "Show code folding" in Preferences > Editor > Display. It improves A LOT my experience since the last few days. Sometimes lagging still happens, in particular when having unmatched parenthesis or brackets open, but that's nothing in comparison to the lag I had when just typing letters and waiting for them to appear on screen before. Maybe it can help some of you to use Spyder or even to fix whatever is the issue there... Have a nice day!

greg500 commented 3 years ago

I noticed the same kind of issue after upgrading from Spyder 4.1.5 to 4.2.5.

Disabling both code folding and indent guides improve the problem.

mluerig commented 2 years ago

same here - deactivating code folding gave a tremendous speed boost in spyder 4.2.5 and 5.0.3

EDIT: helped for 30 seconds, then incredibly slow again when typing more than a few characters. the little refresh wheel in outline keeps turning constantly. I have all code completion deactivated.

ccordoba12 commented 2 years ago

@mluerig, if you're using Spyder in macOS Big Sur with Anaconda, you need to switch to our DMG installer because that's the only possible workaround at the moment:

https://github.com/spyder-ide/spyder/releases

mluerig commented 2 years ago

@ccordoba12 I'm on windows 10, unfortunately. I now did a complete os/anaconda/spyder reinstall (now 5.0.5), but it didn't change anything. which version could I roll back onto where this is not a problem? almost unusably slow at the moment...

ccordoba12 commented 2 years ago

Hey guys, I have good news for you: I was able to reproduce the problem reported initially by @sphh and I think I solved it in PR #16195, which will be part of our next version (5.1.2), to be released in a week or so.

I decided to not close this issue yet because:

  1. You could find my fix was not enough.
  2. There's good advice here about workarounds for other problems that impact typing in the editor.
  3. We still need to address other things reported here (like the issue with folding).
mluerig commented 2 years ago

thanks for the follow up! I'll check in September when I am back at work

On Wed, Aug 11, 2021, 04:39 Carlos Cordoba @.***> wrote:

Hey guys, I have good news for you: I was able to reproduce the problem reported initially by @sphh https://github.com/sphh and I think I solved it in PR #16195 https://github.com/spyder-ide/spyder/pull/16195, which will be part of our next version (5.1.2), to be released in a week or so.

I decided to not close this issue yet because:

  1. You could find my fix was not enough.
  2. There's good advice here about workarounds for other problems that impact typing in the editor.
  3. We still need to address other things reported here (like the issue with folding).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/spyder-ide/spyder/issues/15631#issuecomment-896454818, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADXMKRF3K3D6G7C3Z6UKNGTT4HPEJANCNFSM4457S4PA .

sphh commented 2 years ago

I applied the changes from #16195 manually on my installation (Spyder 5.1.1). It improved the experience quite a lot.

Still it is lagging, if I have Code style linting and Docstring style linting enabled. On a positive side, the memory used by the pylsp server does not increase over time, with those two options enabled (as it used to happen – don't know if it is really related).

@ccordoba12: What are the reasons to move it from the v5.1.2 to the v5.2.0 milestone? I would very much like it in the next possible milestone, because it improves the usability a lot! (But I can always apply those 3 patches manually …)

ccordoba12 commented 2 years ago

I applied the changes from #16195 manually on my installation (Spyder 5.1.1). It improved the experience quite a lot.

Great! I'm really glad to hear that.

I would very much like it in the next possible milestone, because it improves the usability a lot! (But I can always apply those 3 patches manually …)

The changes in PR #16195 will be part of 5.1.2 (as I said above). But there are other issues that still affect typing and we plan to address them in 5.2.0 (basically because we don't know how to solve them yet).

sphh commented 2 years ago

@ccordoba12: Thanks for explaining the milestones (and great to hear, that this will be part of 5.1.2!)

Here is an update on my experience:

ccordoba12 commented 2 years ago

Hey @sphh, thanks a lot for helping us to track down this problem! I think I found the issue with underlining errors and warnings: we had a terrible memory leak that (as you pointed out) made the editor sluggish after some time.

Please test PR #16206 and let us know if it works for you (it's a very simple patch).

sphh commented 2 years ago

@ccordoba12: I now worked on Spyder 5.1.1 with this PR #16206 applied for a longer time. I have not experienced any increase in sluggishness over time. Looks like you squashed that bug! Thanks!!

GregStacey commented 2 years ago

I'm working in Spyder 5.0.5 on a mac and was having a lot of lag in the editor. A fix that worked for me and that I didn't see here was to disable Kite in Preferences -> Completion and linting -> Enable Kite provider. My lag was on a 50 line file and Spyder was just opened.

sphh commented 2 years ago

@ccordoba12: We celebrated too early :cry: …

After lengthy coding sections the editor still slows down. The longer the session last, the slower the editor gets.

There are a couple of points, which were not so noticeable previously, so your PR #16206 is certainly a massive improvement!

  1. The lag only occurs, if there is at least one warning or error displayed. The editor becomes quick again, after the code was changed to remove the warning or error. (Previously the editor stayed sluggish, even after if the warning or error disappeared.)
  2. The time for this sluggishness to appear is much longer than previously.

My settings from Completion and linting are as follows (only the active items are shown).

Spyder: 5.1.1 with PR #16206 applied (I double checked it).

ccordoba12 commented 2 years ago

@sphh, please wait until 5.1.2 is released and try again. I made other fixes these days that could help with this problem.

sphh commented 2 years ago

I now upgraded to 5.1.2 and used it for some time. The situation has much improved. Thanks!

There is still the problem as described in https://github.com/spyder-ide/spyder/issues/15631#issuecomment-904867497. If the lag occurs, the spyder process loads one core to 100%.

Is there a way to find out, which function call is responsible for that high load?

sphh commented 2 years ago

I just experienced some terrible slow response: Spyder is not responding at all. I now waited for 15+min to be able to save the file, but no luck. Its main process loads one CPU core with 100% and I can literally watch, that it increases the memory consumption.

This happens with may errors displayed left of the line numbers but not yet in the flag area beside the scroll bar.

I don't know, if that is important: I have split the editor pane into two editors and both editors were showing the same file.

ccordoba12 commented 2 years ago

Hey @sphh, please open a new issue about your new problem so we can track it there.

bdwilson24 commented 1 year ago

I was using Spyder 5.2.2 and thought the external HD I was accessing was starting to go out because working from a directory on that drive had become problematic where Spyder would become unresponsive very regularly. I moved the directory to a Sabrent Rocket Nano SSD, thinking that would be faster and more reliable, but ran into the same exact issues. I then updated to Spyder 5.3.3 and I'm still running into the same thing. The .py files are files I have been using for years and are not growing or changing. My computer resources don't get out of control or anything when Spyder starts to become unresponsive. I've tried turning off LSP, but still no luck.