Адаптація версії алгоритму Intellisense до профілю поточного проекту
Анотація
Проаналізовано декілька різних підходів до автодоповнення програмного коду та різні методи їхнього покращення. Досліджено системи автодоповнення програмного коду у різних середовищах розробки (Visual Studio, Visual Studio Code, Eclipse, IntelliJ, тощо) та для різних мов програмування (C#, Visual Basic, JavaScript, Java, Python, тощо). Детально проаналізовано алгоритм IntelliSense та його використання в середовищах розробки програмного забезпечення (ПЗ). Встановлено підходи, за допомогою яких розробники систем автодоповнення програмного коду досягали кращих результатів у знаходженні найкращої пропозиції стосовно завершення коду. Оглянуто системи, що використовують сторонні бази даних для кращого аналізу програмного коду користувача та знаходження найбільш відповідної пропозиції автодоповнення на підставі контексту. Розглянуто різні ідеї для кращого алгоритму та комбінацію декількох у певних системах. Встановлено, що жодна з наявних систем повністю не зменшує фізичну роботу розробника. Запропоновано нову ідею для покращення досвіду користувача під час написання програмного коду. Проведено модифікацію алгоритму IntelliSense, внаслідок чого він підтримує використання фільтрів проекту та впорядковує пропозиції відповідно до популярності їх використання у заданих фільтрах. Спроектовано базу даних, у якій зберігаються створені користувачем ПЗ профілі, їхній статус (увімкнутий чи вимкнений) та кількість використань різних доповнень у цих профілях. Розроблено програмний засіб, що використовує згадану вище модифікацію алгоритму IntelliSense із використанням мови програмування TypeScript та технології розроблення розширень до середовища розробки ПЗ Visual Studio Code. Інтегровано цей програмний засіб у середовище розробки Visual Studio Code за допомогою підтримуваних нею функцій. Проаналізовано приріст у зменшенні часу обирання варіанта доповнення програмного коду від параметрів використання цього програмного засобу.
Посилання
Documentation for Visual Studio Code. (2020). Visual Studio Code. Retrieved from: https://code.visualstudio.com/docs
IntelliSense in Visual Studio. (2020). Microsoft Docs. Retrieved from: https://docs.microsoft.com/en-us/visualstudio/ide/using-intellisense?view=vs-2019.
Mooty, M., Faulring, A., Stylos, J., & Myers, B. (2010). Calcite: Completing Code Completion for Constructors Using Crowds. IEEE Symposium on Visual Languages and Human-Centric Computing. https://doi.org/10.1109/VLHCC.2010.12
Murray, K., & Bigham, J. (2011). Beyond Autocomplete: Automatic Function Definition. Proceedings of the 2011 IEEE Symposium on Visual Languages and Human-Centric Computing. https://doi.org/10.1109/VLHCC.2011.6070421
Omori, T., Kuwabara, H., & Maruyama, K. (2015). Improving code completion based on repetitive code completion operations. Information and Media Technologies, 10, 210–225. https://doi.org/10.11185/imt.10.210
Raychev, V., Vechev, M., & Yahav, E. (2014). Code Completion with Statistical Language Models. ACM SIGPLAN Notices. https://doi.org/10.1145/2666356.2594321
Robbes, R., & Lanz, M. (2008). How Program History Can Improve Code Completion. DBLP. https://doi.org/10.1109/ASE.2008.42
Scheller, T., & Kuehn, E. (2013). Influence of Code Completion Methods on the Usability of APIs. Proceedings of the IASTED International Conference Software Engineering (SE'2013). https://doi.org/10.2316/P.2013.796–027
Visual Studio documentation. (2019). Microsoft Docs. Retrieved from: https://docs.microsoft.com/en-us/visualstudio/?view=vs-2019
Visual Studio IntelliCode. (2020). Visual Studio Marketplace. Retrieved from: https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.VSIntelliCode.
Авторське право (c) 2018 http://creativecommons.org/licenses/by/4.0

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.