Microsoft/TypeScript

Rename JSDoc param tag quick fix should generate more minimal edit

Open

#47 922 ouverte le 16 févr. 2022

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)TypeScript (6 726 forks)batch import
Experience EnhancementHelp WantedSuggestion

Métriques du dépôt

Stars
 (48 455 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (9 PRs mergées en 30 j)

Description

Bug Report

🔎 Search Terms

  • quick fix
  • code action
  • jsdoc

🕗 Version & Regression Information

4.7.0-dev.20220216

This is new behavior and not a regression

💻 Repo

  1. For the TypeScript:
/**
 * @param c
 * @param d
 */
function add(a, b) { }
  1. Trigger the rename @param tag quick fix on c inside the JSDoc.

🙁 Actual behavior

In VS Code, the cursor shifts to the start of the doc block. This is because the returned code action regenerates the entire start of the JSDoc block

 {
        "fixName": "renameUnmatchedParameter",
        "description": "Rename '@param' tag name 'c' to 'a'",
        "changes": [
            {
                "fileName": "/Users/matb/projects/san/index.ts",
                "textChanges": [
                    {
                        "start": {
                            "line": 1,
                            "offset": 1
                        },
                        "end": {
                            "line": 5,
                            "offset": 1
                        },
                        "newText": ""
                    },
                    {
                        "start": {
                            "line": 5,
                            "offset": 1
                        },
                        "end": {
                            "line": 5,
                            "offset": 1
                        },
                        "newText": "/**\n * @param a\n * @param d\n */\n"
                    }
                ]
            }
        ]
    }

🙂 Expected behavior

Instead we should try to generate a more minimal edit so that editors can better preserve user's cursor position

Guide contributeur