Так повелось, что людям проще и приятнее делать то, что им нравится, то к чему они привыкли. А разработчики, как никто другой должны ценить своё время и с каждым разом находить новые решения.
Решение, представленное здесь простое в реализации, но позволяет экономить значительную часть времени разработки. Я хочу сказать о шаблонах элементов Вашего проекта. Зачастую такими элементами являются не только файлы *.cs; *.js; *.cpp, а сложные древовидные структуры каталогов, взаимосвязанных файлов и временами ссылок.
С целью облегчения процесса добавления такого сложного, составного элемента Вы можете настроить шаблон и использоватьего столько раз, сколько захотите. А ещё одним преимуществом является то, что им можно поделиться с коллегой и сэкономить ещё час на вечерний кофе.
Подготовка
Для создания шаблона нам потребуется только идея и текстовый редактор. Мы будем создавать шаблон компонента для библиотеки knockout.js, который сосоит из двух файлов: html разметки и js-ой модели.
В своём проекте мы с коллегами используем require.js поэтому файл с моделью я сразу создам не пустой, а с небольшими набросками, опять же, для удобства.
Вот содержимое моего файла component.js. Имена файлов можно использовать любые, главное указать их в конфигурации представленной ниже.
define([ 'knockout' ], function (ko) { 'use strict'; return function (params) { initialize(); function dispose() { } function initialize() { } return { dispose: dispose }; }; });
Файл с разметкой component.html я оставляю пустым, так как единого шаблона не удалось выделить, корневые элементы всегда различны div; input; select; ul и прочие.
Файл с картинкой должен быть в формате ICO. Без труда Вы найдёте любой конвертер онлайн в интернете либо воспользуетесь хорошим редактором для его создания.
Настройка
Чтобы шаблон стал доступен в меню добавления элемента в проект необходимо:
- Положить все файлы в папку C:\Users\<user_name>\Documents\Visual Studio 2013\Templates\ItemTemplates\JavaScript\<template_name>
- Перезапустить Visual Studio.
Главный файл <template_name>.vstemplate для моего решения представлен ниже
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> <TemplateData> <DefaultName>Knockout-component.js</DefaultName> <Name>Knockout component</Name> <Description><No description available></Description> <ProjectType>CSharp</ProjectType> <SortOrder>10</SortOrder> <Icon>__TemplateIcon.ico</Icon> </TemplateData> <TemplateContent> <References /> <ProjectItem SubType="" TargetFileName="$fileinputname$/$fileinputname$.js" ReplaceParameters="true">component.js</ProjectItem> <ProjectItem SubType="" TargetFileName="$fileinputname$/$fileinputname$.html" ReplaceParameters="true">component.html</ProjectItem> </TemplateContent> </VSTemplate>
Обратите внимание на конструкцию вида $fileinputname$/$fileinputname$.html. С её помощью можо задавать любые пути для указания конечного местонахождение копируемых файлов после добавления элемента в проект.
Список файлов директории с шаблоном
29.06.2015 08:54 3 component.html 29.06.2015 11:36 247 component.js 29.06.2015 11:34 751 ko-component.vstemplate 29.06.2015 08:52 10 134 __TemplateIcon.ico 4 File(s) 11 135 bytes
Вот и всё, Ваш шаблон готов, перезагрузите IDE и пользуйтесь.