You can explore source code on GitHub, Upsourse or clone it:
git clone https://github.com/JetBrains/intellij-community.git
"Manager" postfix in class names in general means the class is "Facade" for some subsystem.
Classes and interfaces might also have implementation with "Ex" postfix meaning that they have extended functionality
(e.g. ApplicationManagerEx
).
- Application - provides access to core application-wide functionality and methods for working with the IDEA thread model
- MessageBus - core of subscribe/publish messaging infrastructure
- Project - represents project in IntelliJ, used in many APIs for project-specific functionality
- ProjectManager - open/close/get list of projects
- ProjectManagerListener - callback on project open/close
- DumbAware - marker interface for actions and toolwindows that can work while indices are being updated
- AnAction - all user interactions are performed through actions (see also EditorAction)
- AnActionEvent - container for the information necessary to execute or update AnAction
- ActionManager - register/unregister/find actions
- IntentionAction - interface for intention actions (Alt-Enter actions in editor)
- IntentionManager - register/unregister intentions
- Editor - represents an instance of the IDEA text editor
- CaretModel - moves the caret and retrieves information about caret position
- SelectionModel - selects text in editor and retries information about the selection
- MarkupModel - highlights ranges of text in a document, paints markers on the gutter and so on
- FileEditorManager - open/close/get current editor
- Document - represents the contents of a text file loaded into memory and possibly opened in a text editor (see also IntelliJ Platform SDK docs)
- FileDocumentManager - gets document for VirtualFile, etc.
- VirtualFile - represent a file on disk, in archive, HTTP server, etc. (see also IntelliJ Platform SDK docs)
- VirtualFileSystem - abstraction on top of file systems; delete/move/rename files (see also IntelliJ Platform SDK docs)
- VirtualFileListener - receives notifications about changes in the virtual file system
- VirtualFileManager - add VirtualFile listener, refresh VirtualFileSystem
- PsiElement - the common base interface for all elements of the PSI tree (see also IntelliJ Platform SDK docs)
- PsiFile - PSI element representing a file
- PsiManager - gets PsiFile for VirtualFile
- "PsiUtil" classes - misc methods for PSI manipulation
- ProjectRootManager - query and modify the list of root files and directories belonging to a project
- ModuleManager - get/modify project modules
- ModuleRootManager - contains information about the contents and dependencies of a module
- Messages - various dialogs with yes/no/ok/cancel buttons
- DialogBuilder - builder for custom dialogs
- ToolWindowManager - get registered tool windows, balloon notification for tool windows
- ToolWindowFactory - creates tool windows
- See also User Interface Components IntelliJ Platform SDK page
- EDT read: just do it
- EDT write: runWriteAction{...}
- Other threads read: runReadAction{...}
- Other threads write: N/A (i.e. invokeOnEDT{...})
- See also General Threading Rules.
- com.intellij.codeInsight.completion.CompletionContributor
- com.intellij.lang.LanguageExtension
- com.intellij.patterns.PsiElementPattern (and com.intellij.patterns.PlatformPatterns, com.intellij.patterns.StandardPatterns)
- com.intellij.psi.util.PsiUtilCore