## 2 Research Method  
The empirical research method used to answer the research questions consisted of three steps. The first step, a systematic literature review (SLR), is described later in Section 2. The second step was a survey. We briefly describe the results of the survey in Section 5. The last step of our research method was empirical data interpretation. After using the mentioned methods, we performed the interpretation of the obtained results. 1. **The systematic literature review (SLR) on intelligent assistants:** Our research began with an SLR of intelligent assistants, focusing on their presence within integrated development environments (IDEs) and their role in source code completion. While code completion assistants have been in use for a while, our aim was to provide a comprehensive overview of those that employ machine learning methods. This SLR was designed to investigate the available intelligent assistants and the functionalities they offer. We adhered to the systematic review methodology as outlined by [PERSON] and [PERSON] [10], ensuring a rigorous and comprehensive approach to our research. With the rise of more advanced intelligent assistants, we delved deeper into the current state of the field. We focused primarily on the literature that deals with source code completion while writing and using machine learning methods. We excluded studies related to automatic source code generation without user intervention, abbreviations- and template-based source code generation, and those assessing existing source code with subsequent correction suggestions. This SLR, conducted in late 2022, aimed to answer research questions **RQ1** and **RQ2**. Our review utilised six major digital libraries:  
* **ScienceDirect** ([[http://www.sciencedirect.com](http://www.sciencedirect.com)]([http://www.sciencedirect.com](http://www.sciencedirect.com)), accessed on 1 November 2022);
* **IEEE eXplore** ([[https://ieeexplore.ieee.org](https://ieeexplore.ieee.org)]([https://ieeexplore.ieee.org](https://ieeexplore.ieee.org)), accessed on 1 November 2022);
* **Scopus** ([[https://www.scopus.com](https://www.scopus.com)]([https://www.scopus.com](https://www.scopus.com)), accessed on 1 November 2022);
* **ACM Digital Library** ([[https://dl.acm.org](https://dl.acm.org)]([https://dl.acm.org](https://dl.acm.org)), accessed on 1 November 2022);
* **SpringerLink** ([[http://link.springer.com](http://link.springer.com)]([http://link.springer.com](http://link.springer.com)), accessed on 1 November 2022);
* **arXiv** ([[https://arxiv.org](https://arxiv.org)]([https://arxiv.org](https://arxiv.org)), accessed on 1 November 2022). Figure 1: Research relationships. The primary objectives of the SLR were to identify the relevant literature on (a) available intelligent assistants, (b) their major functionalities, and (c) how these functionalities differed from traditional assistants. In preparation for the SLR,and to form the relevant search strings, we conducted an **initial domain scan** by reviewing the pertinent literature from leading digital databases in software engineering. A significant observation was that the majority of recent publications focus primarily on the broader domain of source code generation. Our research, however, is centred on the application of methodologies that assist developers during the coding process. The rapid expansion of this field was evident in our preliminary review, indicating that existing studies can become outdated quickly. Consequently, our search strings were crafted to address the various perspectives of the review. As is consistent with the methodology of [PERSON] and [PERSON] [10], the standardised search strings originate from research questions, and the process of creating keywords was systematic, involving preliminary reviews, the result of which are the search strings. The detailed findings from this SLR are presented in Section 4. For the SLR, we formed a search string based on two groups of keywords.