'How to get the name of selected files in source control via VSCode extension API?

I can manage to get one file name of source control with following code. The file name is from the line 'await vscode.commands.executeCommand('copyFilePath');' I can get the file name by reading the clipboard text. But when I select multiple files, still the first file name is available. Is it possible to get all files' name?

  let copySelectedFileName = vscode.commands.registerCommand('folder-operations.copySelectedFileName', async (folder) => {

    let newUri = folder;  // folder will be undefined when triggered by keybinding
    console.log('folder'+folder);
     if (!folder) {                       // so triggered by a keybinding
       await vscode.commands.executeCommand('copyFilePath');
     }
     console.log(newUri);
  });

I try another way: add one command to SCM as below shown.

enter image description here

I use parameter in command to retrieve the selected files' name. But the size of the array is 1 even if I choose more than 2 files.

let copySelectedFileNameSCM = vscode.commands.registerCommand('testSource.copySelectedFileNameSCM', async (...file) => {
        console.log('file:'+file);
      });


Solution 1:[1]

Add your command to this context menu in your package.json:

    "contributes": {

        "menus": {

            "scm/resourceState/context": [
                {
                    "command": "testSource.copySelectedFileNameSCM"
                }
            ]
        }
    }

It looks like you were adding it to the wrong menu. That may be the only menu that will return selected files.

Then in your command:

let copySelectedFileNameSCM = vscode.commands.registerCommand('testSource.copySelectedFileNameSCM', async (...file) => {
   console.log('file:'+file);
});

file will be an array of all selected items in the scm view when you trigger a context menu on one or more selected files.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1