Как добавить собственные фрагменты кода в VSCode?

101

Можно ли добавить собственные фрагменты кода в Visual Studio Code? И если да, то как? VSCode основан на Atom, поэтому это должно быть возможно.

BeastCode
источник
2
вы также можете перейти в «Настройки»> «Пользовательские фрагменты», а затем выбрать язык, на котором вы хотите создать фрагмент.
Амитуууш, 01
Есть ли действительно связь между VS Code как Atom, кроме того факта, что они оба используют Electron под капотом?
skelliam
Для этого используйте сервис codessnippet . Вы можете создавать собственные сниппеты, редактировать и синхронизировать с codessnippet cli все сниппеты сразу, просто извлекая их с сервера!
user13428826
Я хочу добавить ссылку на веб-страницу в описание, кто-нибудь знает, как это сделать?
январь

Ответы:

116
  1. Нажмите> shift+ command+ pи введите сниппеты.
  2. Выберите предпочтения: открыть пользовательские фрагменты
  3. Выберите тип языка, для которого вы хотите добавить настраиваемый фрагмент
  4. vscode имеет комментарии, чтобы объяснить, как добавить фрагмент, как описано в:> vsdoc

Допустим, мы хотим открыть настраиваемые сниппеты для языка GO. Тогда мы можем сделать:

  1. Хит> command+p
  2. Тип: go.json + enter И вы на страницу настраиваемого фрагмента.

Фрагменты определены в формате JSON и хранятся в файле .json для каждого пользователя (languageId). Например, фрагменты Markdown помещаются в файл markdown.json.


Обновите новые инструменты:
Сайт генератора сниппетов: https://snippet-generator.app/

Чандан Наяк
источник
3
генератор
сниппетов
68

option - 1 Есть плагин VsCode под названием: snippet creator ..

После его установки все, что вам нужно сделать, это:

  1. Выберите код, который вы хотите превратить в фрагмент.
  2. Щелкните его правой кнопкой мыши и выберите «Палитра команд» (или Ctrl+ Shift+P ).
  3. Напишите «Создать сниппет».
  4. Выберите тип файлов, которые необходимо просмотреть, чтобы активировать ярлык для вашего фрагмента.
  5. Выберите ярлык для фрагмента.
  6. Выберите название сниппета.

вариант - 2 проверить этот сайт . вы можете создавать сниппеты для кода vs, возвышенного текста и атома.

После создания сниппета на этом сайте. Перейдите к файлу фрагмента соответствующей среды IDE и вставьте его. Например, для фрагмента JS в коде VS перейдите в раздел File-> preference-> user snippet, затем он открывает файл javascript.json, затем вставляет фрагмент кода с указанного выше сайта внутрь него, и все готово.

Праная Кумар
источник
8
Это такой классный инструмент! Мне было невыносимо писать собственный шаблонный фрагмент HTML, в котором нужно было цитировать и экранировать каждую строку, так что это действительно тот ответ, который я искал.
nabrown
3
Серьезно, здесь палочка-выручалочка.
JeremyW
Вау, это отличный инструмент, отлично сработавший. Следует отметить правильный ответ
StefanBob
Ссылка на генератор фрагментов не работает. Пожалуйста, перейдите по этой ссылке: snippet-generator.app
Sandip Subedi
1
почему вы написали step1 и step2? это больше похоже на option1 и option2, или они связаны?
Xsmael
26

Начиная с версии 0.10.6 вы можете добавлять собственные сниппеты. Прочтите документацию по созданию собственных сниппетов . Вы можете найти / создать собственные сниппеты, поместив файл json в C:\Users\<yourUserName>\AppData\Roaming\Code\User\snippets. Например, пользовательские фрагменты javascript будут в\snippets\javascript.json

Вы также можете публиковать свои сниппеты, что тоже очень удобная функция. Джон Папа создал красивый фрагмент angular + typescript, который вы можете скачать как расширение на торговой площадке .

Вот пример фрагмента, взятого для документации по javascript для цикла:

"For Loop": {
    "prefix": "for",
    "body": [
        "for (var ${index} = 0; ${index} < ${array}.length; ${index}++) {",
        "\tvar ${element} = ${array}[${index}];",
        "\t$0",
        "}"
    ],
    "description": "For Loop"
},

куда

  • For Loop это имя сниппета
  • prefixопределяет префикс, используемый в раскрывающемся списке IntelliSense. В этом случае для.
  • body- это содержимое фрагмента. Возможные переменные:
    • 1 доллар, 2 доллара за позиции табуляции
    • $ {id} и $ {id: label} и $ {1: label} для переменных
    • Связаны переменные с одинаковым идентификатором.
  • description это описание, используемое в раскрывающемся списке IntelliSense
Prancer
источник
6
Им действительно нужен синтаксис многострочного строкового литерала или способ вывести тело в отдельный файл. Цитирование и экранирование каждой строки - безумие.
Марк Уилбур
Приносим извинения за голосование против этого ответа, это был мошеннический щелчок 🙄
Джайлз Батлер
16

Вы можете посмотреть это видео, чтобы получить краткое руководство

https://youtu.be/g1ouTcFxQSU

Перейдите в Файл -> Настройки -> Пользовательские фрагменты . Выберите желаемый язык.
Теперь введите следующий код, чтобы создать фрагмент цикла for:

  "Create for loop":{
    "prefix": "for",
    "body":[
      "for(int i = 0; i < 10; i++)",
      "{",
      "   //code goes here",
      "}"
    ],
   "description": "Creates a for loop"
  }

Вы сделали.
Наберите "for" в редакторе и воспользуйтесь первым предсказанием.

КОРОТКОЕ -

  1. установить расширение Snippet-creator .
  2. Выделите код, который вам нужен для создания сниппета.
  3. нажмите ctrl+ shift+ Pи введите «Создать сниппет» на палитре команд и нажмите ENTER.
  4. выберите язык, для которого вы хотите создать фрагмент (например: -CPP), затем введите
    имя фрагмента, введите ярлык фрагмента и затем введите описание фрагмента.
    Теперь вам хорошо.
    Введите в редакторе ярлык фрагмента, который вы ввели на шаге 4, и выберите
    прогноз (если прогноз не поступил, нажмите ctrl + пробел), который будет первым.

Надеюсь это поможет :)

Примечание: перейдите к File-> Preferences-> User Snippets. Затем выберите язык, на котором вы
создали фрагмент. Здесь вы найдете фрагмент.

Винод
источник
9

Есть плагин VsCode под названием: snippet creator ..

После его установки все, что вам нужно сделать, это:

  1. Выберите код, который вы хотите превратить в фрагмент.
  2. Щелкните его правой кнопкой мыши и выберите «Палитра команд» (или Ctrl+ Shift+P ).
  3. Напишите «Создать сниппет».
  4. Выберите тип файлов, которые необходимо просмотреть, чтобы активировать ярлык для вашего фрагмента.
  5. Выберите ярлык для фрагмента.
  6. Выберите название сниппета.

Вот и все ..

Примечание: если вы хотите отредактировать свои фрагменты, вы найдете их в [fileType] .json
Пример: Ctrl+ P, затем выберите «javascript.json»

Питер Шейкер
источник
5

Вы можете добавить собственные скрипты, перейдите по ссылке File --> Preferences --> User Snippets. Выберите желаемый язык.

Если вы выберете Javascript, вы увидите собственный сценарий по умолчанию, console.log(' ');например:

"Print to console": {
    "prefix": "log",
    "body": [
        "console.log('$1');",
        "$2"
    ],
    "description": "Log output to console"
},
Мадханкумар
источник
5

Я пробовал добавлять фрагменты в javascriptreact.json, но у меня это не сработало.

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

FILE --> Preferences --> User snippets

здесь выберите New Global Snippets File, дайте имя javas criptreact.code-snippets.

Для других языков вы можете назвать [your_longuage] .code-snippets

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

Лакканна Валикар
источник
4

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

Лучший совет - добавить это на сайт с голосовыми сообщениями пользователей и дождаться его окончания. Но это приближается.

Джон Папа
источник
0

Если вы не хотите писать свои сниппеты в JSON, попробуйте Snipster . Он позволяет вам писать фрагменты, как если бы вы писали сам код - без необходимости заключать каждую строку в кавычки, escape-символы, добавлять метаинформацию и т. Д.

Он также позволяет писать один раз, публиковать где угодно . Таким образом, вы можете использовать свой фрагмент в VS Code, Atom и Sublime, а также в других редакторах в будущем. Больше информации здесь .

Джанстра
источник
0

Возможно, это не настоящий ответ (как некоторые ответили выше), но если вы заинтересованы в создании пользовательских фрагментов кода для других людей, вы можете создавать расширения, используя yeoman и npm (который по умолчанию поставляется вместе с NodeJS). ПРИМЕЧАНИЕ: это только для создания сниппетов для других систем. Но это также работает и для вас! За исключением того, что вам нужен код JS для всего этого.

airax86
источник