Не работают расширения в visual studio code
Расширения — это пакеты кода, которые выполняются в Visual Studio и предоставляют новые или улучшенные функции. К числу расширений относятся элементы управления, примеры, шаблоны, инструменты или другие компоненты, расширяющие возможности Visual Studio, например Live Share или Visual Studio IntelliCode.
Сведения о создании расширений Visual Studio см. в разделе Visual Studio SDK. Сведения об использовании расширений см. на страницах отдельных расширений в Visual Studio Marketplace. Дополнительные сведения о поиске расширений см. в записи блога Где мои избранные расширения в Visual Studio 2022?.
Сведения о создании расширений Visual Studio см. в разделе Visual Studio SDK. Сведения об использовании расширений см. на страницах отдельных расширений в Visual Studio Marketplace.
Диалоговое окно "Расширения и обновления"
Используйте диалоговое окно Расширения и обновления для установки и управления расширениями Visual Studio. Чтобы открыть диалоговое окно Расширения и обновления, выберите Средства > Расширения и обновления или введите Расширения в поле поиска Быстрый запуск.
Диалоговое окно "Управление расширениями"
Используйте диалоговое окно Управление расширениями для установки расширений Visual Studio и управления ими. Чтобы открыть диалоговое окно Управление расширениями, выберите Расширения > Управление расширениями. Или введите строку Расширения в поле поиска, а затем выберите Управление расширениями.
На левой панели расширения разделены на установленные, доступные в Visual Studio Marketplace (онлайн) и имеющие доступные обновления. Диспетчер перемещаемых расширений хранит список всех расширений Visual Studio, которые вы установили на любом компьютере или экземпляре Visual Studio. С его помощью вы легко сможете находить нужные вам расширения.
Поиск и установка расширений
Установить расширения можно из Visual Studio Marketplace или из диалогового окна "Расширения и обновления" в Visual Studio.
Чтобы установить расширения из Visual Studio, выполните указанные ниже действия.
В диалоговом окне Сервис > Расширения и обновления найдите расширение, которое вы намерены установить. Если известно имя или часть имени расширения, можно выполнить поиск в окне Поиск.
Запланирована установка расширения. Расширение будет установлено после закрытия всех экземпляров Visual Studio.
При попытке установить расширение, имеющее зависимости, то установщик проверяет, установлены ли эти зависимости. Если они не установлены, то диалоговое окно Расширения и обновления отображает список зависимостей, которые требуется установить перед установкой данного расширения.
Установка без использования диалогового окна "Расширения и обновления"
Расширения, упакованные в VSIX-файлы, могут быть доступны не только в Visual Studio Marketplace. Несмотря на то что эти файлы не обнаруживаются в диалоговом окне Сервис > Расширения и обновления, VSIX-файл можно установить, дважды щелкнув его или выбрав файл и нажав клавишу ВВОД. После этого следуйте инструкциям. После установки данное расширение можно будет включить, отключить или удалить в диалоговом окне Расширения и обновления .
- Visual Studio Marketplace содержит расширения VSIX и MSI. Расширения на основе MSI невозможно включить или отключить в диалоговом окне "Расширения и обновления".
- Если расширение MSI содержит файл extension.vsixmanifest, это расширение отобразится в диалоговом окне Расширения и обновления.
Установить расширения можно из Visual Studio Marketplace или из диалогового окна "Управление расширениями" в Visual Studio.
Чтобы установить расширения из Visual Studio, выполните указанные ниже действия.
В диалоговом окне Расширения > Управление расширениями найдите расширение, которое вы намерены установить. (Если известно имя или часть имени расширения, можно выполнить поиск в окне Поиск.)
Запланирована установка расширения. Расширение будет установлено после закрытия всех экземпляров Visual Studio.
При попытке установить расширение, имеющее зависимости, то установщик проверяет, установлены ли эти зависимости. Если они не установлены, то в диалоговом окне Управление расширениями отображается список зависимостей, которые требуется установить перед установкой этого расширения.
Установка без использования диалогового окна "Управление расширениями"
Расширения, упакованные в VSIX-файлы, могут быть доступны не только в Visual Studio Marketplace. Несмотря на то что VSIX-файлы не обнаруживаются в диалоговом окне Расширения > Управление расширениями, такой файл можно установить, дважды щелкнув его или выбрав файл и нажав клавишу ВВОД. После этого следуйте инструкциям. После установки такое расширение можно будет включить, отключить или удалить в диалоговом окне Управление расширениями.
- Visual Studio Marketplace содержит расширения VSIX и MSI. Расширения на основе MSI невозможно включить или отключить в диалоговом окне "Управление расширениями".
- Если расширение MSI содержит файл extension.vsixmanifest, оно появляется в диалоговом окне Управление расширениями.
Удаление или отключение расширения
Если требуется прекратить использование расширения, его можно отключить или удалить. Отключенное расширение сохранится, но не будет загружаться. Найдите расширение и щелкните Удалить или Отключить. Перезапустите Visual Studio, чтобы выгрузить отключенное расширение.
Отключать можно только расширения VSIX, но не расширения, которые были установлены с помощью MSI. Расширения, установленные с помощью MSI, можно только удалить.
Расширения на уровне пользователя и администратора
Большинство расширений устанавливаются на уровне пользователя в папке %LocalAppData%\Microsoft\VisualStudio\\Extensions\ . Некоторые расширения устанавливаются на уровне администратора в папку \Common7\IDE\Extensions\ .
Чтобы защитить систему от расширений, которые могут содержать ошибки или вредоносный код, можно ограничить расширения на уровне пользователя, чтобы они загружались только при запуске Visual Studio под учетной записью пользователя со стандартными правами. Это означает, что расширения на уровне пользователя отключаются при запуске Visual Studio с повышенными разрешениями.
Чтобы ограничить загрузку расширений на уровне пользователя, выполните указанные ниже действия.
Откройте страницу параметров расширений (Сервис > Параметры > Среда > Расширения).
Снимите флажок Загружать расширения пользователей при выполнении от имени администратора.
Перезапустите Visual Studio.
Автоматическое обновление расширений
Расширения обновляются автоматически при появлении новой версии в Visual Studio Marketplace. Новая версия расширения обнаруживается и устанавливается в фоновом режиме. При следующем открытии Visual Studio будет запущена новая версия расширения.
Функцию автоматического обновления можно отключить для всех или только определенных расширений.
Чтобы отключить автоматическое обновление для всех расширений, щелкните ссылку Изменить параметры расширений и обновлений в диалоговом окне Сервис > Расширения и обновления. В диалоговом окне Параметры снимите флажок Автоматически обновлять расширения.
Чтобы отключить автоматическое обновление для конкретного расширения, снимите флажок Автоматически обновлять это расширение в области сведений о расширении в правой части диалогового окна Расширения и обновления.
Чтобы отключить автоматическое обновление для всех расширений, щелкните ссылку Измените параметры расширений в диалоговом окне Расширения > Управление расширениями. В диалоговом окне Параметры снимите флажок Автоматически обновлять расширения.
Чтобы отключить автоматическое обновление для конкретного расширения, снимите флажок Автоматически обновлять это расширение в области сведений о расширении в правой части диалогового окна Управление расширениями.
Уведомления об аварийном завершении работы или зависаниях
Visual Studio уведомляет вас о тех расширениях, которые могли вызвать аварийное завершение предыдущего сеанса. Когда Visual Studio аварийно завершает работу, сохраняется стек исключений. При следующем запуске Visual Studio стек проверяется, начиная с листового узла, в направлении базы. Если Visual Studio определяет, что кадр принадлежит модулю, который является частью установленного и включенного расширения, система выводит уведомление.
Visual Studio оповещает еще и о тех расширениях, которые могут приводить к недоступности интерфейса.
Получив такое оповещение, вы можете проигнорировать его или выполнить одно из следующих действий.
- Выберите Отключить это расширение. Visual Studio отключает расширение и сообщает, нужно ли перезагрузить компьютер, чтобы отключение вступило в силу. Если потребуется, вы можете снова включить расширение в диалоговом окне Сервис >Расширения и обновления.
- Выберите Отключить это расширение. Visual Studio отключает расширение и сообщает, нужно ли перезагрузить компьютер, чтобы отключение вступило в силу. Если потребуется, вы можете снова включить расширение в диалоговом окне Расширения >Управление расширениями.
- Если уведомление относилось к аварийному завершению в предыдущем сеансе, в Visual Studio больше не будет отображаться уведомление при аварийном завершении работы этого расширения. Этот выбор не влияет на уведомления Visual Studio о зависаниях, связанных с этим расширением, а также об аварийных завершениях и зависаниях, связанных с другими расширениями.
- Если же уведомление относилось к зависанию, в интегрированной среде разработки (IDE) больше не будут появляться уведомления о том, что это расширение связано с зависаниями. В Visual Studio по-прежнему будут отображаться уведомления об аварийном завершении работы этого расширения, а также об аварийном завершении работы и зависаниях других расширений.
Выберите Дополнительные сведения, чтобы перейти к этой странице.
Уведомление о зависании или аварийном завершении пользовательского интерфейса означает только то, что один из модулей конкретного расширения находился в стеке в тот момент, когда произошло аварийное завершение. Это не обязательно означает, что расширение стало причиной сбоя. Возможно, расширение вызвало внутренний код Visual Studio, который привел к аварийному завершению или зависанию пользовательского интерфейса. Но эти уведомления могут быть полезны, если расширение, приводящее к аварийному завершению или зависанию пользовательского интерфейса, не очень важно для вас. Отключив такое расширение, вы сможете избежать аналогичных проблем в будущем без ущерба для производительности.
Примеры
При установке примера из сети решение сохраняется в двух местоположениях:
Рабочий экземпляр сохраняется в расположении, указанном при создании проекта.
Отдельный контрольный экземпляр сохраняется на компьютере.
С помощью диалогового окна Сервис > Расширения и обновления можно выполнить следующие задачи, связанные с примерами.
С помощью диалогового окна Расширения > Управление расширениями можно выполнить следующие задачи, связанные с примерами.
Отобразить список контрольных экземпляров установленных образцов.
Отключить или удалить контрольный экземпляр образца.
Установить пакеты примеров — коллекции примеров, связанных с определенной технологией или функцией.
Установить отдельные примеры из сети.
Просмотреть уведомления об обновлениях, когда будут опубликованы изменения в исходном коде для установленных примеров.
Обновить контрольный экземпляр установленного примера при получении уведомления об обновлении.
Хотя существует множество причин, по которым расширение может не работать, в VS Code 1.57 вы столкнетесь с одной большой новой причиной: доверие рабочей области.
Доверие рабочей области пытается обезопасить вас при простом просмотре кода, даже если этот код получен из ненадежного источника. Поскольку расширения могут загружать и выполнять контент из текущей рабочей области, в расширениях VS Code 1.57 код запуска по умолчанию отключен в `` Ограниченном режиме '' (ненадежная рабочая область)
Если вы находитесь в ограниченном режиме, вы должны увидеть Restricted mode в строке состояния:
Чтобы проверить, не отключено ли одно из установленных расширений из-за того, что вы находитесь в «ограниченном режиме»:
- Откройте представление расширений
- Найдите @installed и найдите интересующее вас расширение
Расширения, которые отключены из-за доверия к рабочему пространству, будут затенены, а рядом с ними появится небольшой экран:
Чтобы снова включить все ваши расширения , доверяйте текущему рабочему пространству, запустив команду Workspace: Manage Workspace Trust , а затем поставьте доверие текущему рабочему пространству.
Вы также можете выборочно включить отдельные расширения в «ограниченном режиме» с помощью настройки Extensions: Support Untrusted Workspaces
Вам нужно отредактировать этот параметр в редакторе JSON. Значение параметра - это объект, который использует идентификаторы расширений в качестве ключей:
Со временем многие расширения должны быть обновлены для поддержки концепции доверия рабочей области. Это означает, что расширение может выбирать, будут ли они включены или отключены в «ограниченном режиме». Некоторые расширения также могут включаться в «ограниченном режиме», но ограничивают потенциально опасную функциональность.
Обратите внимание, что простые расширения, такие как темы и грамматики, всегда включены, даже в «ограниченном режиме».
убедитесь, что установлен Visual Studio 2017 (Community, Professional или Enterprise) или более поздней версии.
возможное исправление 1. измените установку, чтобы убедиться, что установлены расширения Visual Studio
в некоторых случаях установщик Xamarin может автоматически отменить проверку параметров установки для расширений Visual Studio. если причина проблемы, установите недостающие расширения Visual Studio с помощью команды изменения установщика. Например, чтобы установить расширения для Visual Studio 2013:
откройте панель управления Windows программы и компоненты .
Щелкните правой кнопкой мыши запись Xamarin и выберите изменить.
убедитесь, что для параметра Xamarin для Visual Studio 2013 установлено значение установить:
Выполните остальные действия в мастере установки.
возможное исправление 2. попросите Visual Studio настроить расширения еще раз.
проверьте, скопированы ли расширения Xamarin в папку Visual Studio extensions:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Xamarin\Xamarin\3.1.228.0
Если расширения установлены правильно (для версии 3.1.228), в папке будет 60 элементов:
убедившись, что эта папка выглядит правильно, попросите Visual Studio попробовать настроить расширения еще раз:
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /setup
Возможное исправление 3. Попробуйте заново установить Xamarin
на панели управления Windows удалите все перечисленные ниже элементы.
Xamarin для Windows
Xamarin для Visual Studio
в обозревателе удалите все оставшиеся файлы из папок расширения Xamarin Visual Studio (все версии, включая программные файлы и программные файлы (x86)):
C:\Program Files*\Microsoft Visual Studio 1*.0\Common7\IDE\Extensions\Xamarin
Также проверьте каталог "Виртуалсторе", чтобы узнать, есть ли какие либо наложения копий любых каталогов расширений:
Откройте редактор реестра (regedit).
Найдите следующий раздел.
Найдите и удалите все записи, соответствующие этому шаблону.
C:\Program files * \ Microsoft Visual Studio 1 *. 0 \ Common7\IDE\Extensions\Xamarin
Найдите следующий раздел.
Удалите все записи, которые могут иметь отношение к Xamarin. Вот пример, который используется для того, чтобы вызвать проблемы в старых версиях Xamarin:
Моно. VisualStudio. Shell, 1.0
возможное исправление 4. исправление Visual Studio установки
откройте панель управления Windows программы и компоненты .
щелкните правой кнопкой мыши соответствующую запись Microsoft Visual Studio и выберите изменить .
в открывшемся диалоговом окне Visual Studio нажмите кнопку восстановить .
не открывает расширение Live server. Оно установилось, но при нажатии Open with Live server ничего не происходит. Приходиться в браузере LocalHost прописывать. Есть идеи, как это решить?
Всем привет! Кто сталкивался с такой проблемой, VS Code после установки через некоторое время сам удаляется, пропадает значок с рабочего стола и из меню пуск исчезает тоже, хотя при повторной установке сохраняются все настройки и плагины, которые я устанавливал.
Доброе время суток. Днём писал в vs code и всё нормально работало и запускалось там в консоли. Сейчас вечером выдаёт такую ошибку
PS C:\Users\Иван\Documents\Обход в ширину> & C:/Users/ван/AppData/Local/Programs/Python/Python37-32/python.exe "c:/Users/ван/Documents/бход в ширину/бход в ширину.py"
& : Имя "C:/Users/ван/AppData/Local/Programs/Python/Python37-32/python.exe" не ра
чего повторите попытку.
строка:1 знак:3
+ & C:/Users/ван/AppData/Local/Programs/Python/Python37-32/python.exe " .
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:/Users/ван/Ap. 7-32/python.exe
:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
С чем она связана?
Подскажите, что можно сделать:
vscode при html/css верстке не видит файлы css, лежащие в отдельной папке css. Не понимает относительные пути.
Пришлось все писать во встроенных стилях самой html.
Причем, эта проблема на домашнем компьютере не возникает, а только на работе, на одном компьютере.
В чем может быть причина? Что там не так? Что-то блокируется, как буд-то.
Верстку, сделанную на другом компьютере он понимает.
Но в нем самом если писать путь к файлу - не видит.
Идея написать эту статью родилась у меня много месяцев назад, но всегда что-то мешало воплотить ее в жизнь: то реального кода в ней нет, то теорию лень писать. Но теперь, когда она уже готова, можно со стопроцентной уверенностью сказать, что более полезной статьи вы еще не читали!
VS Code — мой любимый текстовый редактор, а учитывая, что у него обширное сообщество и многообразие доступных плагинов, то цены ему просто нет.
Вы готовы? Здесь и сейчас я расскажу вам о расширениях VS Code, которые не только помогут улучшить продуктивность, но и придадут соблазнительный вид вашему коду. ( ͡° ͜ʖ ͡°)
Статья состоит из 2 частей:
- Расширения для улучшения продуктивности.
- Расширения для улучшения стиля.
Искренне надеюсь, что материал статьи вам понравится. И раз уж мы заговорили о стиле, не могу не показать, как выглядит мой VS Code:
Кстати, пусть вас не смущает мой терминал, ведь я пользователь Windows ヽ(◕ヮ◕)ノ
Сколько времени уже работаю с кодом в этом текстовом редакторе, но каждый раз восхищаюсь им все больше! (͠≖ ͜ʖ͠≖) Но довольно отступлений — к делу!
Расширения VS Code для улучшения продуктивности
Обратите внимание, что предлагаемый список расширений — лишь часть тех полезных плагинов, которые предлагает редактор. Все упоминаемые расширения сопровождаются соответствующими ссылками.
1. WakaTime
Это одно из моих любимых расширений, а будь оно бесплатным, стало бы самым любимым.
Что же оно делает?
WakaTime отслеживает весь процесс написания кода, включая ежедневное время, затраченное на него, рабочие проекты, используемые языки программирования, степень вашего мастерства и многое другое.
Превосходно, не так ли?
Данный тайм-трекер предоставляет отличный отчет о всех ваших действиях с кодом, и выглядит он так:
2. Visual Studio IntelliCode
Представьте себе Intellisense при поддержке ИИ, который бы подсказывал, что писать в коде. Похоже, что ваши мечты начинают сбываться!
Расширение Visual Studio IntelliCode обеспечивает возможности разработки с помощью ИИ для программистов Python, TypeScript/JavaScript и Java в Visual Studio на основе аналитической обработки контекста кода в сочетании с машинным обучением.
Посмотрим, как это работает:
3. Terminal Here
Для тех программистов, кто не прочь посоревноваться, не использует IDE и предпочитает писать код в текстовом редакторе, я приготовил кое-что интересное!
Что касается меня, то я предпочитаю текстовый редактор VS Code. В основном пишу код на Java и люблю поддерживать правильную файловую структуру (каждому вопросу — свой каталог). Как вы уже догадались, чтобы запустить в терминале простую команду для выполнения файлов Java, мне приходится каждый раз менять директории и располагать свой код. Вот почему этот плагин стал для меня спасением!
Terminal Here открывает текущую рабочую директорию в терминале VS Code.
4. Live Server
Вы представить себе не можете, насколько важен этот плагин!
Открывайте страницы, используя Live Server, и у вас не будет хлопот с обновлением каждый раз, когда вы вносите какие-либо изменения. Кто же не любит горячей перезагрузки?
5. ReactJS Code Snippets
Если вы React разработчик и до сих пор не используете ReactJS Code Snippets, то вам явно не жаль своего времени! При помощи этого плагина можно хорошо его сэкономить и создавать компоненты, используя уже готовые сниппеты кода. ヽ(͡◕ ͜ʖ ͡◕)ノ
Еще один пример:
6. Python
Я и не надеюсь перечислить все возможности Python в формате статьи, но точно могу вас заверить, что это расширение позаботится обо всех ваших потребностях в этом языке! Вы можете:
- выбирать интерпретатор Python нажатием на строку состояния;
- настраивать отладчик с помощью панели Debug Activity;
- настраивать тесты с помощью команды Configure Tests ;
7. Path Intellisense
Этот плагин — по-настоящему нужный инструмент для разработчика. Импортируем ли мы зависимости, включаем образы в HTML-документы, прикрепляем скрипты JS, делаем ссылки на документы CSS в HTML-файлах — во всех этих случаях нам не обойтись без указания пути к файлу.
Path Intellisense автоматически заполнит для вас путь, чтобы вы смогли сконцентрироваться на более важных делах. ( ͡^ ͜ʖ ͡^)
8. NPM Intellisense
Если вы по достоинству оценили предыдущий плагин, и к тому же вы разработчик Node, то это расширение также не оставит вас равнодушным. Кто же откажется от автозавершения или подсказок в процессе импорта библиотек npm?
9. Markdownlint
Откройте наугад несколько проектов с открытым ПО на GitHub, и вы заметите у них одну общую черту — плохое стилевое оформление README.md. ( ͡ಠ ʖ̯ ͡ಠ)
Язык разметки Markdown спроектирован так, чтобы его было легко читать, писать и понимать. И это действительно так, но при этом его гибкость является одновременно достоинством и недостатком. Возможность работы со многими стилями грозит обернуться несогласованным форматированием. Некоторые конструкции плохо работают в парсерах, поэтому их лучше избегать.
Markdownlint — расширение Visual Studio Code, которое содержит библиотеку правил для соблюдения стандартов и согласованности файлов Markdown.
Советую, как можно быстрее установить его и настроить ваш Markdown 🙂
10. Markdown Preview Enhanced
Если мы с вами на одной волне, то вы, как и я, давно отказались от Microsoft Word и других ПО для создания текстовых документов. Для этой цели у нас есть Markdown. Установите данный плагин и увидите, как изменится ваш Markdown.
11. Auto Close Tag
Если вы веб-разработчик, и при этом не пользуетесь Auto Close Tag для написания тегов, то как вы вообще справляетесь? Лично мне надоедает закрывать теги вручную, и, к счастью, плагин автоматически делает всё это за меня.
12. Auto Rename Tag
Еще одно расширение в этом разделе — Auto Rename Tag, которое автоматически переименовывает закрывающиеся теги, если вам это необходимо. ( ͡~ ͜ʖ ͡°)
Итак, вы ознакомились с расширениями, которые способствуют улучшению продуктивности. Предлагаю перейти к расширениям, благодаря которым вы влюбитесь в свой текстовый редактор.
Расширения VS Code для улучшения стиля
Ниже приведен список плагинов, которые придадут привлекательный внешний вид вашему VS Code. На самом деле их гораздо больше, но здесь речь пойдет только о тех, которые использую лично я.
1.Prettier — инструмент для форматирования кода
Сначала я хотел внести Prettier в список расширений для продуктивности, но так как он связан со стилем, расскажу о нем здесь.
До сих пор существует противостояние, известное как “табуляция против пробелов” (и я вообще не понимаю тех, кто использует 8 пробелов), и вам, возможно, приходится преобразовывать одно в другое, но данное расширение возьмет на себя задачу добавления/удаления пробелов в коде.
Или представим другую ситуацию: у вас есть фрагмент кода, который написал ваш друг, или вы просто взяли его из интернета. Что вы будете делать, если он не структурирован? Будете выстраивать вручную? Конечно же нет, для этого и существует плагин.
Prettier — это инструмент для форматирования кода с жесткими правилами. Он устанавливает единый стиль оформления, анализируя ваш код, отображая его в соответствии со своими критериями, учитывающими максимальную длину строки, и оборачивая его при необходимости.
2. Rainbow Brackets
Не такое уж полезное расширение (к сожалению), но ведь скобки разных цветов выглядят бесподобно. ( ͡° ͜ʖ ͡°)
В вашем распоряжении все цвета радуги для круглых, квадратных и фигурных скобок. Rainbow Brackets может пригодится программистам Lisp, Clojure, JavaScript и многим другим.
3. Snazzy Operator
Вот он мой любимчик, хотя вы можете подумать, что это одна из тем VS Code.
Snazzy Operator требует предварительной установки шрифта Operator Mono.
4. vscode-styled-components
И наконец, последний в списке — vscode-styled-components, удивительный плагин для выделения синтаксиса и автозавершения.
Между прочим, вы заметили одну деталь в первом скриншоте статьи? Если нет, то повторю его еще раз:
Неужели не заметили? Тогда даю подсказку — посмотрите на терминал:
Если вы из числа пользователей Linux или Mac, то для вас это не ново, но для всех моих друзей, работающих в Windows, это стало открытием, не так ли?
Главным образом я использую тему “agnoster” фреймворка Oh-My-Zsh на WSL. Более подробную информацию о них вы можете найти в Google.
Читайте также: