Перейти к содержимому

Как включить подсказки в visual studio code

  • автор:

Как настроить подсказки в VS Code?

Попробовал поработать на VS Code. Всё нравится, но максимально бесит работа подсказок. Можно ли настроить их?
Из основных проблем:
-лишние методы(типа ввожу «console.» и в списке предлагаемых вылазит «length»)
-отображение кучи лишних переменных(в подсказках показываются переменные из других функций, свойства других объектов).
Можно ли сделать подсказки в VS Code более адекватными?

  • Вопрос задан более трёх лет назад
  • 37420 просмотров

Комментировать
Решения вопроса 2

Egorian

Egorian @Egorian Автор вопроса

Короче, как всегда. Доки наше всё. https://code.visualstudio.com/docs/editor/intellisense
Тут можно покопаться в настройках и настроить подсказки на свой вкус

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Taraflex

Ищу работу. Контакты в профиле.
В корень проекта положить tsconfig.json

< "compilerOptions": < "allowJs": true, "alwaysStrict": true, "baseUrl": ".", "emitDecoratorMetadata": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "target": "ESNext", "lib": [ "dom", "es2017" ] >, "exclude": [ "static", "build", "dist", "node_modules" ] >

+
Установите в зависимости проекта типы для библиотек, которые идут без типов .d.ts в комплекте https://www.npmjs.com/~types

P.S. Подсказки в vscode лучшие.

Можно ли включить подсказки кода в Visual Studio Code для сторонних библиотек?

Здравствуйте. Использую библиотеку svg.js и её плагины. При наборе кода VSCode не выдаёт подсказки, а на официальной странице svg.js очень маленькая документация, в которой описаны не все методы и функции. Можно ли каким-то образом сделать так, чтобы VSCode давал подсказки по коду? html

       Document           

JavaScript (geo.js)

SVG.on(document, 'DOMContentLoaded', function() < if (SVG.supported) < var draw = SVG('drawing'); draw. //после точки должны появиться подсказки >else < alert('SVG not supported'); >>); 

Отслеживать
задан 9 мар 2018 в 16:44
279 2 2 серебряных знака 13 13 бронзовых знаков

эмм, так вот же types уточните пожалуйста 1. как вы устанавливаете библиотеку (версия, содержание package.json) 2. пишите на js или ts 3. пример кода

9 мар 2018 в 18:08

@qwabra Пишу на js. package.json взял на GitHub в их репозитории. package.json находится в той же папке, что и svg.js. Самый простой пример кода: var draw = SVG(‘drawing’); draw. после точки, VS Code должна предлагать варианты .

9 мар 2018 в 20:17

зря метки поменяли, то что вам нужно — файлы *.d.ts это часть typescript @types но обо всём подробнее завтра.

9 мар 2018 в 20:34
@qwabra Понял, буду Вас ждать.
9 мар 2018 в 20:43

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

ответ разделён на две части:

  1. Можно ли включить подсказки кода в VSCode для сторонних библиотек?
  2. Можно ли включить подсказки кода в VSCode для svg.js
  3. Разбор svg.js

1. Можно ли включить подсказки кода в VSCode для сторонних библиотек?

да, можно.
если вам повезло — устанавливаете из npm пакет и всё.
если не повезло — ищите *.d.ts

npm

  • https://www.npmjs.com/
  • https://www.npmjs.com/~types

definitelytyped

  • https://code.visualstudio.com/docs/languages/javascript
  • http://definitelytyped.org/
  • https://microsoft.github.io/TypeSearch/
  • https://github.com/DefinitelyTyped/DefinitelyTyped

то, что вам нужно гуглится так @types имя_библиотеки
ещё можно посмотреть тут http://microsoft.github.io/TypeSearch/

например для nodejs — https://www.npmjs.com/package/@types/node
установка происходит командой npm install —save @types/node (!обратите внимание на версию типов и программы, могут отличаться)
после выполнения этой команды, скачиваются файлы содержащие только описание библиотеки, только типы, которые хранятся в файле с расширением *.d.ts

с недавнего времени, некоторые библиотеки при установке из npm уже содержат types и в этом случае не требуется выполнение npm install —save @types

2. Можно ли включить подсказки кода в VSCode для svg.js

  • http://svgjs.com/
  • https://github.com/svgdotjs/svg.js
  • https://github.com/svgdotjs/svg.js/blob/master/svg.js.d.ts

имеет .d.ts не всё описано

неизвестно имеют ли .d.ts сомнительно

3. Разбор svg.js

далее пример, взят отсюда:

  • http://svgjs.com/#go-crazy-with-animations
  • http://jsfiddle.net/wout/7wL1uv8n/?utm_source=website&utm_medium=embed&utm_campaign=7wL1uv8n
var input = document.querySelector('input[type=text]') var draw = SVG('drawing').viewbox(0, 0, 300, 140) var text = draw.text(function(add) < add.tspan( input.value ) >) text .path('M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80') .animate(1000, '<>') .plot('M10 80 C 40 150, 65 150, 95 80 S 150 10, 180 80') .loop(true, true) input.addEventListener('keyup', updateText(text)) function updateText(textPath) < return function() < textPath.tspan(this.value) >>
@import url('https://fonts.googleapis.com/css?family=Inconsolata'); #drawing < width: 100%; height: 300px; >tspan < fill: #e5e5e5; stroke: #f06; stroke-width: 0.85; font-family: 'Inconsolata'; >input[type=text]
  " placeholder="Type text here. "> 

разбор примера

создаём папку test
переходим в неё
создаём файл package.json следующего содержания:

< "author": "qwa", "description": "", "tags": [], "name": "svg.js", "private": true, "main": "", "version": "0.1.0", "dependencies": < "svg.js": "2.4.0" //, "devDependencies": < "reload": "2.2.2" //, "scripts": < "start": "reload" >> 

выполнием npm install
создаётся директория node_modules примерно такого содержания:

node_modules ├── . ├── svg.js │ ├── bench │ ├── dist │ │ ├── svg.js  

создаём и заполняем

      Document  -->  -->    " placeholder="Type text here. ">    
@import url('https://fonts.googleapis.com/css?family=Inconsolata'); #drawing < width: 100%; height: 300px; >tspan < fill: #e5e5e5; stroke: #f06; stroke-width: 0.85; font-family: 'Inconsolata'; >input[type=text]
//#region плохих советов /// if(!SVG) //#endregion плохих советов var input = document.querySelector('input[type=text]') var draw = SVG('drawing').viewbox(0, 0, 300, 140) var text = draw.text(function(add) < add.tspan( input.value ) >) text .path('M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80') .animate(1000, '<>') .plot('M10 80 C 40 150, 65 150, 95 80 S 150 10, 180 80') .loop(true, true) input.addEventListener('keyup', updateText(text)) function updateText(textPath) < return function() < textPath.tspan(this.value) >> 

введите сюда описание изображения

найденные с ходу ошибки:

как мы видим, в функцию viewbox передано 4 элемента, в то время как в types принимается всего один

далее, в чэйнинге

text .path() .animate() .plot() .loop() 

функция animate возвращает объект Animation из которого вызывается функция plot
в то время как в types она отсутствует https://github.com/svgdotjs/svg.js/blob/ceaf24d5/svg.js.d.ts#L930

резюмируя

у вас есть два пути:

  1. использовать как есть/ писать на гитхаб/ допиливать типы
  2. создать новый вопрос 'какие библиотеки для svg поддерживаются typescript' с меткой svg typescript

Настройки системы IntelliSense в Visual Studio

Система Visual Studio устанавливает много настроек средств IntelliSense по умолчанию, но многие из них можно изменить с помощью диалогового окна Options, если их значения, заданные по умолчанию, не устраивают разработчика. Некоторые из этих настроек связаны только с определенным языком программирования.

Общие настройки

Сначала рассмотрим настройки из группы Keyboard в разделе Environment. Каждой команде, доступной в системе Visual Studio, соответствует вполне определенная запись в списке комбинаций клавиш (на рисунке ниже показано диалоговое окно Options, которое открывается по команде Tools --> Options):

Настройки комбинаций клавиш для IntelliSense

Комбинации клавиш, заданные по умолчанию, можно заменить или добавить новые. Комбинации клавиш для команд системы IntelliSense приведены в таблице ниже:

Выводит на экран информацию команды Quick Info о выбранном элементе

Пытается дополнить слово, если существует однозначное соответствие, или выводит список, если есть несколько совпадений

Переключает систему IntelliSense из режима подсказки в режим дополнения

Выводит на экран информацию о списке параметров вызываемой функции

Открывает диалоговое окно Code Snippet, в котором можно выбрать фрагмент кода, чтобы вставить его автоматически (создание и использование сниппетов мы рассмотрим позже)

Генерирует полную заглушку метода по шаблону

Генерирует определения абстрактного класса из заглушки

Генерирует явную реализацию интерфейса для определения класса

Генерирует неявную реализацию интерфейса для определения класса

Используя способы, описанные в статье "Горячие клавиши в Visual Studio", можно добавить новые комбинации клавиш или изменить существующие для любой команды.

Дополнение инструкции

Работой системы IntelliSense можно управлять либо в глобальном масштабе, как показано на рисунке ниже, либо для каждого языка программирования в отдельности. Для того чтобы определить способ вывода списка членов классов или вообще отменить его вывод, на закладке General в группе All Languages диалогового окна Options можно изменить настройки Statement Completion:

Настройки Statement Completion для IntelliSense

Настройки для языка C#

Кроме общих настроек интегрированной среды разработки и языков программирования для системы IntelliSense, некоторые языки, например C#, имеют дополнительную закладку для определения собственных настроек. С помощью закладки настроек для языка C#, показанной на рисунке ниже, можно также задать способ вызова и использования средств технологии IntelliSense.

Настройки IntelliSense для C#

Во-первых, можно отключить список дополнений, чтобы они не появлялись автоматически. Некоторые разработчики предпочитают делать именно так, потому что списки членов классов мешают им набирать тексты своих программ. Если список дополнений выводится не автоматически, а только по вызову, то пользователь может сам решить, что включать в эти списки, помимо стандартных записей, включая ключевые слова и фрагменты кода.

Для того чтобы выбрать запись в списке членов классов, можно использовать любой из символов, доступных в разделе Selection In Completion List, или нажать клавишу пробела. В заключение, как указывалось ранее, система Visual Studio автоматически выделит тот член класса в списке, который использовался последним. В языке C# можно либо отключить это свойство, либо очистить историю.

Дополнительные возможности системы IntelliSense

Кроме основных аспектов технологии IntelliSense, в системе Visual Studio 2013 реализованы также дополнительные функциональные возможности интегрированной среды разработки, которые тоже относятся к этой технологии. Эти свойства подробно обсуждаются позже, а в этой статье приводится лишь их краткое описание.

Сниппеты

Сниппеты (code snippets) - это фрагменты кода, которые можно автоматически генерировать и вставлять в свой собственный код вместе с соответствующими ссылками и директивами using, помечая переменные фразы, чтобы облегчить их замену. Для того чтобы открыть диалоговое окно Code Snippets, следует нажать клавиши , .

В поисках требуемого сниппета можно перемещаться по иерархии каталогов сниппетов. Если разработчик знает комбинацию клавиш, установленную для конкретного сниппета, он может просто нажать ее и клавишу , и система Visual Studio вставит сниппет, не открывая диалоговое окно. Мощь сниппетов будет продемонстрирована в одной из следующих статей.

Использование сниппетов с помощью IntelliSense

Комментарии XML

Комментарии XML используются как способ автоматического документирования проектов и решений. Еще одним преимуществом использования XML-комментариев в своем коде является то, что система Visual Studio может использовать их в своей системе IntelliSense для вывода подсказок и более полной информации о параметрах, помимо простой информации о типах, как это делается в обычных пользовательских классах. Мы приведем примеры использования комментариев XML в одной из следующих статей.

Добавление собственных схем IntelliSense

Пользователь может добавить собственные схемы IntelliSense, которые бывают полезными для редактирования XML- и HTML-файлов. Для этого следует создать правильно отформатированный XML-файл и инсталлировать его в подкаталог Common7\Packages\schemas\xml каталога инсталляции системы Visual Studio (по умолчанию C:\Program Files\Microsoft Visual Studio ). Например, можно расширить возможности технологии IntelliSense для XML-редактора, включив свою собственную схему определений. Описание процесса создания таких схем, выходит за рамки нашего руководства, но о нем можно прочитать в статье "Функции IntelliSense редактора XML".

Итак, в этой и предыдущих статьях мы рассмотрели систему IntelliSense. Функциональные возможности технологии IntelliSense выходят за пределы основного окна редактирования кода. Мощь технологии IntelliSense, проявляющаяся в автоматическом дополнении инструкций и параметров, можно использовать во многих других инструментальных окнах, например Command и Immediate. Любые ключевые слова и даже переменные и объекты, известные в текущем контексте на протяжении сессии отладки, могут быть найдены с помощью списка членов классов IntelliSense. Технология IntelliSense во всех ее проявлениях значительно повышает эффективность работы системы Visual Studio по сравнению с большинством других доступных инструментов. Постоянно отслеживания нажатия клавиш, чтобы обеспечить обратную визуальную связь или автоматическое дополнение и генерацию кода, система IntelliSense позволяет разработчикам исключительно быстро, эффективно и правильно набирать программы с первой попытки.

Как включить подсказки для кода C# в Visual Studio Code в Unity?

Как подключить Visual Studio Code и Unity? Как включить эти подсказки и автодописание значений в коде? я использую Visual Studio Code, открываю его через Unity, то есть подключение через Unity. Но когда я начинаю писать допустим "Transform" то программа не видит этого значения. Без подсказок писать там просто практически невозможно, а обычный Visual Studio я не хочу использовать потому что VS Code для меня удобнее. Я скачивал .NET Core версии, ставил пути в переменные, смотрел 30+ видео на ютубе, но ничего не работает. Даже VS Code Insider тоже не работает. Никакие установленные расширения тоже не помогают.

Единственно что я получаю: OmniSharp Error: spawn cmd ENOENT

Лучший ответ

Пишу комментарий со своего второго аккаунта.

Нужно установить .NET Framework (Dev, Targeting Pack, SDK)
В Unity поставить .NET на 4x
В Visual Studio Code установить все нужные расширения, такие как: Unity Tools, C#
Добавить в переменную окружения path путь C:\Windows\System32 (И в пользовательскую и в системную)
Как вариант ещё можно попробовать установить Packcage (вроде так называется) "Visual Studio Code for Unity" в Unity
И ещё можно попробовать нажать Assets > Open C# Project

После этого всё точно должно заработать. Если нет, то перезагрузите пк, а после входа в Visual Studio Code подождите минут 5 чтобы всё загрузилось. (После перезагрузки пк у меня всё заработало)

АндрейПрофи (556) 2 года назад

ещё вариант который мне помог после переустановки винды =) .NET Framework нужно скачивать именно на версию 4.7.1 (в настройках проекта было так указанно, через время могут изменить, но пока работает)

Остальные ответы

Долблюсь с этим интеллисансом каждый раз, после переустановки винды. Каждый раз ошибки разные, но такой ещё не ловил.

Попробуй добавить в пользовательскую переменную окружения path путь C:\Windows\System32. Гугл говорит что вроде помогает.

АрбузЗнаток (397) 2 года назад
Пробовал, не помогло (
Xttx Мыслитель (8079) Андрей Ишевских, А полный лог омнишарпа можешь кинуть?
BabadukПросветленный (21017) 2 года назад
там системрут не робит?

Арбуз Знаток (397) Игрок, я могу написать скрипт, он будет работать, переменные среды тоже работают, просто когда я пишу то нету подсказок. Я попробую перезагрузить пк, если получится/не получится то завтра напишу

XttxМыслитель (8079) 2 года назад

Добавить ту переменную - это workaround. Тот путь он уже и так есть в винде, в системной переменной. Просто люди пишут, что помогает если добавить его ещё и в пользовательскую.

Арбуз Знаток (397) Xttx, спасибо, но он просто у меня уже в обоих стоит, я перезагружу пк и если сработает, то завтра напишу

XttxМыслитель (8079) 2 года назад

Хорошо. Значит отделался малой кровью :). Сам каждый раз мучаюсь - то у него версия сдк с версией msbuild не совпадает, то он юнитивские dll-ки в другой папке ищет, то ещё что ни-будь. и сидишь, гуглишь 3 дня что с этим делать (.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *