VSCode/Vue.js로 구성 요소의 자동 가져오기 플러그인 (확장 기능) 을 만들었습니다.
8395 단어 JavaScriptTypeScriptVue.jsVSCode
입문
VSCode에서 vue로 개발할 때 구성 요소의 import를 기술하는 것이 번거롭기 때문에 import가 삽입된 플러그인을 만들어 보았습니다.
핑계부터 대볼게요.
너무 좋아요!그런 정신으로 만들었기 때문에 변수명 등 갖가지 구조가 가득하다.
감상
영어 문서만 최종적으로 vscode의 d.ts에서 상상했던 곳이 있어서 힘들었어요.
모형 템플릿
vscode-generator-code를 사용하여 데이텀을 생성합니다.사용법 Qiita에도 기사가 있으니 저쪽을 보시는 게 좋을 것 같습니다.이 단계에서 "오, 아주 간단한 인상을 준다."
package.json
플러그인의 설정은 패키지입니다.json에 쓰다.요점밖에 없어요.
contributes.configuration
사용자 설정을 정의합니다.이번에는 루트 디렉터리를 설정할 수 있기 때문에 vuejsAutoImport.string 형식을 사용하여 루트 디렉터리를 정의합니다.contributes.commands
이 플러그인의 명령을 등록합니다.ctrl+shift+p에서 기능을 사용할 수 있습니다.contributes.menus.editor/context
컨텍스트 메뉴에 명령을 추가합니다.contributes.commands에서 설정한 제목을 상하문 메뉴에 추가합니다.
contributes.keybindings
단축키에 대한 명령을 지정합니다.마찬가지로 contributes입니다.commands에서 설정한 제목을 상하문 메뉴에 추가합니다.
참고로 윈도우즈와 맥은 각각 설정할 수 있을 것 같지만 맥이 없어서 테스트가 없습니다.잘 움직여.
명령 등록
extension.ts의activate 방법은 vscode가 시작될 때 실행됩니다.
따라서 vuejsAutoImport 명령을 등록합니다.
export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(
vscode.commands.registerCommand('extension.vuejsAutoImport', async () => {...
가져오기 문장 삽입
흐르다
1. 현재 선택한 텍스트를 가져옵니다.
2. 이 텍스트 grep 파일 이름을 사용합니다.
3. import 문장과components:{}에 추가합니다.
1. 현재 선택한 텍스트를 가져옵니다.
vscode.TextDocument.getWordRangeAtPosition()에서 현재 직위에서 선택한 텍스트를 가져옵니다.두 번째 매개변수에서 정규 표현식을 지정할 수 있습니다.<>안에 있는 텍스트를 원하기 때문에 다음과 같은 느낌이 있습니다.
/<.+?-?.+?(>| )/
2. 이 텍스트 grep 파일 이름을 사용합니다.
grep 사용globby, 파일 이름의 쓰기 방법이 많기 때문에 파일 이름의 변환 사용voca.
※ 파일 이름 변환
파일 이름이 어떤 상황으로 쓰였는지 모르기 때문에 있을 수 있는 상황부터 핥아보자.
const pathList: string[] = await grepAsync([
path.join(rootPath, `**/${voca.camelCase(text)}.vue`),
path.join(rootPath, `**/${voca.kebabCase(text)}.vue`),
path.join(rootPath, `**/${voca.capitalize(text)}.vue`)
])
3. import 문장과components:{}에 추가합니다.
참고로 같은 이름의 파일이 여러 개 있으면 선택할 수 있습니다.
제어는 다음과 같습니다.
if (pathList.length === 1) {
importCore(pathList[0])
} else if (pathList.length > 1) {
vscode.window.showQuickPick(pathList).then(selectedPath => {
importCore(selectedPath!)
})
}
삽입된 import 문장은 이런 느낌이다.import ${ファイル名} from '${パス}' ${改行コード}
components: {}에 추가하려면 다음과 같은 정규 표현식이 필요합니다./components( )*:( )*{[\s\S]*?(?=})/
정규 표현식에서 명중된 문자의 마지막이 {
또는 ,
인 경우 파일 이름을 직접 삽입합니다.그렇지 않으면
,
+ 파일 이름을 삽입합니다.Marketplaceに公開
여기도 검색하면 좋은 기사가 많이 나와요.
그나저나 화면 관리는 이런 느낌이에요.
最後に
언제 기분이 좋으면import와components:{}에 추가할 때 정렬하고 싶습니다.
그리고 난 그냥 못 찾았어. 그 플러그인이 이미 있다는 걸 알려주면 기뻐.
경품
매번 이 구성 요소의 프로필을 확인하고 정의로 날아가는 것은 매우 번거롭다
탭에 마우스를 걸고 도구 알림에
vue-peek의 도구 제시판 느낌.
Reference
이 문제에 관하여(VSCode/Vue.js로 구성 요소의 자동 가져오기 플러그인 (확장 기능) 을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ishiyama0530/items/66e4cd6e03cdfa19b16f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)