vscode-duplicate icon indicating copy to clipboard operation
vscode-duplicate copied to clipboard

Feature: Preserve file extension when duplicating files

Open Epigene opened this issue 7 years ago • 4 comments

VSCode Version: 1.20.1 OS Version: macOS High Sierra 10.13.2 Settings: https://gist.github.com/Epigene/a65bbf5e88d847b5e0622d42019fb678 Wrongly opened issue in VSC repo: https://github.com/Microsoft/vscode/issues/44254

Needed behavior: When duplicating a file it would be nice to have it append the "-copy" just before the file extension.

Current behavior: Duplication overrides file extension with "-copy".

Discussion: As can be seen in the example image below, I choose to duplicate a file named "calendar.apib" and the default duplicate file-name is "calendar-copy" where "calendar-copy.apib" would be much more useful. bad_dup

Epigene avatar Feb 23 '18 10:02 Epigene

Hello, @Epigene,

Sorry for delay. By default, the extension remains unchanged.

  • Original: index.d.ts
  • Popup with input: index.d (.d, because we don't know how many points is an extension)
  • Saved file: index.d.ts

But if the extension does not match the original one, it will be changed:

  • Original: index.d.ts
  • Popup with input: index.dindex.d.ts2
  • Saved file: index.d.ts2

Do you want the file extension to be displayed completely always?

mrmlnc avatar Apr 07 '18 11:04 mrmlnc

I never realised that is the behaviour. 😅 A config option that toggles whether the file extension is displayed would be nice.

Epigene avatar Apr 09 '18 06:04 Epigene

Hi, thanks for the extension! It looks like duplication doesn't work as expected if the filename contains more than one period (which is not an uncommon idiom in the *nix world).

How to reproduce:

  1. Create foo.dev.json
  2. Hit Duplicate file or directory – the new filename is displayed as foo-copy (ie minus the .dev.json suffix).
  3. Enter foo.test

Expected filename: foo.test.json Actual filename: foo.test

btisdall avatar Jun 26 '18 11:06 btisdall

IMO a better option (if possible with Code APIs) would be to preserve extension(s) while selecting the filename part in the prompt, i. e. for file foo.d.ts a prompt [foo].d.ts ([] denoting a selection) is presented, from where user can:

  • rename file while keeping extension by just typing new name,
  • add a suffix before the extension ( and type the suffix),
  • change the extension (End Ctrl+Backspace and type new extension),
  • finally, rename file completely (Ctrl+A and type new filename).

I can work out a PR if this kind of functionality is okay with you.

notpushkin avatar Mar 23 '20 21:03 notpushkin