Тип работы:
Предмет:
Язык работы:


Поддержка языка T4 в среде разработки Rider

Работа №128252

Тип работы

Бакалаврская работа

Предмет

информационные системы

Объем работы24
Год сдачи2021
Стоимость4315 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
29
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 6
2. Обзор предметной области 7
2.1. Синтаксис Т4 7
2.2. Сложности языка Т4 9
2.3. Существующие решения 10
2.4. ReSharper 10
2.5. Rider 11
2.6. Архитектура плагинов к Rider 11
3. Предлагаемое решение 12
3.1. Основа плагина 12
3.2. Архитектура плагина 12
3.3. Обзор функциональности плагина 14
3.4. Обеспечение качества 17
3.5. Обратная связь 17
3.6. Документация 17
4. Обзор ключевых алгоритмов 18
4.1. Граф включения файлов 18
4.2. Контекст синтаксического анализа 18
4.3. Оптимизация синтаксического анализа 19
5. Эксперимент 20
5.1. Условия эксперимента 20
5.2. Результаты 20
6. Ограничения 22
7. Заключение 23
Список литературы 24


При разработке программного обеспечения может возникать потребность написания простого и несодержательного кода или создания большого количества однотипных данных; автоматизация этого процесса может значительно увеличить производительность труда программиста. Один из способов автоматизировать это — написать программу, которая генерирует код или данные для проекта.
Поэтому существуют инструменты, упрощающие написание программ для кодогенерации. Один из таких инструментов — Т4 [7]. Т4 — язык программирования, созданный компанией Microsoft. Он содержит фрагменты кода на C#, которые исполняются для того, чтобы сгенерировать текст или код. Благодаря своему удобству этот инструмент широко используется: на платформе хостинга кода GitHub по запросу
‘‘template OR parameter OR output OR assembly OR import OR include extension:tt extension:t4 extension:ttinclude’’
на момент написания данной работы находится более 570’000 файлов .
У этого инструмента был важный недостаток: ни одна среда разработки не предоставляла полноценную поддержку этого языка «из коробки». Единственный инструмент, предоставлявший полноценную возможность исполнять такие файлы — Visual Studio, среда разработки от компании Microsoft. Но и она не предоставляла никакой интеллектуальной поддержки при редактировании этих файлов.
Более того, Visual Studio была единственной средой разработки, предоставлявшей полноценную поддержку исполнения файлов на этом языке. Из-за этого данная технология была привязана к Visual Studio, и все, кто работал с проектами с Т4, оказывались привязаны к ней и к операционной системе Windows.
В частности, они не могли использовать Rider [3] — кроссплатформенную среду разработки от компании JetBrains.
Поэтому возникла идея поддержать язык Т4 в Rider. Для того, чтобы проблему можно было считать решённой, в среде разработки Rider должна появиться возможность исполнять файлы на языке Т4 и интеллектуальная поддержка при их редактировании, которая включает в себя, но не ограничивается такими функциями, как подсветка синтаксиса, автодополнение, анализ кода на потенциальные проблемы, рефакторинги, показ документации.
Для того, чтобы у языка Т4 был полноценный кроссплатформенный способ исполнения и кроссплатформенный инструмент, предоставляющий полноценную поддержку сразу после установки, было принято решение создать плагин к Rider, который добавляет необходимую функциональность. Для упрощения задачи было принято решение не писать новый плагин, а адаптировать существующий плагин к ReSharper к запуску в Rider, переиспользовать код из него и расширить его функциональность до необходимого уровня.
1. Постановка задачи
Целью данной работы является создание плагина к среде разработки Rider, добавляющего поддержку языка Т4. Для её выполнения были поставлены следующие задачи:
1. Адаптировать существующий плагин к ReSharper к запуску в Rider.
2. Добавить в плагин возможность исполнять файлы и отлаживать их исполнение.
3. Улучшить интеллектуальную поддержку редактирования файлов, предоставляемую плагином.
4. Протестировать на типичных примерах файлов, автоматизировать это тестирование.
5. Получить обратную связь от пользователей и исправить возможные недочёты.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе данной работы был создан плагин к среде разработки Rider, добавляющий поддержку языка Т4. Для этого было сделано следующее:
1. Существующий плагин к ReSharper был адаптирован к запуску в Rider. Исходный код нового плагина был выложен на сервис GitHub по адресу https://github.com/JetBrains/ForTea.
2. В плагин была добавлена возможность исполнять файлы и отлаживать их исполнение.
3. Интеллектуальная поддержка редактирования файлов, предоставляемая плагином, была расширена.
4. Плагин был протестирован на типичных примерах файлов; это тестирование было автоматизировано.
5. Была получена обратная связь от пользователей. Наиболее критичные недочёты были исправлены.



[1] Balliauw Maarten. Rider front end plugin development // blog. — 2017.— URL: https://blog.jetbrains.com/dotnet/2017/02/07/rider-front-end-plugin-development/ (дата обращения:
10.25.2020) .
[2] JetBrains. ReSharper DevGuide. — 2017.— URL: https://
www.jetbrains.com/help/resharper/sdk/README.html (online; ac¬cessed: 17).
[3] JetBrains. Rider // overview.— 2019.— URL: https://www.jetbrains.com/rider/ (дата обращения: 28.10.2019).
[4] JetBrains. ReSharper // overview.— 2021.— URL: https://www.jetbrains.com/resharper/ (дата обращения: 02.05.2021).
[5] Koch Matthias. Writing plugins for ReSharper and Rider // blog. — 2019.— URL: https://blog.jetbrains.com/dotnet/2019/02/14/writing-plugins-resharper-rider/ (дата обращения: 10.25.2020).
[6] Lebosquain Julien. ForTea // GitHub.— 2013.— URL: https://github.com/MrJul/ForTea/ (дата обращения: 16.25.2020).
[7] Microsoft. Code Generation and T4 Templates.— 2016.— URL: https://docs.microsoft.com/en-us/visualstudio/modeling/code-generation-and-t4-text-templates (дата обращения: 02.05.2021).
[8] Microsoft. Guidelines for Writing T4 Text Templates. — 2016. — URL: https://docs.microsoft.com/en-us/visualstudio/modeling/guidelines-for-writing-t4-text-templates (дата обращения:
17.12.2020) .
[9] Microsoft. T4 Text Template Directives.— 2016.— URL:
https://docs.microsoft.com/en-us/visualstudio/modeling/t4-text-template-directives (дата обращения: 16.12.2020).
[10] Mono. Mono.TextTemplating. — 2020. — URL: https://github.com/mono/t4 (online; accessed: 18).


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ