Сниппеты для VS
Потихоньку играюсь с VS2017/VS2019. Но набивать абсолютно одни и те же using меня слегка достало. Ок, гугел, что можно сделать? 2 минуты чтения - вуаля, все готово!
Да, я лентяй, да, я этим горжусь. Да, я хочу оставить себе шпаргалку, отстаньте. Да, шаблоны проектов будут позже, когда до них дозрею.
Чуть ли не первая же ссылка в поиске показывает, что и как надо сделать. Ок, приступаем.
В первую очередь создаем сниппет для импорта пространств имен:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>using Autodesk...</Title> <Author>kpblc</Author> <Description>Импорт основных пространств имен Autodesk без алиасов</Description> <Shortcut>UseAcad</Shortcut> </Header> <Snippet> <Code Language="CSharp"> <![CDATA[using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Colors; using Autodesk.AutoCAD.ComponentModel; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.GraphicsInterface; using Autodesk.AutoCAD.Internal; using Autodesk.AutoCAD.LayerManager; using Autodesk.AutoCAD.PlottingServices; using Autodesk.AutoCAD.Publishing; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.Windows;]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> |
Ну и следом, не включая головной мозг - сниппеты для определения команд и lisp-функций:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Command</Title> <Author>kpblc</Author> <Description>Определение команды AutoCAD</Description> <Shortcut>Command</Shortcut> </Header> <Snippet> <Code Language="CSharp"> <![CDATA[ [CommandMethod("$CommandName$")] public static void $FunctionName$() { return; }]]> </Code> <Declarations> <Literal> <ID>CommandName</ID> <ToolTip>Определите имя команды</ToolTip> <Default>_kpblcCmd</Default> </Literal> <Literal> <ID>FunctionName</ID> <ToolTip>Определите имя c#-функции</ToolTip> <Default>KpblcCmd</Default> </Literal> </Declarations> </Snippet> </CodeSnippet> </CodeSnippets> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>LispFunction</Title> <Author>kpblc</Author> <Description>Определение lisp-функции</Description> <Shortcut>Lisp</Shortcut> </Header> <Snippet> <Code Language="CSharp"> <![CDATA[ [LispFunction("$LispName$")] public static void $FunctionName$(ResultBuffer rb) { }]]> </Code> <Declarations> <Literal> <ID>LispName</ID> <ToolTip>Определите имя lisp-функции</ToolTip> <Default>_kpblc</Default> </Literal> <Literal> <ID>FunctionName</ID> <ToolTip>Определите имя c#-функции</ToolTip> <Default>KpblcLisp</Default> </Literal> </Declarations> </Snippet> </CodeSnippet> </CodeSnippets> |
Файлы соответственно можно скачать в архмве.
Если охота, можно создать аналогичные сниппеты для использования т.н. алиасов (т.е. вместо using Autodesk.AutoCAD.Colors воткнуть using AcCo = AUtodesk.AutoCAD.Colors и т.п.), но я пока этого делать не стал.
Теперь осталась совсем малость: заставить VS "увидеть" эти сокращения и начать их использовать. Импорт выполняем прямо так, как описано в ссылке, ну или вручную распаковываем архив в
1 | %USERPROFILE%\Documents\<Версия VS>\Code Snippets\Visual C#\My Code Snippets |
(сработало на VS2017 и VS2019, что будет дальше - не представляю).
И в общем-то, на этом все. Теперь достаточно в VS начать набирать useacad и потом два раза на Tab - ок, пространства имен импортированы. Вбиваем Lisp, два раза Tab - определение lisp-функции готово (только поменять некоторые моменты надо будет). Аналогично с командами.