Project tool window
This tool window lets you look at your project from various viewpoints and perform the tasks such as creating new items (directories, files, classes, and so on), opening files in the editor, navigating to the code fragment of interest, and more.
Most of the functions in this tool window are accessed as context menu commands in the content pane and via associated shortcuts.
Also, the view contains the Scratches and Consoles folder that lets you manage created scratch files, database consoles, and extension scripts.
Views
The tool window provides you with the following views:
Project view. In this view, all the project items along with their dependencies (SDKs and libraries) are shown. The emphasis is on the directory structure (though the packages are also shown).
Packages view. The emphasis is on the package structure of the project. The modules, SDKs and libraries, by default, are not shown.
Scopes views (Project Files, Problems, and so on) . What is shown in the content pane is limited to the corresponding predefined or user-defined scope. In other respects, depending on the currently selected view options, a scope view may resemble the Projector the Packages view.
The necessary view is selected from the list in the left-hand part of the title bar or, if the views are represented by tabs, by clicking the corresponding tab.
To configure a view, use the corresponding options in the title bar context menu. The necessary options can also be accessed by clicking on the title bar.
Show file size and modification timestamp
The Project tool window allows you to see the size and modification timestamp for the files in the project tree. To display this information, select
from the main menu.Show tree indent guides
In the Project tool window, you can display vertical lines that mark indent levels and help you better understand the hierarchy of the components in your project. To display these lines, enable Show tree indent guides on the Appearance and Behavior | Appearance page of the Settings/Preferences Ctrl+Alt+S.
Title bar context menu
The context menu that appears by right-clicking the title bar or clicking , provides settings for project views , viewing modes, as well as for switching between the views, resizing the tool window, and more .
The following table lists and briefly explains the available commands and options.
Item | Shortcut | Description |
---|---|---|
Select Next View or Tab Select Previous View or Tab Show List of Views or Tabs | Alt+Right Alt+Left Alt+Down | These are the commands for switching between different views. |
Edit Scopes | Use this command to open the Scopes dialog in which you can create and edit used-defined scopes. Note that this command is available only if the current view is a scope view. | |
Flatten Packages | If this option is off, the packages are shown as a hierarchy. If this option is on, all the packages appear at the same level and are identified by their qualified names. | |
Hide Empty Middle Packages | This option lets you specify how or whether empty packages are to be shown. (Empty packages are ones that contain nothing but other packages.) If the option is on, empty packages are shown compacted. | |
Abbreviate Qualified Package Names | This option is available only if the Flatten Packages option is on. If the option is on, most of the initial <name>. fragments in qualified package names are abbreviated. | |
Show Members | If this option is on, the files in the tree that contain classes turn into nodes. When such node is unfolded, the contained classes with their fields, methods, and other members of the selected item are shown. | |
Open Files with Single Click | If this option is on, IntelliJ IDEA will automatically open the selected item in the editor. Otherwise, you need to double-click items to open them. | |
Always Select Opened File | If this option is on, IntelliJ IDEA automatically locates documents that you open in the editor in the current view of this window. | |
Sort by Type | If the option is off, the items (files, classes, and so on) are sorted alphabetically. If the option is on, the files are sorted by their extensions. The java files appear in the following order: interfaces, classes, enumerations, and so on. | |
Folders Always on Top | If the option is on, folders are shown above the files. Otherwise, all items are sorted alphabetically, and files and folders appear intermixed. | |
Show Excluded Files | This option is available only in the Project view. Turn this option on or off to show or hide excluded folders and files. | |
Show visibility icons | Display visibility modifiers for classes in the project tree:
| |
File Nesting | Opens the File nesting dialog where you can configure presentation of files that have same names but different extensions. | |
Show Modules | This option is available only in the Packages and scope views. (In the Project view, modules are always shown.) Turn this option on or off to show or hide modules. | |
Show Libraries Contents | This option is available only in the Packages view. (In the Project view, libraries are always shown; in the scope views, libraries are never shown.) Turn this option on or off to show or hide libraries and their contents. Note that within the Libraries category are the libraries included in module dependencies and also the SDKs associated with your modules. | |
Group Tabs | If this option is on, there is a list in the left-hand part of the title bar from which you can select the necessary view. If this option is off, the views are represented by tabs which appear in the left-hand part of the title bar. | |
View Mode | This option lets you control general appearance and behavior of the tool window. See Tool window view modes. | |
Move to | To associate the tool window with a different tool window bar, select this command, and then select the destination tool window bar (Top, Left, Bottom or Right). | |
Resize | To resize the tool window by moving one of its borders, select this command, and then select the necessary Stretch to option. Note that this command is not available for the floating mode. | |
Remove from Sidebar | This command hides the tool window, removes the associated tool window button from the tool window bar and removes the tool window from the quick access menu ( or ). To open the tool window again (and restore the associated features), use the main menu: or press Alt+1. | |
Hide | Shift+Escape | Use this command to hide the tool window. |
Title bar buttons
Item | Shortcut | Description |
---|---|---|
Select Next View or Tab, Select Previous View or Tab | Alt+Right Alt+Left | If the views are currently shown as tabs (the Group Tabs option is off), this button appears to the right of the last visible tab. Click this button to open the list of views, for example, to select a different view. |
Click this icon to navigate from a file in the editor to the corresponding node (file, class, field, method, and so on) in the Project tool window. This icon is not available if the Open Files with Single Click option is currently on. | ||
Ctrl+NumPad - | Use this icon or shortcut to collapse all the nodes. | |
Click this button to open the menu for configuring the current view and changing the tool window viewing modes. Note that most of the menu items are options that you can turn on or off. An option which is on has a check mark to the left of its name. The available options are a subset of the title bar context menu items. Depending on the current view, the menu may include the following options: | ||
Shift+Escape | Hide the tool windowShift+Escape. To hide all the tool windows, press Ctrl+Shift+F12. |
Content pane
The content pane shows the project items such as directories, files, and so on.
Item | Description |
---|---|
A module | |
A package | |
A folder (directory). Different folder categories have different colors. For example, the folder is used for test sources, and the folder keeps your production code. For more information, refer to Folder categories. | |
A library. When the Project view is selected, there is one such node for the whole project which is labeled External Libraries. The subcategories in this case are the SDKs (for example, JSDKs ) and individual libraries . When the Packages view is selected, the corresponding node or nodes are labeled Libraries. If the Show Modules and the Show Libraries Contents options are selected, there is an individual Libraries node for each of the modules. | |
Your scratch files and database consoles are grouped under this node. | |
Files marked as plain text. |
Context menu commands for the content pane items
The context menu of an item provides access to all the functions available for this item.
Item | Shortcut | Description |
---|---|---|
New | Alt+Insert | Use this command to create a new item (module, package, directory, file, class, and so on.) within the selected one. (project, module, directory or package) In the Scratches view, this command also lets you create a query console. |
Add Framework Support | For a module: use this option to add support for certain frameworks and technologies in the selected module. | |
Cut | Ctrl+X | Use this command to move the selected item or items from the current location to the clipboard. |
Copy | Use this command and one of the following options to copy the selected item(s) to the clipboard:
| |
Paste | Ctrl+V | Use this command to insert the contents of the clipboard into the selected location. |
Jump to Source | F4 | Use this command to open the selected file in the editor. If the file is already open, the corresponding editor tab will become active. |
Open Module Settings | F4 | Use this command to see the settings for the selected module. These will be shown on the Modules page in the Project Structure dialog. |
Find Usages | Alt+F7 | Use this command to find the usages of the selected item. (The Find Usages dialog will open.) |
Find in Path | Ctrl+Shift+F | Use this command to perform a text search. (Find in Path dialog will open.) |
Replace in Path | Ctrl+Shift+R | Use this command to perform text search-and-replace. (Replace in Path dialog will open.) |
Analyze | Use this command to access the functions related to code inspection and analysis. | |
Refactor | Use this command to perform one of the refactorings available for the selected item. | |
Add to Favorites | Alt+Shift+F | Use this command to add the selected item to an existing or new list of favorite items. See Favorites. |
Show Thumbnails | Use this command to view thumbnails for image files located in the selected directory. (The Thumbnails tool window will open.) | |
Browse Type Hierarchy | Ctrl+H | For a file (normally, a class): use this command to see the class hierarchy for the selected file (class). The Hierarchy tool window will open. For more information, refer to Source code hierarchy. |
Reformat Code | Ctrl+Alt+L | Use this command to reformat the source code in the selected file or in all files in the current directory. (The Reformat Code dialog will open.) See also, Reformat and rearrange code. |
Optimize Imports | Ctrl+Alt+O | Use this command to optimize imports in the selected file or in all files in the current directory. |
Delete | Delete | Use this command to delete the selected item. Use with care! |
Change Dialect (<CurrentDialect>) | For SQL files and database consoles, change the SQL dialect associated with the file or console. | |
Remove Module | Delete | Use this command to remove a module from your project. Note that the files that make up the module are not physically removed from the disk. |
Make Module '<name>' | Use this command to make the current module. | |
Compile '<name>' | Ctrl+Shift+F9 | Use this command to compile the selected source file or all the source files in the selected directory. |
Mark as Plain Text | Use this command to exclude the selected file from project, so it is ignored by inspections, code completion, navigation, and so on. The file will be indicated with a special icon and shown as plain text in the editor. For more details, see Exclude files. | |
Run '<item_name>' | Ctrl+Shift+F10 | For an SQL file or query console: execute all the statements contained in the selected file or console. |
Local History | Use this command to view local history for the selected file or directory, or to create a label for the current version of your project. | |
Synchronize '<item_name>' | Use this command to synchronize the view in the tool window with the view saved in the file system. If you change a file or directory contents externally, IntelliJ IDEA, under certain circumstances, may not be aware of the corresponding changes unless you use this command. | |
Show in Explorer | Use this command to open a file browser (for example, Windows Explorer or Finder) and show the selected item there. | |
File Path / Directory Path | Ctrl+Alt+F12 | This menu shows the path from the file system root to the selected element with individual directories as the menu items. When you select an item in this menu (for example, a directory), a file browser (for example, Windows Explorer or Finder) opens, and the selected item is shown there. |
Compare With | Ctrl+D | Use this command to compare the selected file or directory with another file or directory. See Compare files, folders and text sources and Differences viewer for folders. |
Compare File with Editor | Use this command to compare the selected file with the file open on an active editor tab. See Compare files, folders and text sources and Differences viewer for files. | |
Load/Unload Modules | Temporarily ignore unused modules | |
Mark Directory As | Use this command to make the selected directory a source root or a test source root , to make the directory excluded, and so on. The necessary category for the directory is selected from the submenu. | |
Diagrams | Ctrl+Alt+Shift+U or Ctrl+Alt+U | Use this command to open a diagram (for example, a UML diagram) for the selected item. |
Update Copyright | Use this command to update the copyright notice for the selected files and folders. See Copyright. | |
WebServices | Use this command to access the functions related to developing Web services. See Web services and Web service clients. |
File status highlights
If VCS integration is enabled for the current project, IntelliJ IDEA uses colors to denote VCS file status in the Project tool window. The following table presents information about the meaning of the colors.
Color | File Status | Description |
---|---|---|
#0A7700 | Added | The file in the active changelist is scheduled for addition to the repository. |
#0EAA00 | Added in not active changelist | The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in . |
#FF0000 | Changelist conflict | The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in . |
#0A7700 | Copied | If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied. |
#616161 | Deleted | The file is scheduled for deletion from the repository. |
#773895 | Deleted from file system | The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository. |
#8AA4C8 | Have changed descendants | If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Show directories with changed descendants option is enabled in . |
#3264B4 | Have immediate changed children | If a file is modified, the IDE will highlight its parent directory. This status is available if the Show directories with changed descendants option is enabled in . |
#B28C00 | Hijacked | [Perforce, ClearCase, VSS] The file is modified without checkout. |
#727238 | Ignored | A file is intentionally untracked by VCS. |
#7503DC | Merged | The file is merged by your VCS as a result of an update. |
#FF0000 | Merged with conflicts | During the last update, the file has been merged with conflicts. |
#FF0000 | Merged with property conflicts | During the last update, the IDE has detected differences between the properties of the local file and its server version. |
#FF0000 | Merged with text and property conflicts | Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties. |
#0032A0 | Modified | The file has changed since the last synchronization. |
#0047E4 | Modified in not active changelist | The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in . |
#7C7C00 | Obsolete | The file should no longer be in your working copy of the repository. |
#007C7C | Renamed | Since the last update, the file has been renamed. |
#08978F | Switched | [SVN] The file is taken from a different branch than the whole project. |
#993300 | (Unknown) Unversioned | The file exists locally, but is not in the repository, and is not scheduled for addition. |
None (default color) | Up to date | The file hasn't been changed. |
Color | File Status | Description |
---|---|---|
#629755 | Added | The file in the active changelist is scheduled for addition to the repository. |
#629755 | Added in not active changelist | The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in . |
#D5756C | Changelist conflict | The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in . |
#0A7700 | Copied | If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied. |
#6C6C6C | Deleted | The file is scheduled for deletion from the repository. |
#6C6C6C | Deleted from file system | The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository. |
#6897BB | Have changed descendants | If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Show directories with changed descendants option is enabled in . |
#6897BB | Have immediate changed children | If a file is modified, the IDE will highlight its parent directory. This status is available if the Show directories with changed descendants option is enabled in . |
None (default color) | Hijacked | [Perforce, ClearCase, VSS] The file is modified without checkout. |
#848504 | Ignored | A file is intentionally untracked by VCS. |
#9876AA | Merged | The file is merged by your VCS as a result of an update. |
#D5756C | Merged with conflicts | During the last update, the file has been merged with conflicts. |
#D5756C | Merged with property conflicts | During the last update, the IDE has detected differences between the properties of the local file and its server version. |
#D5756C | Merged with text and property conflicts | Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties. |
#6897BB | Modified | The file has changed since the last synchronization. |
#6897BB | Modified in not active changelist | The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in . |
None (default color) | Obsolete | The file should no longer be in your working copy of the repository. |
#3A8484 | Renamed | Since the last update, the file has been renamed. |
None (default color) | Switched | [SVN] The file is taken from a different branch than the whole project. |
#D1675A | (Unknown) Unversioned | The file exists locally, but is not in the repository, and is not scheduled for addition. |
None (default color) | Up to date | The file hasn't been changed. |
Color | File Status | Description |
---|---|---|
#62CC47 | Added | The file in the active changelist is scheduled for addition to the repository. |
#62CC47 | Added in not active changelist | The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in . |
#FF6666 | Changelist conflict | The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in . |
#62CC47 | Copied | If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied. |
#ED864A | Deleted | The file is scheduled for deletion from the repository. |
#ED864A | Deleted from file system | The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository. |
#4FF0FF | Have changed descendants | If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Show directories with changed descendants option is enabled in . |
#4FF0FF | Have immediate changed children | If a file is modified, the IDE will highlight its parent directory. This status is available if the Show directories with changed descendants option is enabled in . |
None (default color) | Hijacked | [Perforce, ClearCase, VSS] The file is modified without checkout. |
#A9B837 | Ignored | A file is intentionally untracked by VCS. |
#ED94FF | Merged | The file is merged by your VCS as a result of an update. |
#FF6666 | Merged with conflicts | During the last update, the file has been merged with conflicts. |
#FF6666 | Merged with property conflicts | During the last update, the IDE has detected differences between the properties of the local file and its server version. |
#FF6666 | Merged with text and property conflicts | Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties. |
#4FF0FF | Modified | The file has changed since the last synchronization. |
#4FF0FF | Modified in not active changelist | The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in . |
None (default color) | Obsolete | The file should no longer be in your working copy of the repository. |
#4FF0FF | Renamed | Since the last update, the file has been renamed. |
None (default color) | Switched | [SVN] The file is taken from a different branch than the whole project. |
D1675A | (Unknown) Unversioned | The file exists locally, but is not in the repository, and is not scheduled for addition. |
None (default color) | Up to date | The file hasn't been changed. |