Uwolnij moc VS Code, ucząc się budować niestandardowe rozszerzenia. Ten przewodnik poprowadzi Cię od konfiguracji po publikację, zwiększając produktywność.
Opanowanie Tworzenia Rozszerzeń VS Code: Kompleksowy Przewodnik dla Globalnych Deweloperów
Visual Studio Code (VS Code) stał się edytorem kodu dla milionów deweloperów na całym świecie. Jego popularność wynika z lekkiej natury, potężnych funkcji i, co najważniejsze, możliwości rozbudowy. Możliwość tworzenia niestandardowych rozszerzeń pozwala deweloperom dostosować edytor do swoich specyficznych potrzeb, zwiększając produktywność i usprawniając przepływy pracy. Ten kompleksowy przewodnik przeprowadzi Cię przez proces tworzenia własnych rozszerzeń VS Code, od początkowej konfiguracji po publikację Twojego dzieła, aby reszta świata mogła z niego korzystać.
Dlaczego warto tworzyć rozszerzenia VS Code?
Tworzenie rozszerzeń VS Code oferuje liczne korzyści, zarówno dla poszczególnych deweloperów, jak i dla organizacji:
- Spersonalizowany przepływ pracy: Dostosuj edytor, aby idealnie pasował do Twojego stylu kodowania i wymagań projektu.
- Zwiększona produktywność: Zautomatyzuj powtarzalne zadania, zintegruj się z narzędziami zewnętrznymi i usprawnij proces tworzenia.
- Ulepszona współpraca: Udostępniaj rozszerzenia swojemu zespołowi lub szerszej społeczności, aby ustandaryzować przepływy pracy i poprawić jakość kodu.
- Nauka i rozwój umiejętności: Zyskanie doświadczenia z TypeScript, Node.js i API VS Code otwiera nowe możliwości kariery.
- Wkład w społeczność: Dziel się swoimi innowacyjnymi rozwiązaniami z globalną społecznością deweloperów i wnoś wkład w ekosystem.
Wymagania wstępne
Zanim zagłębisz się w tworzenie rozszerzeń, upewnij się, że masz zainstalowane następujące elementy:
- Node.js i npm (Node Package Manager): Tworzenie rozszerzeń VS Code w dużej mierze opiera się na Node.js. Pobierz i zainstaluj najnowszą wersję LTS ze strony oficjalnej Node.js. npm jest instalowany automatycznie z Node.js.
- Visual Studio Code: Upewnij się, że masz zainstalowaną najnowszą wersję VS Code.
- Yeoman i generator rozszerzeń VS Code: Yeoman to narzędzie do tworzenia szkieletów, które upraszcza proces tworzenia rozszerzeń. Zainstaluj go globalnie za pomocą npm:
npm install -g yo generator-code
Konfiguracja środowiska deweloperskiego
Mając już zainstalowane wymagania wstępne, możesz skonfigurować środowisko deweloperskie:
- Utwórz nowy projekt rozszerzenia: Otwórz swój terminal i uruchom następujące polecenie, aby uruchomić generator rozszerzeń:
- Odpowiedz na pytania: Generator zada szereg pytań dotyczących Twojego rozszerzenia. Oto podział typowych pytań i zalecanych odpowiedzi:
- Jakiego typu rozszerzenie chcesz utworzyć? Wybierz "New Extension (TypeScript)" dla rozszerzenia opartego na TypeScript, co jest zalecanym podejściem.
- Jak nazywa się Twoje rozszerzenie? Wybierz opisową i unikalną nazwę dla swojego rozszerzenia. Przykłady: "Code Spell Checker", "JavaScript Snippets", "Python Autocomplete".
- Jaki jest identyfikator Twojego rozszerzenia? Jest to unikalny identyfikator Twojego rozszerzenia, zwykle w formacie `publisher.extension-name`. Wybierz nazwę wydawcy (np. Twoją nazwę użytkownika GitHub lub nazwę firmy).
- Jaki jest opis Twojego rozszerzenia? Podaj zwięzły i informacyjny opis tego, co robi Twoje rozszerzenie.
- Zainicjować repozytorium git? Wybierz "Tak", aby zainicjować repozytorium Git do kontroli wersji.
- Czy chcesz używać eslint do sprawdzania kodu? Wybierz "Tak", aby wymusić spójność stylu kodu.
- Otwórz projekt w VS Code: Po zakończeniu działania generatora, otwórz nowo utworzony folder projektu w VS Code.
yo code
Zrozumienie struktury projektu
Generator rozszerzeń tworzy podstawową strukturę projektu z następującymi kluczowymi plikami:
- `package.json`: Ten plik zawiera metadane dotyczące Twojego rozszerzenia, w tym jego nazwę, wersję, opis, zależności i zdarzenia aktywacji.
- `tsconfig.json`: Ten plik konfiguruje kompilator TypeScript.
- `.vscode/launch.json`: Ten plik konfiguruje debuger dla Twojego rozszerzenia.
- `src/extension.ts`: To główny punkt wejścia dla Twojego rozszerzenia. Zawiera funkcje `activate` i `deactivate`.
- `README.md`: Plik markdown zawierający opis Twojego rozszerzenia, sposób jego używania i wszelkie istotne informacje.
Pisanie Twojego pierwszego rozszerzenia
Zacznijmy od utworzenia prostego rozszerzenia, które wyświetla komunikat "Hello World" po wykonaniu polecenia:
- Otwórz `src/extension.ts`: Ten plik zawiera funkcję `activate`, która jest wywoływana po aktywowaniu rozszerzenia.
- Zmodyfikuj funkcję `activate`: Zastąp istniejący kod następującym:
- Wyjaśnienie:
- `vscode.commands.registerCommand('my-extension.helloWorld', ...)`: Rejestruje polecenie z identyfikatorem `my-extension.helloWorld`. To polecenie będzie dostępne w palecie poleceń VS Code.
- `vscode.window.showInformationMessage('Hello World from My Extension!')`: Wyświetla komunikat informacyjny w oknie VS Code.
- `context.subscriptions.push(disposable)`: Dodaje polecenie do subskrypcji rozszerzenia, zapewniając jego prawidłowe usunięcie po dezaktywacji rozszerzenia.
- Zmodyfikuj `package.json`: Dodaj następujące elementy do sekcji `contributes`, aby zdefiniować polecenie:
- Wyjaśnienie:
- `"commands"`: Definiuje polecenia, które wnosi Twoje rozszerzenie.
- `"command": "my-extension.helloWorld"`: Określa identyfikator polecenia, który pasuje do identyfikatora użytego w `extension.ts`.
- `"title": "Hello World"`: Ustawia nazwę wyświetlaną dla polecenia w palecie poleceń.
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
console.log('Gratulacje, Twoje rozszerzenie \"my-extension\" jest teraz aktywne!');
let disposable = vscode.commands.registerCommand('my-extension.helloWorld', () => {
vscode.window.showInformationMessage('Hello World from My Extension!');
});
context.subscriptions.push(disposable);
}
export function deactivate() {}
"contributes": {
"commands": [{
"command": "my-extension.helloWorld",
"title": "Hello World"
}]
}
Testowanie Twojego rozszerzenia
Teraz czas przetestować Twoje rozszerzenie:
- Naciśnij F5: Spowoduje to uruchomienie nowego okna VS Code z zainstalowanym rozszerzeniem. To jest "Extension Development Host".
- Otwórz paletę poleceń: Naciśnij `Ctrl+Shift+P` (lub `Cmd+Shift+P` na macOS), aby otworzyć paletę poleceń.
- Wpisz "Hello World": Powinieneś zobaczyć swoje polecenie na liście w palecie poleceń.
- Wybierz "Hello World": Kliknięcie polecenia spowoduje jego wykonanie i wyświetlenie komunikatu "Hello World" w oknie VS Code.
Debugowanie Twojego rozszerzenia
Debugowanie jest kluczowe dla identyfikacji i naprawiania problemów w Twoim rozszerzeniu. VS Code zapewnia doskonałe wsparcie dla debugowania:
- Ustaw punkty przerwania: Kliknij w marginesie edytora obok numerów wierszy, aby ustawić punkty przerwania w swoim kodzie.
- Naciśnij F5: Spowoduje to uruchomienie Extension Development Host w trybie debugowania.
- Uruchom swoje rozszerzenie: Wykonaj polecenie lub akcję, która uruchamia kod, który chcesz zdebugować.
- Sprawdź zmienne i stos wywołań: Debuger VS Code wstrzyma wykonywanie w punktach przerwania, pozwalając na sprawdzenie zmiennych, krok po kroku przez kod i zbadanie stosu wywołań.
Praca z API VS Code
API VS Code zapewnia bogaty zestaw interfejsów i funkcji do interakcji z edytorem. Oto kilka kluczowych obszarów API:
- `vscode.window`: Do interakcji z oknem VS Code, wyświetlania komunikatów, pokazywania pól wejściowych i zarządzania panelami.
- `vscode.workspace`: Do uzyskiwania dostępu do obszaru roboczego i manipulowania nim, w tym plikami, folderami i ustawieniami konfiguracji.
- `vscode.commands`: Do rejestrowania i wykonywania poleceń.
- `vscode.languages`: Do zapewnienia wsparcia językowego, takiego jak podświetlanie składni, uzupełnianie kodu i diagnostyka.
- `vscode.debug`: Do interakcji z debugerem.
- `vscode.scm`: Do interakcji z systemami zarządzania kontrolą źródła, takimi jak Git.
Przykład: Tworzenie rozszerzenia fragmentu kodu
Stwórzmy rozszerzenie, które dodaje fragment kodu do tworzenia podstawowego komponentu React:
- Utwórz folder `snippets`: Utwórz nowy folder o nazwie `snippets` w głównym katalogu projektu.
- Utwórz plik fragmentu kodu: Utwórz plik o nazwie `react.json` w folderze `snippets`.
- Dodaj definicję fragmentu kodu: Dodaj następujący kod JSON do `react.json`:
- Wyjaśnienie:
- `"React Component"`: Nazwa fragmentu kodu.
- `"prefix": "reactcomp"`: Prefiks, który uruchamia fragment kodu. Wpisanie `reactcomp` i naciśnięcie `Tab` spowoduje wstawienie fragmentu kodu.
- `"body"`: Tablica ciągów reprezentujących wiersze kodu w fragmencie.
- `${1:ComponentName}`: Zakładka, która pozwala na szybką zmianę nazwy komponentu.
- `"description"`: Opis fragmentu kodu.
- Zmodyfikuj `package.json`: Dodaj następujące elementy do sekcji `contributes`:
- Wyjaśnienie:
- `"snippets"`: Definiuje fragmenty kodu, które wnosi Twoje rozszerzenie.
- `"language": "javascriptreact"`: Określa język, dla którego fragment kodu jest odpowiedni.
- `"path": "./snippets/react.json"`: Określa ścieżkę do pliku fragmentu kodu.
- Przetestuj swój fragment kodu: Otwórz plik `.jsx` lub `.tsx` i wpisz `reactcomp`. Naciśnij `Tab`, aby wstawić fragment kodu.
{
"React Component": {
"prefix": "reactcomp",
"body": [
"import React from 'react';",
"",
"interface Props {\n\t[key: string]: any;\n}",
"",
"const ${1:ComponentName}: React.FC = (props: Props) => {\n\treturn (\n\t\t\n\t\t\t${2:Content}\n\t\t\n\t);\n};",
"",
"export default ${1:ComponentName};"
],
"description": "Creates a basic React component"
}
}
"contributes": {
"snippets": [{
"language": "javascriptreact",
"path": "./snippets/react.json"
}]
}
Zaawansowane techniki tworzenia rozszerzeń
Po opanowaniu podstaw, możesz odkrywać bardziej zaawansowane techniki tworzenia rozszerzeń:
- Language Server Protocol (LSP): Użyj LSP, aby zapewnić zaawansowane wsparcie językowe, takie jak uzupełnianie kodu, diagnostyka i refaktoryzacja, dla określonego języka. Popularne implementacje LSP obejmują te dla Pythona, Javy i Go.
- Debugowanie adapterów: Twórz niestandardowe debugowanie adapterów, aby obsługiwać debugowanie określonych języków programowania lub środowisk uruchomieniowych.
- Webviews: Osadzaj interaktywne interfejsy użytkownika oparte na sieci w VS Code za pomocą webviews. Pozwala to na tworzenie złożonych i atrakcyjnych wizualnie rozszerzeń.
- Motywy: Twórz niestandardowe motywy, aby zmienić wygląd VS Code. Wiele popularnych motywów jest dostępnych na VS Code Marketplace.
- Kombinacje klawiszy: Zdefiniuj niestandardowe kombinacje klawiszy, aby mapować określone akcje na skróty klawiaturowe.
Internacjonalizacja i lokalizacja (i18n i L10n)
Aby dotrzeć do globalnej publiczności, rozważ internacjonalizację i lokalizację swojego rozszerzenia. Obejmuje to dostosowanie rozszerzenia do obsługi różnych języków i regionów.
- Externalizuj ciągi znaków: Przenieś wszystkie ciągi widoczne dla użytkownika do oddzielnych plików zasobów.
- Użyj API i18n VS Code: VS Code zapewnia API do ładowania zlokalizowanych ciągów na podstawie ustawień regionalnych użytkownika.
- Obsługuj wiele języków: Udostępnij pliki zasobów dla różnych języków.
- Rozważ układ od prawej do lewej (RTL): Jeśli Twoje rozszerzenie wyświetla tekst, upewnij się, że obsługuje języki RTL, takie jak arabski i hebrajski.
Publikowanie Twojego rozszerzenia
Gdy Twoje rozszerzenie będzie gotowe, możesz opublikować je w VS Code Marketplace, aby inni mogli z niego korzystać:
- Utwórz organizację Azure DevOps: Będziesz potrzebować organizacji Azure DevOps, aby opublikować swoje rozszerzenie. Jeśli jej nie masz, utwórz darmowe konto na stronie internetowej Azure DevOps.
- Zainstaluj narzędzie `vsce`: VS Code Extension Manager (`vsce`) to narzędzie wiersza poleceń do pakowania i publikowania rozszerzeń. Zainstaluj je globalnie za pomocą npm:
- Utwórz wydawcę: Wydawca to tożsamość, która posiada Twoje rozszerzenia na Marketplace. Utwórz wydawcę za pomocą polecenia `vsce create-publisher`. Będziesz musiał podać nazwę wydawcy i osobisty token dostępu (PAT) z Azure DevOps.
- Wygeneruj osobisty token dostępu (PAT): W Azure DevOps przejdź do "Ustawienia użytkownika" -> "Osobiste tokeny dostępu" i utwórz nowy PAT z zakresem "Marketplace (Publikuj)".
- Spakuj swoje rozszerzenie: Użyj polecenia `vsce package`, aby spakować swoje rozszerzenie do pliku `.vsix`.
- Opublikuj swoje rozszerzenie: Użyj polecenia `vsce publish`, aby opublikować swoje rozszerzenie w Marketplace. Będziesz musiał podać nazwę swojego wydawcy i swój PAT.
npm install -g vsce
Najlepsze praktyki dla tworzenia rozszerzeń
Postępuj zgodnie z tymi najlepszymi praktykami, aby tworzyć wysokiej jakości i łatwe w utrzymaniu rozszerzenia VS Code:
- Użyj TypeScript: TypeScript zapewnia statyczne typowanie i poprawia łatwość utrzymania kodu.
- Napisz testy jednostkowe: Napisz testy jednostkowe, aby upewnić się, że Twoje rozszerzenie działa poprawnie.
- Użyj lintera: Użyj lintera, takiego jak ESLint, aby wymusić spójność stylu kodu.
- Udokumentuj swój kod: Napisz jasną i zwięzłą dokumentację dla swojego rozszerzenia.
- Obsługuj błędy w sposób właściwy: Zaimplementuj odpowiednią obsługę błędów, aby zapobiec awarii Twojego rozszerzenia.
- Zoptymalizuj wydajność: Zoptymalizuj wydajność swojego rozszerzenia, aby uniknąć spowolnienia VS Code.
- Postępuj zgodnie z wytycznymi API VS Code: Przestrzegaj wytycznych API VS Code, aby zapewnić dobrą integrację Twojego rozszerzenia z edytorem.
- Rozważ dostępność: Uczyń swoje rozszerzenie dostępnym dla użytkowników z niepełnosprawnościami.
Zasoby społeczności
Oto kilka cennych zasobów, aby dowiedzieć się więcej o tworzeniu rozszerzeń VS Code:
- Dokumentacja API rozszerzeń VS Code: Oficjalna dokumentacja API rozszerzeń VS Code.
- Przykłady rozszerzeń VS Code: Zbiór przykładowych rozszerzeń, które demonstrują różne funkcje API.
- VS Code Marketplace: Przeglądaj VS Code Marketplace, aby znaleźć istniejące rozszerzenia i uczyć się z ich kodu.
- Stack Overflow: Zadawaj pytania i znajdź odpowiedzi związane z tworzeniem rozszerzeń VS Code.
- GitHub: Przeglądaj rozszerzenia VS Code typu open source i wnoś wkład w społeczność.
Wnioski
Tworzenie rozszerzeń VS Code to potężny sposób na dostosowanie środowiska kodowania, zwiększenie produktywności i dzielenie się swoimi rozwiązaniami z globalną społecznością deweloperów. Postępując zgodnie z tym kompleksowym przewodnikiem, możesz opanować sztukę tworzenia rozszerzeń i tworzyć innowacyjne narzędzia, które ulepszają doświadczenia VS Code dla siebie i innych. Pamiętaj, aby zaangażować się w społeczność, wnosić wkład w projekty open source i nieustannie uczyć się i odkrywać wciąż ewoluujący świat tworzenia rozszerzeń VS Code. Powodzenia i miłego kodowania!