spyder-ide / spyder

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

Prevent unfolding docstrings and functions on auto-format on save #18620

Open ubaldot opened 2 years ago

ubaldot commented 2 years ago

Issue Report Checklist

Problem Description

During my work I use to fold functions and docstrings for better code reading, but every time I save everything got unfolded. Is it a normal behavior? Is there a way to prevent this behavior?

It is very annoying that you are focused on a part of code, and then you save and your current view got completely changed because of the unfolding of... everything.

What steps reproduce the problem?

Write any function/docstring in the editor and fold it. Do some work and save. You will see that everything that was folded got automatically unfolded.

What is the expected output? What do you see instead?

What was folded remain folded after having saved the file.

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.3.0 (OK)
jedi >=0.17.2;<0.19.0         :  0.18.1 (OK)
jsonschema >=3.2.0            :  4.4.0 (OK)
keyring >=17.0.0              :  23.4.0 (OK)
nbconvert >=4.0               :  6.4.4 (OK)
numpydoc >=0.6.0              :  1.2 (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.10.0        :  2.9.6 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.2.2;<1.3.0          :  1.2.4 (OK)
pylsp_black >=1.0.0           :  None (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.1.0             :  5.3.0 (OK)
qtpy >=1.5.0                  :  2.0.1 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  61.2.0 (OK)
sphinx >=0.6.6                :  4.4.0 (OK)
spyder_kernels >=2.1.1;<2.2.0 :  2.1.3 (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                      :  22.3.0 (OK)

# Optional:
cython >=0.21                 :  0.29.30 (OK)
matplotlib >=2.0.0            :  3.5.1 (OK)
numpy >=1.7                   :  1.21.5 (OK)
pandas >=1.1.1                :  1.4.2 (OK)
scipy >=0.17.0                :  1.7.3 (OK)
sympy >=0.7.3                 :  1.10.1 (OK)
ccordoba12 commented 2 years ago

Hey @Ubaldo79, thanks for reporting. Do you have the Autoformat on save option enabled?

imagen

That could be the cause of your problem.

ubaldot commented 2 years ago

Hello Carlos, many thanks for your reply. Yes, I actually have it selected and auto-formatting on save is something that I actually want.

What I would not want is the automatically unfolding of the folded parts, i.e. I want the code to be formatted on save, but please don’t unfold what is folded. :)

ccordoba12 commented 2 years ago

Yes, I actually have it selected and auto-formatting on save is something that I actually want.

Ok, I imagine that.

I want the code to be formatted on save, but please don’t unfold what is folded. :)

Unfortunately, this is not easy to do because it requires several important improvements in the editor. We'll try to address it next year.

ubaldot commented 2 years ago

Very good to hear! I am a very aggressive Spyder user and I absolutely don't want to change editor! :)