본문 바로가기
728x90

JetBrains Plugin3

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.
728x90