Українська

Розкрийте можливості VS Code, навчившись створювати власні розширення. Цей посібник пропонує повний огляд, від налаштування до публікації, що дозволить вам покращити своє середовище кодування та поділитися своїми творіннями зі світом.

Опанування розробки розширень для VS Code: повний посібник для розробників з усього світу

Visual Studio Code (VS Code) став основним редактором коду для мільйонів розробників по всьому світу. Його популярність зумовлена легкістю, потужними функціями і, що найважливіше, можливістю розширення. Здатність створювати власні розширення дозволяє розробникам налаштовувати редактор під свої конкретні потреби, підвищуючи продуктивність та оптимізуючи робочі процеси. Цей вичерпний посібник проведе вас через процес створення власних розширень для VS Code, від початкового налаштування до публікації вашого творіння для всього світу.

Навіщо розробляти розширення для VS Code?

Розробка розширень для VS Code пропонує численні переваги як для окремих розробників, так і для організацій:

Передумови

Перш ніж зануритися в розробку розширень, переконайтеся, що у вас встановлено наступне:

Налаштування середовища розробки

Коли всі передумови виконані, ви готові налаштувати своє середовище розробки:

  1. Створіть новий проєкт розширення: Відкрийте термінал і виконайте наступну команду, щоб запустити генератор розширень:
  2. yo code
  3. Дайте відповіді на запити: Генератор поставить низку запитань про ваше розширення. Ось розбір поширених запитів та рекомендовані відповіді:
    • Який тип розширення ви хочете створити? Виберіть "New Extension (TypeScript)" для розширення на основі TypeScript, що є рекомендованим підходом.
    • Як називається ваше розширення? Виберіть описову та унікальну назву для вашого розширення. Приклади: "Code Spell Checker", "JavaScript Snippets", "Python Autocomplete".
    • Який ідентифікатор вашого розширення? Це унікальний ідентифікатор для вашого розширення, зазвичай у форматі `видавець.назва-розширення`. Виберіть ім'я видавця (наприклад, ваше ім'я користувача на GitHub або назву компанії).
    • Який опис вашого розширення? Надайте стислий та інформативний опис того, що робить ваше розширення.
    • Ініціалізувати репозиторій git? Виберіть "Так", щоб ініціалізувати Git-репозиторій для контролю версій.
    • Чи хочете ви використовувати eslint для перевірки коду? Виберіть "Так", щоб забезпечити узгодженість стилю коду.
  4. Відкрийте проєкт у VS Code: Після завершення роботи генератора відкрийте новостворену папку проєкту у VS Code.

Розуміння структури проєкту

Генератор розширень створює базову структуру проєкту з наступними ключовими файлами:

Написання вашого першого розширення

Почнемо зі створення простого розширення, яке відображає повідомлення "Привіт, світ" при виконанні команди:

  1. Відкрийте `src/extension.ts`: Цей файл містить функцію `activate`, яка викликається при активації вашого розширення.
  2. Змініть функцію `activate`: Замініть існуючий код на наступний:
  3. import * as vscode from 'vscode';
    
    export function activate(context: vscode.ExtensionContext) {
    	console.log('Вітаємо, ваше розширення \"my-extension\" тепер активне!');
    
    	let disposable = vscode.commands.registerCommand('my-extension.helloWorld', () => {
    		vscode.window.showInformationMessage('Привіт, світ, від мого розширення!');
    	});
    
    	context.subscriptions.push(disposable);
    }
    
    export function deactivate() {}
  4. Пояснення:
    • `vscode.commands.registerCommand('my-extension.helloWorld', ...)`: Реєструє команду з ідентифікатором `my-extension.helloWorld`. Ця команда буде доступна в палітрі команд VS Code.
    • `vscode.window.showInformationMessage('Привіт, світ, від мого розширення!')`: Відображає інформаційне повідомлення у вікні VS Code.
    • `context.subscriptions.push(disposable)`: Додає команду до підписок розширення, забезпечуючи її належне видалення при деактивації розширення.
  5. Змініть `package.json`: Додайте наступне до секції `contributes`, щоб визначити команду:
  6. "contributes": {
    		"commands": [{
    			"command": "my-extension.helloWorld",
    			"title": "Привіт, світ"
    		}]
    	}
  7. Пояснення:
    • `"commands"`: Визначає команди, які додає ваше розширення.
    • `"command": "my-extension.helloWorld"`: Вказує ідентифікатор команди, який збігається з ідентифікатором, використаним у `extension.ts`.
    • `"title": "Привіт, світ"`: Встановлює назву для відображення команди в палітрі команд.

Тестування вашого розширення

Тепер настав час протестувати ваше розширення:

  1. Натисніть F5: Це запустить нове вікно VS Code з встановленим розширенням. Це "Хост розробки розширень".
  2. Відкрийте палітру команд: Натисніть `Ctrl+Shift+P` (або `Cmd+Shift+P` на macOS), щоб відкрити палітру команд.
  3. Введіть "Привіт, світ": Ви повинні побачити свою команду в списку палітри команд.
  4. Виберіть "Привіт, світ": Натискання на команду виконає її та відобразить повідомлення "Привіт, світ, від мого розширення!" у вікні VS Code.

Налагодження вашого розширення

Налагодження є критично важливим для виявлення та виправлення проблем у вашому розширенні. VS Code надає чудову підтримку налагодження:

  1. Встановіть точки зупину: Клацніть у жолобку редактора поруч із номерами рядків, щоб встановити точки зупину у вашому коді.
  2. Натисніть F5: Це запустить хост розробки розширень у режимі налагодження.
  3. Запустіть ваше розширення: Виконайте команду або дію, яка запускає код, що ви хочете налагодити.
  4. Перевіряйте змінні та стек викликів: Налагоджувач VS Code зупинить виконання на ваших точках зупину, дозволяючи вам перевіряти змінні, крокувати по коду та досліджувати стек викликів.

Робота з VS Code API

VS Code API надає багатий набір інтерфейсів та функцій для взаємодії з редактором. Ось деякі ключові області API:

Приклад: створення розширення для фрагментів коду

Давайте створимо розширення, яке додає фрагмент коду для створення базового компонента React:

  1. Створіть папку `snippets`: Створіть нову папку з назвою `snippets` у корені вашого проєкту.
  2. Створіть файл фрагментів: Створіть файл з назвою `react.json` всередині папки `snippets`.
  3. Додайте визначення фрагмента: Додайте наступний JSON до `react.json`:
  4. {
    	"Компонент React": {
    		"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": "Створює базовий компонент React" } }
  5. Пояснення:
    • `"Компонент React"`: Назва фрагмента.
    • `"prefix": "reactcomp"`: Префікс, який викликає фрагмент. Введення `reactcomp` та натискання `Tab` вставить фрагмент.
    • `"body"`: Масив рядків, що представляють рядки коду у фрагменті.
    • `${1:ComponentName}`: Табуляційна зупинка, яка дозволяє швидко змінити назву компонента.
    • `"description"`: Опис фрагмента.
  6. Змініть `package.json`: Додайте наступне до секції `contributes`:
  7. "contributes": {
    		"snippets": [{
    			"language": "javascriptreact",
    			"path": "./snippets/react.json"
    		}]
    	}
  8. Пояснення:
    • `"snippets"`: Визначає фрагменти коду, які додає ваше розширення.
    • `"language": "javascriptreact"`: Вказує мову, для якої застосовується фрагмент.
    • `"path": "./snippets/react.json"`: Вказує шлях до файлу фрагмента.
  9. Протестуйте ваш фрагмент: Відкрийте файл `.jsx` або `.tsx` і введіть `reactcomp`. Натисніть `Tab`, щоб вставити фрагмент.

Просунуті техніки розробки розширень

Після того, як ви опануєте основи, ви можете дослідити більш просунуті техніки розробки розширень:

Інтернаціоналізація та локалізація (i18n та L10n)

Щоб охопити глобальну аудиторію, розгляньте можливість інтернаціоналізації та локалізації вашого розширення. Це передбачає адаптацію вашого розширення для підтримки різних мов та регіонів.

Публікація вашого розширення

Коли ваше розширення готове, ви можете опублікувати його на VS Code Marketplace, щоб інші могли ним користуватися:

  1. Створіть організацію в Azure DevOps: Вам знадобиться організація в Azure DevOps для публікації вашого розширення. Якщо у вас її немає, створіть безкоштовний обліковий запис на вебсайті Azure DevOps.
  2. Встановіть інструмент `vsce`: VS Code Extension Manager (`vsce`) — це інструмент командного рядка для пакування та публікації розширень. Встановіть його глобально за допомогою npm:
  3. npm install -g vsce
  4. Створіть видавця: Видавець — це ідентифікатор, який володіє вашими розширеннями на Marketplace. Створіть видавця за допомогою команди `vsce create-publisher`. Вам потрібно буде надати ім'я видавця та персональний токен доступу (PAT) з Azure DevOps.
  5. Згенеруйте персональний токен доступу (PAT): В Azure DevOps перейдіть до "User Settings" -> "Personal Access Tokens" і створіть новий PAT з областю видимості "Marketplace (Publish)".
  6. Запакуйте ваше розширення: Використовуйте команду `vsce package`, щоб запакувати ваше розширення у файл `.vsix`.
  7. Опублікуйте ваше розширення: Використовуйте команду `vsce publish`, щоб опублікувати ваше розширення на Marketplace. Вам потрібно буде надати ім'я вашого видавця та ваш PAT.

Найкращі практики розробки розширень

Дотримуйтесь цих найкращих практик для створення високоякісних та підтримуваних розширень для VS Code:

Ресурси спільноти

Ось кілька цінних ресурсів для подальшого вивчення розробки розширень для VS Code:

Висновок

Розробка розширень для VS Code — це потужний спосіб налаштувати ваше середовище кодування, підвищити продуктивність та поділитися своїми рішеннями зі світовою спільнотою розробників. Дотримуючись цього вичерпного посібника, ви зможете опанувати мистецтво розробки розширень та створювати інноваційні інструменти, які покращують досвід роботи з VS Code для вас та інших. Не забувайте приймати участь у житті спільноти, робити внесок у проєкти з відкритим кодом, а також постійно навчатися та досліджувати світ розробки розширень для VS Code, що постійно розвивається. Успіхів та щасливого кодування!