Можно ли настроить VS Intellisense для запуска «до курсора»? - PullRequest
0 голосов
/ 15 мая 2019

Я использую и Delphi, и Visual Studio (C #), и я заметил разницу в том, как работает завершение кода, что я нахожу действительно раздражающим.В Delphi, если вы редактируете существующий код, чтобы изменить переменную, которую вы используете, завершение кода даст подсказки, основанные на коде перед курсором.Например, вставка «I» в myString, чтобы стать myIString, даст подсказку кода для отображения любых доступных переменных, начинающихся с «myI».Выбор одного из них затем перезапишет myString новым.

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

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

Вот несколько скриншотов, которые (надеюсь) иллюстрируют разницу.Я изо всех сил пытался сказать это лучше всего!

Завершение кода в Delphi

Завершение кода в Visual Studio

Я пытался поиграть с настройками Intellisense в VisualСтудия и там нет ничего, что может изменить поведение.Есть ли способ воспроизвести его в C #?

1 Ответ

0 голосов
/ 16 мая 2019

Я пытался поиграть с настройками Intellisense в Visual Studio и там нет ничего, что может изменить поведение. Есть любой способ воспроизвести его в C #?

На данный момент VS не поддерживает это поведение. Автозаполнение не будет работать, когда мы вставим символ в существующую переменную. Это вступит в силу, когда мы введем символ в пустом месте.

enter image description here Введите символ на новом месте, интеллектуальный смысл работает.

enter image description here Вставить символ, смысл не работает.

На мой взгляд, ваши предложения действительно значимы. Я думаю, что было бы лучше, если бы у нас была новая опция для поддержки автозаполнения при вставке символа, поэтому я предлагаю вам перейти Go>> Help => Seed Feedback => Предоставить предложение, чтобы опубликовать свою идею там.

Мы, кто заинтересован в этом, проголосуем за вас, если вы поделитесь ссылкой здесь.

Как альтернативные способы:

Вы можете перейти Инструменты => Параметры => Текстовый редактор => C # => Intellisense => Включить Show Completion list after a character is deleted вариант.

Затем вы можете вставить 'i', оператор может быть myiSring1.GetType(); И удалить любой или все символы в String1, он будет отображать intellisense, как показано ниже: (например: я удаляю 'r'.) Очевидно, это то, что вы действительно хотите, но, как я уже упоминал выше, сама VS пока не поддерживает такое поведение, надеюсь, что вы можете использовать «опцию удаления», это сэкономит некоторое время. Приносим извинения за неудобства.

enter image description here

Кроме того, вы можете проверить, может ли ReSharper удовлетворить ваши потребности, так как это сторонний инструмент, который, кажется, заряжается после пробной версии xx-дней, у меня нет более подробной информации о нем.

Надеюсь, все вышеперечисленное поможет:)

...