atom-community / atom-community/ide-python

Automatic code formatting duplicates lines and blocks of code

Ouverte
#384 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
upstream issue
Langage dominant
JavaScript
Étoiles
238
Forks
40
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

There seems to be a bug in automatic code formatting. The bug is triggered by opening the same code file into multiple tabs in separate panes. Having two tabs (of the same file) will cause the bug to occur once, three tabs will cause it to repeat twice, and so on.

I have been using the `ide-python` package only for a couple days, so I don't know about the specifics. This bug is present in both versions `1.9.4` and `1.9.5` at least. I turned off all checkboxes in the module's settings and restarted Atom, but this bug will still persist. I am using the "format on save" option.

Also, the file status is "modified" again after I **save** the file and automatic formatting is applied, so the file has to be manually saved twice. I don't think it should be like this.

### Example 1

**Original code**

```python
def foo():
pass

def bar():
pass
```

**Result after automating formatting**

```python
def foo():
pass

def bar():
pass
pass

```

Here the keyword `pass` is duplicated inside function `bar`.

### Example 2

**Original code**

```python
def foo():
pass
def bar():
pass

```

**Result after automating formatting**

```python
def foo():
pass

def bar():
pass
def bar():
pass

```

Here the whole function block for `bar` is duplicated. Formatting is also messed up.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire le problème dans Atom avec ide-python 1.9.4 ou 1.9.5, le formatage à l’enregistrement activé et le même fichier Python ouvert dans plusieurs volets. Suivez le chemin du formatage automatique et de l’enregistrement afin de déterminer pourquoi chaque onglet supplémentaire duplique le contenu ; le travail est terminé lorsque le formatage ne duplique plus les lignes ou les blocs et que le fichier ne reste pas modifié après un seul enregistrement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, python
Domaine
tooling
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.