This extension can be formatted and processed to copy text to the clipboard.
It has the following formatting features
- Line numbers can be added.
- Include file names and absolute or relative paths in headers and footers.
- Copying without blank lines.
- Remove the minimum indentation in the copied area.
- You can trim the beginning or end of a line.
- You can fill spaces to the end of a line.
Install
Copy Format Code - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=SatoshiYamamoto.vscode-copy-format-code
GitHub
standard-software/vscode-copy-format-code
https://github.com/standard-software/vscode-copy-format-code
standard.software.net@gmail.com
Japanese / English
Usage
Command
[ Copy Format Code : Copy : Format 1 ]
[ Copy Format Code : Copy : Format 2 ]
[ Copy Format Code : Copy : Format 3 ]
[ Copy Format Code : Select Format... ]
Command |
Default Function |
Default Key Windows |
Default Key Mac |
Copy : Format 1 |
Markdown LineNumber : Cut MinIndent |
Alt + Ctrl + C |
Opt + Ctrl + C |
Copy : Format 2 |
Markdown : Cut MinIndent |
Alt + Shift + C |
Opt + Shift + C |
Copy : Format 3 |
Header RelativePath LineNumber : Cut MinIndent |
Alt + Ctrl + Shift + C |
Opt + Ctrl + Shift + C |
Selecting multiple selections and this command will copy them to the clipboard according to your settings.
To change the settings, edit the setting.json.
Default Setting ./SETTING_SAMPLE.md
If you specify multiple selections and select this command, you can choose a function according to the menu settings below.
The text formatted with the content of the selected items is copied to the clipboard.
Default Setting
- Copy Format Code : Select Format ...
- Markdown >>
- Markdown
- Markdown : Cut MinIndent
- Markdown : Delete BlankLine
- Markdown : Cut MinIndent and Delete BlankLine
- Markdown LineNumber >>
- Markdown LineNumber
- Markdown LineNumber : Cut MinIndent
- Markdown LineNumber : Delete BlankLine
- Markdown LineNumber : Cut MinIndent and Delete BlankLine
- Header RelativePath >>
- Header RelativePath
- Header RelativePath : Cut MinIndent
- Header RelativePath : Delete BlankLine
- Header RelativePath : Cut MinIndent and Delete BlankLine
- Header RelativePath LineNumber >>
- Header RelativePath LineNumber
- Header RelativePath LineNumber : Cut MinIndent
- Header RelativePath LineNumber : Delete BlankLine
- Header RelativePath LineNumber : Cut MinIndent and Delete BlankLine
- Other >>
- Delete Indent >>
- Markdown : Delete Indent
- Markdown LineNumber : Delete Indent
- Header RelativePath : Delete Indent
- Header RelativePath LineNumber : Delete Indent
- Fill Spaces EndOfLine >>
- Markdown : Fill Spaces EndOfLine
- Markdown LineNumber : Fill Spaces EndOfLine
- Header RelativePath : Fill Spaces EndOfLine
- Header RelativePath LineNumber : Fill Spaces EndOfLine
- Delete Indent and Fill Spaces EndOfLine >>
- Markdown : Delete Indent and Fill Spaces EndOfLine
- Markdown LineNumber : Delete Indent and Fill Spaces EndOfLine
- Header RelativePath : Delete Indent and Fill Spaces EndOfLine
- Header RelativePath LineNumber : Delete Indent and Fill Spaces EndOfLine
Output Sample
Markdown
```txt
// TestFile/
// test.txt : 3-17
item 1
item 1-1
item 1-1-1
item 1-1-2
item 1-2
item 2
item 2-1
item 2-2
```
Markdown LineNumber : Cut MinIndent
```txt
// TestFile/
// test.txt
03:
04: item 1
05:
06:
07: item 1-1
08: item 1-1-1
09: item 1-1-2
10: item 1-2
11:
12:
13:
14: item 2
15: item 2-1
16: item 2-2
17:
```
TestFile/
test.txt : 3-17
item 1
item 1-1
item 1-1-1
item 1-1-2
item 1-2
item 2
item 2-1
item 2-2
Header RelativePath LineNumber : Cut MinIndent and Delete BlankLine
TestFile/
test.txt
04: item 1
07: item 1-1
08: item 1-1-1
09: item 1-1-2
10: item 1-2
14: item 2
15: item 2-1
16: item 2-2
Setting
settings.json can be found in the following file.
Default Setting ./SETTING_SAMPLE.md
Setting Specifications
{
"CopyFormatCode.CopyFormat1": {
"label": "Markdown LineNumber : Cut MinIndent",
"format": {
"header": "```%FileExt%\n// %FolderPathRelativeProjectSlash%/\n// %FileName%",
"body": "%NumberFile%: %LineCutMinIndent%",
"bodySeparator": ":",
"footer": "```"
}
},
"CopyFormatCode.CopyFormat2": {
"label": "Markdown : Cut MinIndent",
"format": {
"header": "```%FileExt%\n// %FolderPathRelativeProjectSlash%/\n// %FileName% : %NumberStart%-%NumberEnd%",
"body": "%LineCutMinIndent%",
"bodySeparator": ":",
"footer": "```"
}
},
"CopyFormatCode.CopyFormat3": {
"label": "Header RelativePath LineNumber : Cut MinIndent",
"format": {
"header": "%FolderPathRelativeProjectSlash%/\n%FileName%",
"body": "%NumberFile%: %LineCutMinIndent%",
"bodySeparator": ""
}
},
"CopyFormatCode.SelectFormatMenu": [
{
"label": "Markdown",
"format": {
"header": "```%FileExt%\n// %FolderPathRelativeProjectSlash%/\n// %FileName% : %NumberStart%-%NumberEnd%",
"body": "%Line%",
"bodySeparator": ":",
"footer": "```"
}
},
{
"label": "Markdown LineNumber : Cut MinIndent",
"format": {
"header": "```%FileExt%\n// %FolderPathRelativeProjectSlash%/\n// %FileName%",
"body": "%NumberFile%: %LineCutMinIndent%",
"bodySeparator": ":",
"footer": "```"
}
},
{
"label": "Header RelativePath : Delete BlankLine",
"format": {
"header": "%FolderPathRelativeProjectSlash%/\n%FileName% : %NumberStart%-%NumberEnd%",
"body": "%SkipBlankLine%%Line%",
"bodySeparator": ""
}
},
{
"label": "Header RelativePath LineNumber : Cut MinIndent and Delete BlankLine",
"format": {
"header": "%FolderPathRelativeProjectSlash%/\n%FileName%",
"body": "%NumberFile%: %LineCutMinIndent%%SkipBlankLine%",
"bodySeparator": ""
}
}
],
}
Format Text |
value |
note |
%FilePath% |
C:\workspace\project\TestFile\test.txt |
Full path of a file |
%FilePathSlash% |
C:/workspace/project/TestFile/test.txt |
Full path of a file convert \ to / for Windows |
%FileName% |
test.txt |
File name |
%FileNameWithoutExt% |
test |
File name without ext |
%FileExt% |
txt |
File ext |
|
|
|
%FolderPath% |
C:\workspace\project\TestFile |
Folder path |
%FolderPathSlash% |
C:/workspace/project/TestFile |
Folder path convert \ to / for Windows |
%FolderName% |
TestFile |
Folder name |
|
|
|
%FilePathRelative% |
TestFile\test.txt |
Relative path of the file |
%FilePathRelativeSlash% |
TestFile/test.txt |
Relative path of the file convert \ to / for Windows |
%FolderPathRelative% |
TestFile |
Relative path of the folder |
%FolderPathRelativeSlash% |
TestFile |
Relative path of the folder convert \ to / for Windows |
|
|
|
%FilePathRelativeProject% |
project\TestFile\test.txt |
Relative path to the file containing the project name |
%FilePathRelativeProjectSlash% |
project/TestFile/test.txt |
Relative path to the file containing the project name convert \ to / for Windows |
%FolderPathRelativeProject% |
project\TestFile |
Relative path to the folder containing the project name |
%FolderPathRelativeProjectSlash% |
project/TestFile |
Relative path to the folder containing the project name convert \ to / for Windows |
|
|
|
%ProjectFolderPath% |
C:\workspace\project\TestFile |
Project Folder Path |
%ProjectFolderPathSlash% |
C:/workspace/project/TestFile |
Project Folder Path convert \ to / for Windows |
%ProjectName% |
TestFile |
Project file name |
|
|
|
%NumberStart% |
3 |
First line number of the selection |
%NumberStartZeroPad% |
03 |
First line number of the selection, padded with leading zeros |
%NumberEnd% |
17 |
End line number of the selection |
|
|
|
format body
Format Text |
note |
|
%NumberStart1% |
Line numbers starting from 1 |
|
%NumberFile% |
File line number |
|
|
|
|
%Line% |
Text of line |
|
%LineCutMinIndent% |
Text of line with minimum indentation cut off |
|
%LineTrim% |
Text of line with front and back trimmed |
|
%LineTrimFirst% |
Text of line with front trimmed |
|
%LineTrimLast% |
Text of line with back trimmed |
|
|
|
|
%SpaceMinIndent% |
Space for minimum indent (Tabs are not considered) |
|
%SpacePadEnd% |
Set to fill in the back of the line with spaces to align (supports Japanese double-byte character lengths.) |
|
|
|
|
%SkipBlankLine% |
Set to skip lines that would be blank if trimmed. |
|
|
|
|
% |
% |
|
\ |
\ |
|
|
|
|
format bodySeparator
Setting up lines connecting multiple selections
value |
note |
EmptyString |
Line break |
String of colons, etc. |
Strings and line breaks |
No setting (undefined) |
Multiple selections are connected without delimitation |
|
|
Same as format header setting
Separator
{
"label": "MoreFunction",
"separator": true
},
SubMenu
{
"label": "SubMenu",
"items": [
{
...
},
{
...
}
]
}
Change log
./CHANGELOG.md