Visual studio code определение не найдено

Обновлено: 07.07.2024

Есть ли способ отключить функцию "peek" ctrl-click в Visual Studio Code? В идеале я бы хотел, чтобы ctrl-click просто открыл файл, содержащий определение, на новой вкладке.

Редактировать: Я представил вопрос, чтобы хотя бы сделать его менее запутанным. По-видимому, моя терминология немного ошибочна.

Чтобы уточнить, есть два действия:

  1. Щелкните правой кнопкой мыши → Определение Peek
  2. Щелкните правой кнопкой мыши → Перейти к определению (привязанный к ctrl-click)

Их поведение выглядит следующим образом:

  1. PD, одно определение
    • Открывает встроенный интерфейс, показывающий определение.

PD, множественные определения

  • Открывает встроенный интерфейс, показывающий определения.

GtD, одно определение

  • Откройте файл, содержащий определение.
  • Выберите одно из определений случайным образом, откройте этот файл и встроенный интерфейс, содержащий все определения.

Все это прекрасно, за исключением последнего. Выполнение обеих вещей приводит к действительно избыточному и запутанному интерфейсу:

Confusing!

Должен быть способ иметь одно из этих типов поведения:

  • Выберите одно из определений случайным образом, откройте этот файл.
  • Откройте встроенный интерфейс, содержащий все определения (в текущем файле)

ОТВЕТЫ

Ответ 1

enter image description here

Ответ 2

Я попытался найти обходной путь, изменяющий поведение CMD +. Нажмите, чтобы перейти к реализации, но, похоже, решения пока нет?

На моей машине (Mac), если я нажму CMD + Click или F12 в методе, он направит меня к представлению Peek для определения, однако CMD + F12 направит меня к реализации без появления Peek.

Ответ 3

Это действительно раздражало меня. Итак, вот мое временное исправление, которое исправляет установочные файлы VSCode. Вам нужно будет повторно применять каждое обновление. Вот указания для v1.30.2 и мой метод достижения этого - который может быть полезен для более поздних версий, если вам придется найти его самостоятельно.

Выясните, как выглядит функция, которая должна быть исправлена. Методом является DefinitionAction.prototype._onResult(editorService, editor, model)

Перейдите в каталог установки VSCode. %LocalAppData%\Programs\Microsoft VS Code

  • Щелкните правой кнопкой мыши и откройте каталог в VSCode, чтобы мы могли использовать функцию поиска VSCode для поиска текста в каждом файле.

Найдите _onResult и оцените каждый результат, проверяя, соответствуют ли подпись и тело тому, что мы ожидаем от функции, которую мы видели в шаге 1.

  • Мы знаем из шага 1, функция _openReference находится рядом. Используйте это, чтобы сузить поиск.
  • Я нашел это в строке 2443 workbench.main.js 758 . Он охватывает 2 строки. Используйте сопоставление скобок, чтобы найти конец или узнать, что он заканчивается непосредственно перед t.prototype._openReference
  • Это та функция, которую я нашел: t.prototype._onResult=function(e,t,n))>>

Замените функцию на следующую (если используется та же версия) или отформатируйте и отредактируйте функцию, которая, по вашему мнению, похожа на этот пример. Обратите внимание, что переменная i является глобальным объектом \window и может быть изменена.

Запустите VSCode. Вы получите Your Code installation appears to be corrupt. Please reinstall Your Code installation appears to be corrupt. Please reinstall . Просто нажмите значок шестеренки и нажмите " Don't Show Again.

Ctrl + Click теперь будет:

  • Используйте peek, если есть несколько определений
  • При использовании peek, не будет переходить к лучшему совпадению в редакторе, и вы потеряете свое место
  • Если есть только одно определение, оно перейдет к лучшему совпадению и НЕ откроет взгляд.

Ответ 4

** Что такое Peak ** well peek - небольшое окно, которое можно открыть в вашем коде, чтобы можно было редактировать или изменять код в других файлах, не открывая его.

** Чтобы отключить его ** хорошо, это довольно простая визуальная студия позволяет пользователю настраивать почти все, что есть множество настроек.

поэтому для выключения заглядывания следуйте инструкциям Инструменты> параметры> инструменты для повышения производительности> общий> контрольный щелчок показывает определения в режиме ожидания

Но теперь, когда вы отключили просмотр, он откроет вкладку предварительного просмотра.

Если вы не хотите этого, перейдите также в Инструменты> Параметры> Среда> Вкладки и Windows> Разрешить открытие новых файлов на вкладке предварительного просмотра

Меня интересует код Visual Studio , новый редактор, выпущенный Microsoft год и полтора года назад. Если я смогу овладеть этим, я думаю, что переключусь на это на своей Ubuntu. Итак, я написал программу "Hello, World!" , пытаясь найти, как настроить и использовать функции VSC.

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

Вот как выглядит моя папка. Я в основном настроил файлы tasks.json , launcher.json и c_cpp_properties.json с настройками по умолчанию (компиляция и отладка работают отлично), но, как вы можете видеть на скриншоте ниже, индексация не кажется происходит, так как в main.cpp не найдено ни одного символа (даже если я добавлю новые функции). Кроме того, попытка найти ссылки на переменную i приводит к No results , а запрос найти определение i ничего не делает.

Я уже попробовал:

  • Переустановка VSC
  • Удаление плагинов
  • Добавление папки $ в каталог c_cpp_properties.json для Linux

Вот скриншот. Обратите внимание на мои установленные расширения слева.


Ничто из того, что я видел, не помогло мне понять, в чем проблема. Я сделал что-то не так? Я на Ubuntu 16.04.

4 ответа

Несколько двоичных файлов расширения Microsoft C / C ++ vscode для Linux являются 64-разрядными. Поэтому, если вы работаете в 32-битном Linux, некоторые функции cpptools не будут работать. Вы можете проверить проблему на GitHub.

Может быть, конфликтует плагин intellisense C ++ с плагином Microsoft C ++. Вы можете отключить плагин, предоставленный Остином? Плагин Clang тоже не нужен. Плагин Microsoft имеет встроенную поддержку Clang и автозавершение кода.

Когда я задал свой вопрос, я был на Ubuntu VM. Вчера я установил раздел Ubuntu на свой жесткий диск, и vscode работал отлично, с определением взгляда, поиском ссылок и т. Д.

Через несколько часов я оказался в той же ситуации, что и когда сделал свой пост. Но потом я просто закрыл и снова открыл VSCode, и он снова заработал. Определенно ошибка VSCode.

Есть ли плагин, который позволяет найти файл, в котором определена функция/метод/класс, используемый в коде?

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

Простой 3 комментария

mountpoint

zhdoon

Андрей Саныч, не работает ctrl + click. Может мне нужно предварительно переиндексировать папку или что то типа того?

mountpoint

zkelo

Выделите название функции\метода и нажмите ALT + F12 или же используйте контекстное меню.

5c2ddcb52f6f1536950342.jpg

5d95d9a37cb65562810582.jpg

zkelo

Ler Den, F12 перекинет именно в тот файл, в котором объявлена функция, а с ALT определение будет показано прямо в том же файле, в котором работаешь. Это удобнее)

zhdoon

zkelo

zhdoon, у меня установлены вот эти расширения для работы с PHP. Скорее всего, одно из них и реализует такой показ определения и переход к нему

Фронтенд-разработчик, UX/UI-дизайнер Савио Мартин опубликовал в блоге на dev.to 34 расширения Visual Studio Code (VS Code) для повышения продуктивности.

1. Auto Rename Tag. Автоматически переименовывает парный тег «HTML/XML» так же, как Visual Studio IDE.

2. Better Comments. Помогает создавать в коде более понятные комментарии. Расширение позволяет разбивать аннотации на следующие категории:

  • Оповещения;
  • Запросы;
  • TODO-комментарии;
  • События.

3. Bootstrap 4, Font Awesome 4, Font Awesome 5 Free & Pro Snippets. Плагин кода Visual Studio, содержащий фрагменты кода Bootstrap 4, Font Awesome 4, Font Awesome 5 Free и Pro Snippets. Плагин работает как в стабильной, так и в инсайдерской сборке.

4. Bracket Pair Colorizer 2. Позволяет идентифицировать совпадающие скобки по цвету. Пользователь может определить, какие токены должны соответствовать и какие цвета использовать.

5. change-case. Позволяет быстро изменить регистр текущего выделенного текста или слова.

6. Code Runner. Запускает фрагмент или файл кода для нескольких языков (полный список доступен здесь ) и пользовательские команды.

7. Code Spell Checker. Цель расширения — проверка распространенных ошибок и уменьшение количества ложных срабатываний. Хорошо работает со стилем написания составных слов CamelCase (верблюжий регистр).

8. CSS Peek. Разрешает просмотр идентификаторов CSS и строк классов как определений из HTML-файлов в соответствующий CSS-файл. Позволяет просматривать и переходить к определению.

9. Debugger for Chrome. Расширение для отладки JavaScript-кода в браузере Google Chrome или других задач, поддерживающих протокол Chrome DevTools Protocol .

10. EJS language support. Подсветка синтаксиса для тегов EJS, JavaScript и HTML. Включает автозаполнение javascript.

11. ES7 React/Redux/GraphQL/React-Native snippets. Расширение для React, Redux и GraphQL в JavaScript/TypeScript с синтаксисом ES7 и функциями плагина Babel для VS Code.

12. GitHub Pull Request and Issue. Позволяет просматривать и управлять запросами на вытягивание GitHub и проблемами в Visual Studio Code.

13. GitLens — Git supercharged. Расширяет возможности Git, встроенные в VS Code. Среди функций:

  • Визуализация авторства кода с помощью аннотаций Git;
  • Плавное перемещение и исследование репозитория Git;
  • Получение необходимой информации с помощью команд сравнения.

14. Google Fonts. Расширение позволяет просматривать список шрифтов Google и вставлять их в HTML или CSS код.

15. Image Preview. Расширение для предварительного просмотр изображений при наведении курсора.

16. GraphQL. Добавляет подсветку синтаксиса, его проверку и языковые функции, такие как:

  • Переход к определению;
  • Просмотр информации о наведении и автозаполнение для проектов graphql ;
  • Работа с запросами, помеченными тегом gql .

17. vscode-styled-components. Подсветка синтаксиса и IntelliSense для стилизованных компонентов . Использует грамматику CSS, построенную на основе language-sass и language-css .

18. Prettify JSON. Расширение Prettify JSON для Visual Studio Code.

19. Import Cost. Позволяет отображать в редакторе размер импортированного пакета. Для этого расширение использует webpack и babili-webpack-plugin .

20. IntelliSense для имен классов CSS в HTML. Обеспечивает завершение имени класса CSS для атрибута HTML class на основе определений, найденных в рабочей области или внешних файлах, на которые ссылается элемент link .

21. JavaScript (ES6) code snippets. Расширение содержит фрагменты кода для JavaScript в синтаксисе ES6 для редактора VS CODE. Поддерживает как JavaScript, так и TypeScript.

22. Live Server. Запускает локальный сервер разработки с функцией перезагрузки в реальном времени для статических и динамических страниц.

23. Live Share. Расширение для совместной разработки, редактирования и отладки в режиме реального времени. Позволяет мгновенно и безопасно делиться проектами. Разработчики, которые подключаются к сеансам, получают необходимые файлы по текущему проекту и могут начать работу без необходимости клонирования репозиториев или SDK.

24. Markdown Preview Enhanced. Расширение для тех, кто знаком с Markdown Preview Plus или RStudio Markdown . Имеет множество полезных функций, среди которых:

  • Автосинхронизация скролла;
  • Поддержка языка диаграмм PlantUML,
  • Экспорт PDF,
  • Создание презентация.

25. Mongo Snippets for Node-js. Расширение для проектов Node-js. Содержит:

  • Сниппеты для подключения к документоориентированной системе управления базами данных MongoDB и запросов;
  • Команду Palette Feature для настройки кода шаблона;
  • Предложения по доработке для моделей Mongoose Models.

26. npm. Поддерживает выполнение npm-скриптов, определенных в файле package.json , и проверку установленных модулей на соответствие зависимостям, определенным в package.json .

27. npm Intellisense. Плагин Visual Studio Code, который автоматически заполняет модули nmp в операторах импорта.

28. Placeholder Images. Расширение позволяет создавать и вставлять так называемые изображения-заполнители в HTML-код в VS Code с помощью сторонних сервисов, таких как Unsplash, placehold.it и LoremFlickr.

29. Polacode. Позволяет делать скриншоты кода с пользовательскими шрифтами и темами.

30. Prettier — Code formatter. Средство для форматирования кода. Нацелено на использование жестко заданных правил по оформлению программ. Обеспечивает согласованный стиль, анализируя код и повторно воспроизводя его с особыми правилами, которые принимают во внимание максимальную длину строки.

31. Tabnine Autocomplete. Помощник на основе искусственного интеллекта (ИИ). Помогает кодировать быстрее и уменьшить количество ошибок. Изучает общедоступный код и использует алгоритмы глубокого обучения ИИ.

32. Tailwind CSS IntelliSense. Расширяет возможности разработки Tailwind, предоставляя пользователям VS Code больше функций, например, автозаполнение, выделение синтаксиса и линтинг (процесс проверки исходного кода на программные и стилистические ошибки).

33. Luna Paint. Позволяет редактировать растровые изображения из VS Code.

34. Quokka.js. Инструмент повышения производительности разработчика для быстрого прототипирования JavaScript/TypeScript. Значения времени выполнения обновляются и отображаются в IDE-среде рядом с кодом по мере его ввода.

Highload нужны авторы технических текстов. Вы наш человек, если разбираетесь в разработке, знаете языки программирования и умеете просто писать о сложном!
Откликнуться на вакансию можно здесь .

Для плюсования под линуксом давно использую CodeBlocks. Пытался вьехать в VS code, но как-то не пошло. И сложно, и неудобно, и тормозно и память ест изрядно. вопрос - есть таки у кого-то опыт использования vs code для c++? Как впечатления?

Это не ide - о каких впечатлениях может идти речь? Разве что для любителей пердолиться с вим.


Знаю истории узбека, народ использует, но процентов на 20 от задумки авторов. Тем не менее выхлопа почти столько же как и в qtc, как бы горько не было это признавать.

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

Visual Studio Code не умеет в С++, совсем. Используй QtCreator, KDevelop.

VSCode отлично умеет в C++ всех принятых стандартов. Все скрипты сборки/запуска/дебага настраиваются без проблем, если есть хоть одна извилина.

Хотя о чем это я, это же местный юродивый…


Пара коллег пользуются, говорят всё отлично.

А что в нём хорошего? Слегка продвинутый редактор кода с инопланетным интерфейсом.

И кстати не тормозил.

Мне нравится и есть ещё vscodium с якобы выпиленной телеметрией.

А чем отличается редактор от IDE? Переход к определению есть, интеграция с отладчиком есть (хотя отладчик для плюсов не пробовал, а пробовал только для golang и nodejs).

den73 ★★★★★ ( 30.03.20 10:19:18 )
Последнее исправление: den73 30.03.20 10:19:29 (всего исправлений: 1)


Я использую. Eclipse для Fortran, когда он нужен, может и хорош, но жрёт 800 мб.


хотя, по сути, это одно из немногих окружений которое в полной мере следует моим представлениям о будущем сред разработки.

Вот этот тезис можешь развернуть поподробнее?


Уметь то он умеет, но скрипты сборки, насколько я понял, придётся писать самому в любом случае - дерево проекта он строить не умеет.


Якобы телеметрия отключается в настройках. Но из плагинов её нужно выпиливать отдельно.


Они используют используют по максимуму идиому IDE это толстый клиент для его компонент. Учитывая что общение с серверами происходит по IPC, делать разработку на калькуляторе оптимизированном под отрисовку становится довольно просто.

Например в каком то из недавних релизов добавили возможность прозрачно работать над кодовой базой которая будет собираться, отлаживаться и использовать окружения удалённых серверов или докер контейнеров.

QtCreator тоже по этому пути идёт, но они не сделали шага по переходу на IPC вовремя, хотя на уровне бинарных протоколов плагинов у них всё для этого было готово.


Eclipse для Fortran, когда он нужен, может и хорош, но жрёт 800 мб.

Какбэ вскод жрет не меньше.


Знаю, зато заметно меньше жрёт codeblocks (речь шла о нём), а плагин для fortran у него не хуже + не нужно ваять для проекта каждый раз файлы для системы сборки.

grem ★★★★★ ( 30.03.20 10:54:49 )
Последнее исправление: grem 30.03.20 10:55:44 (всего исправлений: 1)


Зачем с vim пердолиться ? Можно просто его использовать.



Скажите, что есть в VSCode, чего нет в других редакторах. Там даже окружения из коробки нет, всё равно окружение придётся ставить руками, как и в Emacs/Vim. Где профит? Почему такая популярность? На реддите даже тренды были, когда Emacs-еры после пяти лет, переобувались в VSCode.

Artamudo ★★★ ( 30.03.20 11:36:53 )
Последнее исправление: Artamudo 30.03.20 11:38:02 (всего исправлений: 1)


Нет-нет, чувак хочет именно пердолиться. Кто ты такой чтобы ему запрещать?


Скажите, что есть в VSCode, чего нет в других редакторах. Там даже окружения из коробки нет, всё равно окружение придётся ставить руками, как и в Emacs/Vim. Где профит? Почему такая популярность?

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

В конфиг мне надо добавить 140 строк! (вместе с комментами и пустыми строками, но тем не менее) Что из этого надо? Я не хочу в этой срани разбираться, если я могу поставить вскод, в котором это просто работает.

В настройках вы можете сообщить Microsoft, что пытаетесь укрыться от надзора. Для этого нужно установить галочку «не собирать телеметрию».


Не могу сказать про Vim, потому что знаю как там всё, но скажу про Emacs. Есть Doom Emacs в котором чтобы установить все необходимые плагины для языка, тебе нужно всего лишь раскоментировать ОДНУ. строку в конфиге с этим языком. Если использовать LSP, он ещё и сам бинарники для него поставит. Управление гитом ИМХО проходит удобнее всего с Magit. Что ещё нужно то?

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

Artamudo ★★★ ( 30.03.20 12:03:53 )
Последнее исправление: Artamudo 30.03.20 12:06:57 (всего исправлений: 1)


Есть Doom Emacs в котором чтобы установить все необходимые плагины для языка, тебе нужно всего лишь раскоментировать ОДНУ. строку в конфиге с этим языком.

На мой взгляд все эти Зверь Эдишены от ✪Васяна1488✪ гораздо хуже. Непонятно что автор туда понапихал, как оно работает, что делать, если не работает.


Ну уж нет. Там специально продвигается декларативная настройка для редактора. Сломать что-то невозможно. Сделано всё с умом.

Читайте также: