DIY 및 코드 확장 1: 개발
12692 단어 javascripttypescriptvscode
며칠 전, 나는 내가 다시 3원 표현식으로 진위격을 교환했다는 것을 깨달았다.다시 포맷하고, 문장부호를 바꾸고, 공백을 다시 만드는 등 항상 짜증난다. 그래서 내가 했다
SwapTernary
!만약 당신이 그것을 시험적으로 사용하고 싶다면, 그것은 here - 또는 VS 코드 확장 시장에서 검색하는 것이다.코드만 보려면 check out the repo 할 수도 있습니다.
내 계산에 따르면, 만약 내가 11000명의 개발자를 위해 1인당 5초의 시간을 절약한다면, 이것은 가치 있는 투자가 될 것이다.시범은 다음과 같다.
발전
입문
다행히도 VS 코드 팀은 가이드 프로젝트를 매우 빠른 과정으로 만들었다.내가 마이크로소프트에 말하고자 하는 것은 그들이 더 좋은 문서에 대한 추진이 확실히 어떤 분야에서 이채를 띠고 있다는 것이다.이것은 그중의 하나다.
얼음 사용을 멈추세요.
나는 마이크로소프트에게 더 중요한 말을 한마디 하려고 한다.
ICE 사용 중지
시작하다
그들의 의사
는 매우 도움이 되니, 나는 세심한 관심을 건의한다.나는 여기서 기본 내용을 소개할 것이다.
Your First Extension
부트 확장
팀 사용
으로 NPM 패키지를 제작하여 Hello World 확장을 생성하고 테스트를 완료했습니다.터미널에서 다음 명령을 사용하여 설치할 수 있습니다(NPM을 사용하는 경우).
npm i -g yo generator-code
이 모든 것을 설정하면 코드를 저장하려는 폴더에서 실행됩니다 SwapTernary
.이것은 좋은 시작 템플릿 선택을 제공합니다.
❯ New Extension (TypeScript)
New Extension (JavaScript)
New Color Theme
New Language Support
New Code Snippets
New Keymap
New Extension Pack
New Language Pack (Localization)
나는 첫 번째 옵션을 선택했다.이름, 설명, 리셋 초기화 등도 입력할 수 있습니다. (enter 키를 누르면 기본값으로 들어갑니다. - 언제든지 나중에 내용을 변경할 수 있습니다.)
설치가 완료되면 코드에서 열기yo code
.F5를 눌러 디버거를 시작합니다.확장자가 설치된 새 코드 창이 나타납니다.
그런 다음 명령 팔레트(Mac:⇧⌘P、 Windows:^⇧P) 그리고 Hello World를 입력하거나 마지막 단계에서 당신이 지어준 이름을 입력하세요.너는 리턴 키를 누르면 우호적인 팝업 창을 볼 수 있을 것이다.
yeoman
코드를 작성합시다.
삼원조를 교환하려면 선택한 텍스트를 편집해야 한다는 것을 알고 있습니다.팀은 이미 우리를 위해
를 작성하여 우리에게 사용하도록 제공하였다.src/extension.ts
어때요?이것은 매우 희망적인 것 같다.나에게 있어서 그것은 완벽하다. - 선택한 텍스트의 확장을 반전시킬 수 있다.다음 내용은 참고용으로만 제공됩니다.
// extension.ts
export function activate(context: vscode.ExtensionContext) {
const disposable = vscode.commands.registerCommand('extension.reverseWord', function () {
// Get the active text editor
const editor = vscode.window.activeTextEditor;
if (editor) {
const { document, selection } = editor;
// Get the word within the selection
const word = document.getText(selection);
const reversed = word.split('').reverse().join('');
editor.edit(editBuilder => {
editBuilder.replace(selection, reversed);
});
}
});
context.subscriptions.push(disposable);
}
여기에는 유용한 정보가 매우 많다.
npm i -g yo generator-code
❯ New Extension (TypeScript)
New Extension (JavaScript)
New Color Theme
New Language Support
New Code Snippets
New Keymap
New Extension Pack
New Language Pack (Localization)
// extension.ts
export function activate(context: vscode.ExtensionContext) {
const disposable = vscode.commands.registerCommand('extension.reverseWord', function () {
// Get the active text editor
const editor = vscode.window.activeTextEditor;
if (editor) {
const { document, selection } = editor;
// Get the word within the selection
const word = document.getText(selection);
const reversed = word.split('').reverse().join('');
editor.edit(editBuilder => {
editBuilder.replace(selection, reversed);
});
}
});
context.subscriptions.push(disposable);
}
document-editing-sample
라는 함수에 포장해야 합니다. 이 함수는 편집기 상하문을 매개 변수로 합니다.activate
명령을 통해 변수로 등록하고 저장해야 합니다.registerCommand
그룹으로 보내야 합니다. 그 중에서 VS 코드 관리 활동이 확장됩니다.context.subscriptions
는 우리의 접점이다.문자열 하나와 함수 두 개의 매개 변수가 있습니다.우리 먼저 줄을 이야기합시다.명령 문자열
명령 문자열의 형식은
registerCommand
입니다.저는 <publisher>.<commandName>
입니다.출판사는 너야.Azure DevOps 계정이 없으면 지금 변경하지 마십시오.우리는 다음 글에서 어떻게 출판사를 만드는지 소개할 것이다.
a
256hz.swapTernary
를 입력합니다.간단한 알파벳 문자열을 사용합니다.이제 commandName
및 package.json
에 두 번 전체 명령 문자열을 추가합니다.// package.json
...
"activationEvents": [
"onCommand:256hz.swapTernary"
],
...
"contributes": {
"commands": [
{
"command": "256hz.swapTernary",
"title": "Swap Ternary"
}
]
},
명령 문자열이 모든 세 위치에서 동일한지 확인하십시오. 그렇지 않으면 아무것도 작용하지 않습니다.만약 네가 나처럼 명령의 이름을 50번 변경한다면, 이 점은 특히 정확하다.위의
activationEvents
필드는 명령 팔레트에 표시되는 우호적인 이름입니다.키 바인딩을 추가할 수도 있습니다. 예는 을 참조하십시오.
my package.json
사용자 정의 함수
지금은
contributes.commands
부분입니다.어, 기능.이것은 당신의 명령의 입구점입니다. const editor = vscode.window.activeTextEditor;
이것은 우리로 하여금 활동 편집기 환경에 접근할 수 있게 한다. if (editor) {
const { document, selection } = editor;
우리의 편집기 상하문에는 title
과 fun
이 있다.차갑다참고로 이것은 원시 텍스트가 아닙니다. - 그것들은 document
과 selection
류의 실례입니다.모든 것은 특수한 방법과 속성이 있다. const word = document.getText(selection);
이것이 바로 우리가 원시 텍스트를 얻는 방식이다.Document
에는 Selection
의 시작과 끝 위치를 가리키는 바늘이 포함되어 있으며, 문서는 이 바늘을 가져와 그 사이의 내용을 제공합니다.이제 텍스트에서 모든 논리를 실행할 수 있습니다. 확장된 모든 작업은 이 단계에서 진행됩니다.이 예에서는 텍스트를 반전합니다.
const reversed = word.split('').reverse().join('');
그리고 우리는 활동 편집기의 Selection
방법을 사용하여 기존의 것을 대체한다.Document
리셋을 받아들여 edit
라고 불리는 내용을 전입한다. editor.edit(editBuilder => {
editBuilder.replace(selection, reversed);
});
edit
두 개의 매개 변수를 받아들인다. aeditBuilder
와 우리의 새로운 원시 텍스트.editBuilder.replace
이미 잘 됐어요. - 위Selection
에서 해구했어요.그래서 당신이 지금 해야 할 일은 텍스트를 처리하고 두 번째 매개 변수로 전달하는 것입니다.확장을 위한 일련의 문자열 작업이 필요합니다.
selection
문자가 문법으로 잘못 해석되지 않습니다.이게 다 발전을 위한 거야!이제 확장을 발표합시다.섹션 2로 이동합니다.
표지 사진: check out the repo
Reference
이 문제에 관하여(DIY 및 코드 확장 1: 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/256hz/diy-vs-code-extension-1-development-1km1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)