Explorando a Program Structure Interface (PSI): Fundamentos da Construção de Plugins no IntelliJ

  • Reinaldo Wendt UNIPAMPA
  • Ana Carolina Rodrigues UNIPAMPA
  • Élder Rodrigues UNIPAMPA

Resumo


Este artigo explora a Program Structure Interface (PSI) como base para o desenvolvimento de plugins no IntelliJ. Adotando a abordagem de Design Science Research, foram implementados dois artefatos: o Editor Context Info, que correlaciona a posição do cursor com a hierarquia do código, e o PSI Tree Generator, que gera visualizações da árvore PSI de arquivos. Os resultados demonstram a aplicabilidade da PSI na análise e manipulação de código em tempo real, destacando seu potencial como recurso de apoio ao programador e como plataforma para inovação em IDEs, em comparação à AST.
Palavras-chave: PSI, IntelliJ, Plugins, Análise de Código, IDEs

Referências

Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. D. (2013). Compilers: Pearson new international edition. Pearson Education, 2 edition.

Cooper, K. D. and Torczon, L. (2012). Overview of compilation. In Engineering a Compiler. Elsevier.

Fowler, M. (2019). Refactoring: Improving the Design of Existing Code. Addison Wesley, 2 edition.

Golubev, Y., Kurbatova, Z., AlOmar, E. A., Bryksin, T., and Mkaouer, M. W. (2021). One thousand and one stories: a large-scale survey of software refactoring. In Proceedings of the 29th ACM Joint Meeting on ESEC/FSE 2021. ACM.

Harmanen, J. and Mikkonen, T. (2016). On Polyglot Programming in the Web. IGI Global.

Hevner, A. R., March, S. T., Park, J., and Ram, S. (2004). Design science in information systems research. MIS Quarterly.

Horita, F., Graciano Neto, V., and dos Santos, R. (2018). Design Science Research em Sistemas de Informação e Engenharia de Software: Conceitos, Aplicações e Trabalhos Futuros.

JetBrains (2025a). Intellij IDEA. [link].

JetBrains (2025b). Intellij Plugins. [link].

JetBrains (2025c). Navigating the PSI. [link].

JetBrains (2025d). PSI Elements. [link].

JetBrains (2025e). PSI Files. [link].

JetBrains (2025f). What is the PSI? [link].

Kurbatova, Z., Golubev, Y., Kovalenko, V., and Bryksin, T. (2021). The intellij platform: A framework for building plugins and mining software data. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW). IEEE.

Leite, L., Rocha, C., Kon, F., Milojicic, D., and Meirelles, P. (2019). A survey of devops concepts and challenges. ACM Computing Surveys.

Mogensen, T. Æ. (2009). Basics of compiler design.

Murphy, G., Kersten, M., and Findlater, L. (2006). How are java software developers using the eclipse ide? IEEE Software.

Peffers, K., Tuunanen, T., Rothenberger, M., and Chatterjee, S. (2007). A design science research methodology for information systems research. J. Manage. Inf. Syst.

StackOverflow (2024). Most popular technologies report. [link].
Publicado
29/10/2025
WENDT, Reinaldo; RODRIGUES, Ana Carolina; RODRIGUES, Élder. Explorando a Program Structure Interface (PSI): Fundamentos da Construção de Plugins no IntelliJ. In: ESCOLA REGIONAL DE ENGENHARIA DE SOFTWARE (ERES), 9. , 2025, Chapecó/SC. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 90-98. DOI: https://doi.org/10.5753/eres.2025.16816.