베스코드로 스니 펫 만들기
확장을 표준으로 준비하거나 설치할 때 사용 가능
이용자 스스로도 애완동물을 만들 수 있기 때문에 제가 설명해 드리겠습니다.
예비 서류를 준비하다.
파일-사용자 설정-사용자 신분을 선택하고 등록하고 싶은 언어의 json 파일을 선택하면 초기에 다음 파일을 열 수 있습니다.
javascript.json
{
// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
}
샘플에도 기재가 있으니 샘플에 대한 코멘트를 빼고 실제 서류가 어떻게 돌아가는지 확인해보자.javascript.json
{
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
}
}
주석 출력을 저장한 후 자바스크립트 파일에 입력log
한 다음tab키를 누르면 다음과 같다.sample.js
console.log('');
펼친 커서의 위치를 json 파일로 작성한 $1
위치로 이동합니다.텍스트를 입력한 후tab키를 누르면
$2
위치로 이동합니다.편리한 것은 템플릿 문장을 입력할 수 있을 뿐만 아니라 커서도 입력 위치로 이동할 수 있고 변수로 파일 이름과 날짜를 입력할 수 있으며 정규 표현식으로 문자열을 가공할 수 있다.
구문
"スニペット名":{
"prefix": "短縮語", // 複数の場合は["a", "b"]のように入力
"body": "展開するコード", // 複数行に展開したい場合は["1行目", "2行目", "3行目"...]
"description": "説明文" // オプション。なくても構わない。
}
Suni 애완동물 이름은 유일한 이름을 설정합니다.샘플과 비교하면 이해하기 쉬울 거예요.
영구, 줄임말, 설명문은 따로 설명되지 않았다.
줄임말은 여러 개 등록할 수 있다.
전개된 코드에 관해서는 각양각색의 기능이 있으니 제가 설명해 드리겠습니다.
기본 전개
대부분의 스니 애완동물은 기본적으로 전개가 충분하다.
샘플을 약간 개조해 보세요. 아래와 같습니다.
"Print to console2": {
"prefix": "log2",
"body": [
"console.log('$1');",
"console.log('$2');",
"$0"
],
"description": "2回ログを表示する"
}
$1
,$2
는 스니 애완동물이 펼친 후 커서의 위치다.$1
의 위치를 입력한 후tab을 누르면 다음$2
으로 이동합니다.$0
는 특별한 마지막 자리다.이것
$N
을 제표위라고 한다.탭 위치 정보
시계 위치에 관해서는 많은 기능이 있다.
기본값, 옵션, 파일 이름 등 변수, 정규 표현식 등.
기본값
탭 위치에서 기본값을 설정할 수 있습니다.
${N:デフォルト値}
와 같이 기재한다.cpp.json
"for loop":{
"prefix": "for2",
"body": [
"for(${1: size_t} ${2: index} = 0; $2 < ${3: size}; ++$2){",
" $0"
"}"
],
"description": "C++のforループ"
}
당신은 상술한 샘플 중 여러 개$2
가 있다는 것을 알아차렸습니까?여러 개의 같은 테이블 위치가 있을 수 있다.
또 기본값인 index는 최초
$2
만 기재됐고, 펼친 후 남은 $2
도 기본값인 index를 입력했다.확장 예
//for2 -> tab
for( size_t index = 0; index < size; ++ index){
}
옵션
탭 위치도 옵션에서 선택할 수 있습니다.
${N|option1,option2,...optionN|}
와 같이 기재한다.cpp.json
"tmplate class": {
"prefix": "tmpc",
"body": [
"template<${1|typename, class|} T>",
"class ${2:tmp_class}{",
" $0",
"};"
]
},
확장 예
변량
파일 이름이나 현재 날짜를 입력하려면 변수를 사용할 수도 있습니다.
$変数名
와 같이 기재한다.변수 이름 일람은 아래와 같다.
TM_SELECTED_TEXT
현재 선택한 텍스트TM_CURRENT_LINE
현재 행의 내용TM_CURRENT_WORD
현재 커서 위치의 단어(또는 공백)TM_LINE_INDEX
첫 번째 행위 0행의 현재 행 번호TM_LINE_NUMBER
첫 번째 행의 현재 행 번호TM_FILENAME
현재 문서의 파일 이름TM_FILENAME_BASE
현재 문서의 파일 이름(확장자 없음)TM_DIRECTORY
현재 문서의 디렉토리TM_FILEPATH
현재 문서의 모든 파일 경로RELATIVE_FILEPATH
현재 문서의 상대적(열린 작업공간 또는 폴더의 경우) 파일 경로CLIPBOARD
클립보드 내용WORKSPACE_NAME
열린 작업공간 또는 폴더의 이름WORKSPACE_FOLDER
열린 작업공간 또는 폴더 경로CURRENT_YEAR
현재 연도CURRENT_YEAR_SHORT
현재 연도의 하위 2위CURRENT_MONTH
두 자릿수의 월(예'02')CURRENT_MONTH_NAME
월의 공식 이름(예: "Jully")CURRENT_MONTH_NAME_SHORT
월의 약칭(예: "Jull")CURRENT_DATE
두 자릿수 날짜(예: "08")CURRENT_DAY_NAME
요일(예를 들어 "Monday")CURRENT_DAY_NAME_SHORT
요일의 약칭(예를 들어 "Mon")CURRENT_HOUR
24시간 디스플레이의 현재 시간CURRENT_MINUTE
현재 섹션을 두 자릿수로 표시CURRENT_SECOND
현재 초CURRENT_SECONDS_UNIX
Unix 시대의 초 RANDOM
소수점 6자리의 무작위 수RANDOM_HEX
16진수 6자리 랜덤 UUID
버전 4의 UUIDBLOCK_COMMENT_START
출력 예: C++/*
또는 HTML<!--
BLOCK_COMMENT_END
출력 예: C++*/
또는 HTML-->
LINE_COMMENT
출력 예: C++시//
"day":{
"prefix": "day",
"body": "$CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE-$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
"description": "YYYY/MM/DD-HH:MM:SS"
}
sample2022/03/13-16:57:11
정규 표현식
변수에 대해 정규 표현식 처리를 할 수 있다.
${変数/正規表現/置換/正規表現オプション}
sample"#name": {
"prefix": "#name",
"body": "${TM_FILENAME/(?:(\\w+)(\\.)?)/${1:/upcase}${2:+_}/gi}"
}
header.sample.hppHEADER_SAMPLE_HPP
header.sample.hpp 파일에서 상기 sni 애완동물을 펼치는 경우정규 표현식과 정규 표현식 옵션은
javascript
의 정규 표현식을 검사하십시오.교체된 스니프만의 기능
$1...
등은 대문자화 등 옵션이 있다.상기 샘플 중
${1: /upcase}
부분/upcase
을 선택하세요.항목 교체 옵션 목록
/upcase
대문자 /downcase
소문자/capitalize
문자의 시작을 대문자로 설정합니다/camelcase
낙타 껍질 사용/pascalcase
파스카 케이스 사용+ string
정규 표현식이 포획한 부분이 공백이 아니라면string? A: B
정규 표현식이 포획한 부분이 공백이 아니라면 A, 공백이면 B- string
정규 표현식에서 포획된 부분이 공백이면stringstring
정규 표현식에서 포획된 부분이 공백이면string단축키 등
변수 목록에 현재 선택 범위가 있는 것을 기억하십니까?
선택 범위에 sni 애완동물을 적용할 때 단축 이름을 입력할 수 없습니다.
명령 트레이에서 선택
선택 범위에 sni애완동물을 적용하는 방법은 두 가지가 있는데 하나는 명령 트레이에서 sni애완동물을 삽입하는 방법이다.
Ctrl+Shift+P
→수니 펫 삽입→상응하는 수니 펫 선택단축키 적용 사용
또 하나는 단축키에 분배하는 방법이다.
이것은 아까 json 파일과 다른 json 파일입니다.
파일 - 사용자 설정 - 키보드 단축키 - 오른쪽 위 모서리 키보드 단축키 열기 아이콘 을 클릭합니다.
이렇게 하면 다음 json 파일을 열 수 있습니다.
keybindings.json
// 既定値を上書きするには、このファイル内にキー バインドを挿入します
[]
거기에 단축키로 추가합니다.keybindings.json
[{
"key": "cmd+k 1",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "`$TM_SELECTED_TEXT`"
}
}]
언어의 json 파일에 sni 애완동물을 등록했습니다. 이 애완동물을 호출한 경우 다음과 같습니다.keybindings.json
[{
"key": "cmd+k 1",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"langId": "cpp",
"name": "tmplate class"
}
}]
cpp.단축키 cmd+k, 1로 json이 정의한templateclass라는 sni 애완동물을 삽입합니다.기타
스티브 애완동물도 시장 광장에서 확장 기능으로 공개할 수 있다.
Reference
이 문제에 관하여(베스코드로 스니 펫 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yhsi/articles/80c8a030c2761d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)