728x90 전체 글77 효율적으로 PSI API 사용하기 (IntelliJ Platform) ⚡ PSI Performance Best Practices (IntelliJ Platform)PSI는 매우 강력한 구조이지만, 무심코 사용하면 성능 문제가 발생할 수 있습니다. 이 문서는 PSI를 성능 저하 없이 사용하는 실전 가이드입니다.🚫 비용이 큰 메서드들의 올바른 사용법PSI에서 제공하는 여러 메서드들은 사용 목적에 맞게 적절히 활용해야 하며, 성능에 영향을 줄 수 있는 메서드들은 '무조건 피할 대상'이 아니라, 올바른 맥락에서 제한적으로 사용해야 할 대상입니다.🔍 getText()설명: PSI 트리 전체를 순회하며 모든 텍스트를 연결합니다. 내부적으로 모든 하위 노드를 순회하므로 큰 PSI Element의 경우 성능 비용이 큽니다.사용 예시: 로그 출력을 하거나, 전체 코드를 string으로.. 2025. 6. 17. IntelliJ 에서 PSI 변경하기 🛠️ Modifying the PSI in IntelliJ PlatformPSI (Program Structure Interface)는 소스코드를 구조화된 트리 형태로 표현하며, 단순히 읽기 전용이 아니라 수정 가능한 구조입니다. 이 문서는 PSI 수정에 필요한 개념, API, 예제, 주의사항을 포괄적으로 정리합니다.📌 PSI 수정의 기본 원칙PSI 수정은 반드시 Write Command와 Write Action 내에서 수행해야 합니다.대부분의 PSI 수정은 PsiElement.add(), replace(), delete() 메서드를 통해 이루어집니다.WriteCommandAction.runWriteCommandAction(project) { val newStatement = factory.cr.. 2025. 6. 17. IntelliJ PSI Element & FileViewProvider 이해와 활용 IntelliJ PSI Element & FileViewProvider 이해와 활용📌 개념 요약: PSI 요소(PSI Element) 란?IntelliJ 플랫폼은 파일을 읽을 때, 단순 문자열이 아니라 구조화된 트리 형태(PSI Tree) 로 이해합니다.이 트리의 노드 하나하나가 바로 PsiElement 입니다.예를 들어 Java 코드에서 int count = 0; 라는 한 줄에는 PsiType, PsiIdentifier, PsiLiteralExpression 등의 여러 PSI 요소가 존재합니다.📌 PSI 관련 주요 API 정리PSI 요소를 다루기 위해 사용할 수 있는 주요 API들을 먼저 도구처럼 정리해두면, 이후 어떤 전략을 적용할지 결정하는 데 도움이 됩니다.카테고리 API / 클래스 설명카테.. 2025. 6. 17. IntelliJ PSI (Program Structure Interface) 개요 및 실전 예제 IntelliJ PSI (Program Structure Interface) 개요 및 실전 예제🧠 PSI란 무엇인가?PSI (Program Structure Interface)는 IntelliJ 플랫폼 내부에서코드 파일을 트리 형태의 구조적 정보로 표현해주는 시스템입니다.예를 들어 Java 파일을 IntelliJ가 읽을 때, 단순한 텍스트가 아니라:클래스 (class)메서드 (method)변수 선언 (field)주석 (comment)등의 요소들을 구문 트리(PSI 트리) 형태로 분해해서 이해합니다.이는 단순한 문자열 처리보다 훨씬 정밀한 코드 분석과 리팩토링, 자동완성, 검색, 리네임 등을 가능하게 합니다.📦 PSI 파일이란?PsiFile은 어떤 코드 파일이든 PSI 구조로 표현할 때의 루트 노드 역.. 2025. 6. 17. 이전 1 2 3 4 5 6 7 ··· 20 다음 728x90