spyder-ide / spyder

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

`Ctrl+Alt+S` shortcut in the editor prevents writing ś in Polish keyboard #20441

Open LeszekRz opened 1 year ago

LeszekRz commented 1 year ago

Description

What steps will reproduce the problem?

Spyder shortcut Save All, which should be Ctrl-Als-S as per documentation for Editor, is actually invoked after pressing Alt-s as well. This is problem for Polish Programmer Windows 11 keyboard option and precludes typing "ś" in editor (only). Upper "ś" i.e. "Ś" works, as well as all remaining Polish letters ("ąćęłńóśżźĄĆĘŁŃÓŚŻŹ"), again except "ś"

Versions

Dependencies

# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  2.0.0 (OK)
cookiecutter >=1.6.0          :  1.7.3 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.1.0 (OK)
IPython >=7.6.0;<8.0.0        :  7.31.1 (OK)
jedi >=0.17.2;<0.19.0         :  0.18.1 (OK)
jellyfish >=0.7               :  0.9.0 (OK)
jsonschema >=3.2.0            :  4.16.0 (OK)
keyring >=17.0.0              :  23.4.0 (OK)
nbconvert >=4.0               :  6.4.4 (OK)
numpydoc >=0.6.0              :  1.4.0 (OK)
paramiko >=2.4.0              :  2.8.1 (OK)
parso >=0.7.0;<0.9.0          :  0.8.3 (OK)
pexpect >=4.4.0               :  4.8.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.9.0 (OK)
pygments >=2.0                :  2.11.2 (OK)
pylint >=2.5.0                :  2.9.6 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.3.2;<1.4.0          :  1.3.3 (OK)
pylsp_black >=1.0.0           :  1.0.0 (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.1.10 (OK)
qtawesome >=1.0.2             :  1.0.3 (OK)
qtconsole >=5.2.1;<5.3.0      :  5.2.2 (OK)
qtpy >=1.5.0                  :  2.2.0 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  63.4.1 (OK)
sphinx >=0.6.6                :  5.0.2 (OK)
spyder_kernels >=2.2.1;<2.3.0 :  2.2.1 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3             :  2.1.6 (OK)
zmq >=17                      :  23.2.0 (OK)

# Optional:
cython >=0.21                 :  0.29.32 (OK)
matplotlib >=2.0.0            :  3.5.2 (OK)
numpy >=1.7                   :  1.21.5 (OK)
pandas >=1.1.1                :  1.4.4 (OK)
scipy >=0.17.0                :  1.9.1 (OK)
sympy >=0.7.3                 :  1.10.1 (OK)
ccordoba12 commented 1 year ago

Hey @LeszekRz, thanks for reporting. To solve this problem you need to go the menu

Tools > Preferences

which will open a dialog like the one below:

imagen

As can be seen, on the left you need to select the entry called Keyboard shortcuts and on the field below on the right you need to write save all. Then you need to double click on the first entry and change it to another shortcut or simply remove it.

Let us know if that works for you.

ccordoba12 commented 1 year ago

@dalthviz, perhaps we should change all our Ctrl+Alt+<letter> shortcuts in Spyder 6 to avoid issues like this in the future. What do you think?

LeszekRz commented 1 year ago

Hi, As you suggested I replaced Editor Save All shortcut from Ctrl+Alt+S to Ctrl+Shift-A finally, and it works. Also, I have some comments:

ccordoba12 commented 1 year ago

I think we can detect if a language is Slavic (i.e. Polish, Czech, Serbian, etc) as described here:

https://stackoverflow.com/a/46772681/438386

and then adjust our shortcuts so users don't encounter this issue.

ccordoba12 commented 1 year ago

When I was trying to reenter the original shortcut to the same one again but from my keyboard (Polish, programmers), I got message that the key sequence is invalid!

That probably happens because your keyboard doesn't allow to introduce the shortcut.

dalthviz commented 1 year ago

@dalthviz, perhaps we should change all our Ctrl+Alt+ shortcuts in Spyder 6 to avoid issues like this in the future. What do you think?

That makes sense :+1: