Есть ли способ изменить код, введенный IntelliSense при использовании автозавершения кода в Visual Studio? - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу изменить код автозаполнения, который вводит Visual Studio / Intellisense при нажатии tab или tab tab .

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

Например, когда я набираю "MessageBox".s "и нажмите вкладку, он автоматически завершится с

MessageBox.Show

Я хотел бы изменить его так, чтобы вместо этого он автоматически завершался до

MessageBox.Show("");

Таким образом, я могу сэкономить время,не нужно вводить скобки, кавычки и точки с запятой, которые я всегда буду использовать.Есть ли способ сделать это в Visual Studio?Я использую Visual Studio Community 2017. Или есть сторонние дополнения, которые я могу использовать для настройки поведения?

Ответы [ 3 ]

0 голосов
/ 31 декабря 2018

Я предполагаю, что вы уже сделали это, но чтобы отредактировать настройки автозаполнения / intellisense в Visual Studio 2010, вы можете перейти в Инструменты -> Параметры ... -> TextEditor -> C # -> IntelliSense

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

Проблема, которую вы пытаетесь решить, - это печатать меньше, чтобы писать больше, когда вы печатаетеочень часто.

То, что вы предлагаете, может существовать (редактирование автозаполнения), но я постоянно использую шаблоны Live.Я использую Rider (не visual studio), поэтому он может называться Snippets, но это именно то, о чем вы спрашиваете.

Уже существуют примеры, которые очень полезны, например, есливы набираете cw, затем вкладка, и в ней будут записаны полные Console.WriteLine(); и курсор в скобках.Вы даже можете добавить переменные и много очень полезных вещей.Другие стандартные шаблоны по умолчанию: foreach + tab + tab, или for, или switch, вы поймете идею.

В любом случае, найдите в своих настройках «живые шаблоны» (или фрагменты) иВы можете добавить столько, сколько хотите там.Тогда, для вашего случая, вы можете просто написать mb tab tab, и вам будет хорошо;)

Я также предлагаю вам посмотреть, как настроить эти живые шаблоны с помощью $ VAR $, $ SELECTION $ $END $ и так далее, так что вы можете максимизировать свою эффективность с ним.

Кроме того, с новым годом \ o /

0 голосов
/ 31 декабря 2018

Краткий ответ: да ... и нет.

Насколько я понимаю, в Visual Studio есть две разные категории кода автозаполнения:

  • Фрагменты кода,Блоки кода, которые хранятся в файлах, заканчивающихся на .snippet.
  • Классы и их методы

Фрагменты кода находятся в разных местах в файлах VS (мои находятся в совершенно другом месте, чем файлы Шнайдера).Это такие вещи, как Если заявления, и файлы могут быть открыты и отредактированы.Вы можете найти расположение папок / файлов в VS, выбрав Сервис> Диспетчер фрагментов кода> CSharp> Visual C #.Для меня это был C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC # \ Snippets \ 1033 \ Visual C #.Если вы дважды щелкнете по одному из файлов, вы сможете открыть его в VS и отредактировать код, который представляет собой XML.Если вы хотите отредактировать заполненный код, найдите часть кода с «CDATA»:

<Code Language="csharp"><![CDATA[foreach ($type$ $identifier$ in $collection$)
{
    $selected$ $end$
}]]>

Подробнее о синтаксисе в документации Microsoft вы можете прочитать подробнее.Но если вы хотите изменить другой тип материала автозаполнения - классы и их методы из встроенных библиотек - как можно лучше, нет никакого способа сделать это;тем не менее, существует обходной путь в создании собственных пользовательских фрагментов с помощью «ярлыков».Я нашел эту страницу от Microsoft, чтобы понять, как это сделать.Было несколько вещей, которые я должен был сделать по-другому, хотя по сравнению с документацией, поэтому я приведу объяснение здесь, используя пример MessageBox.Show на C #.

Перейдите в Файл> Создать> Файл

file new file

Когда появится окно нового файла, выберите файл XML.New XML file

Избавьтесь от строки кода по умолчанию и вставьте следующий код:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>MessageBox.Show</Title>
      <Shortcut>mess</Shortcut>
    </Header>
    <Snippet>
      <References>
        <Reference>
          <Assembly>System.Windows.Forms.dll</Assembly>
        </Reference>
      </References>
      <Imports>
        <Import>
          <Namespace>System.Windows.Forms</Namespace>
        </Import>
      </Imports>
      <Code Language="CSharp">
        <![CDATA[MessageBox.Show("");]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

Ярлык - это то, что вы будете вводить в своемкод проекта, чтобы вызвать этот фрагмент, чтобы прийти в качестве предложения.И после CDATA между скобками будет код, который автоматически заполняет вас.

Сохраните файл в папке «Документы» (это папка по умолчанию, где VS будет выглядеть позже).Назовите файл MessageBoxShow.snippet

Теперь перейдите в Инструменты> Диспетчер фрагментов кода

Go into snippets manager

Выберите язык (Csharp) и нажмите кнопкуimport

select language

Перейдите к файлу MessageBox.Snippet, который вы только что сохранили, и дважды щелкните по нему.Откроется диалоговое окно «Импорт фрагмента кода», в котором вам будет предложено выбрать, куда добавить фрагмент из вариантов на правой панели.Одним из вариантов должен быть мой фрагмент кода.Выберите его и нажмите «Готово» import your file

Нажмите кнопку «ОК», чтобы закрыть диспетчер фрагментов кода.

Теперь вы сможете набирать «беспорядок» и иметь свой собственныйВведите фрагмент кода. Если нет, попробуйте закрыть и снова открыть свой проект или VS.В руководстве Microsoft сказано, что вы можете добавить ярлык позже, но я попробовал его таким образом, а VS не поднял его, поэтому мне пришлось заново создать файл с ярлыком вместо , а затем импортировать егои это сработало!

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

Спасибо, Питер Шнайдер и Гил Сэнд за ваш вклад.Хотя вы не дали мне прямого решения моего вопроса, вы помогли мне найти то, что я искал.

0 голосов
/ 31 декабря 2018

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

В качестве отправной точки взгляните на фрагменты, определенные в C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Snippets\1033\Visual C#

...