| OLD | NEW |
| 1 # Linux Eclipse Dev | 1 # Linux Eclipse Dev |
| 2 | 2 |
| 3 Eclipse can be used on Linux (and probably Windows and Mac) as an IDE for | 3 Eclipse can be used on Linux (and probably Windows and Mac) as an IDE for |
| 4 developing Chromium. It's unpolished, but here's what works: | 4 developing Chromium. It's unpolished, but here's what works: |
| 5 | 5 |
| 6 * Editing code works well (especially if you're used to it or Visual Studio). | 6 * Editing code works well (especially if you're used to it or Visual Studio). |
| 7 * Navigating around the code works well. There are multiple ways to do this | 7 * Navigating around the code works well. There are multiple ways to do this |
| 8 (F3, control-click, outlines). | 8 (F3, control-click, outlines). |
| 9 * Building works fairly well and it does a decent job of parsing errors so | 9 * Building works fairly well and it does a decent job of parsing errors so |
| 10 that you can click and jump to the problem spot. | 10 that you can click and jump to the problem spot. |
| 11 * Debugging is hit & miss. You can set breakpoints and view variables. STL | 11 * Debugging is hit & miss. You can set breakpoints and view variables. STL |
| 12 containers give it (and gdb) a bit of trouble. Also, the debugger can get | 12 containers give it (and gdb) a bit of trouble. Also, the debugger can get |
| 13 into a bad state occasionally and eclipse will need to be restarted. | 13 into a bad state occasionally and eclipse will need to be restarted. |
| 14 * Refactoring seems to work in some instances, but be afraid of refactors that | 14 * Refactoring seems to work in some instances, but be afraid of refactors that |
| 15 touch a lot of files. | 15 touch a lot of files. |
| 16 | 16 |
| 17 [TOC] | 17 [TOC] |
| 18 | 18 |
| 19 ## Setup | 19 ## Setup |
| 20 | 20 |
| 21 ### Get & Configure Eclipse | 21 ### Get & Configure Eclipse |
| 22 | 22 |
| 23 Eclipse 4.3 (Kepler) is known to work with Chromium for Linux. | 23 Eclipse 4.3 (Kepler) is known to work with Chromium for Linux. |
| 24 | 24 |
| 25 * Download the distribution appropriate for your OS. For example, for Linux | 25 * [Download](http://www.eclipse.org/downloads/) the distribution appropriate |
| 26 64-bit/Java 64-bit, use the Linux 64 bit package from | 26 for your OS. For example, for Linux 64-bit/Java 64-bit, use the Linux 64 bit |
| 27 http://www.eclipse.org/downloads/ (Eclipse Packages Tab -> Linux 64 bit | 27 package (Eclipse Packages Tab -> Linux 64 bit (link in bottom right)). |
| 28 (link in bottom right)). | |
| 29 * Tip: The packaged version of eclipse in distros may not work correctly | 28 * Tip: The packaged version of eclipse in distros may not work correctly |
| 30 with the latest CDT plugin (installed below). Best to get them all from | 29 with the latest CDT plugin (installed below). Best to get them all from |
| 31 the same source. | 30 the same source. |
| 32 * Googlers: The version installed on Goobuntu works fine. The UI will be | 31 * Googlers: The version installed on Goobuntu works fine. The UI will be |
| 33 much more responsive if you do not install the google3 plug-ins. Just | 32 much more responsive if you do not install the google3 plug-ins. Just |
| 34 uncheck all the boxes at first launch. | 33 uncheck all the boxes at first launch. |
| 35 * Unpack the distribution and edit the eclipse/eclipse.ini to increase the | 34 * Unpack the distribution and edit the eclipse/eclipse.ini to increase the |
| 36 heap available to java. For instance: | 35 heap available to java. For instance: |
| 37 * Change `-Xms40m` to `-Xms1024m` (minimum heap) and `-Xmx256m` to | 36 * Change `-Xms40m` to `-Xms1024m` (minimum heap) and `-Xmx256m` to |
| 38 `-Xmx3072m` (maximum heap). | 37 `-Xmx3072m` (maximum heap). |
| 39 * Googlers: Edit `~/.eclipse/init.sh` to add this: | 38 * Googlers: Edit `~/.eclipse/init.sh` to add this: |
| 40 | 39 |
| 41 export ECLIPSE_MEM_START="1024M" | 40 ``` |
| 42 export ECLIPSE_MEM_MAX="3072M" | 41 export ECLIPSE_MEM_START="1024M" |
| 42 export ECLIPSE_MEM_MAX="3072M" |
| 43 ``` |
| 43 | 44 |
| 44 The large heap size prevents out of memory errors if you include many Chrome | 45 The large heap size prevents out of memory errors if you include many Chrome |
| 45 subprojects that Eclipse is maintaining code indices for. | 46 subprojects that Eclipse is maintaining code indices for. |
| 46 | 47 |
| 47 * Turn off Hyperlink detection in the Eclipse preferences. (Window -> | 48 * Turn off Hyperlink detection in the Eclipse preferences. (Window -> |
| 48 Preferences, search for "Hyperlinking, and uncheck "Enable on demand | 49 Preferences, search for "Hyperlinking, and uncheck "Enable on demand |
| 49 hyperlink style navigation"). | 50 hyperlink style navigation"). |
| 50 | 51 |
| 51 Pressing the control key on (for keyboard shortcuts such as copy/paste) can | 52 Pressing the control key on (for keyboard shortcuts such as copy/paste) can |
| 52 trigger the hyperlink detector. This occurs on the UI thread and can result in | 53 trigger the hyperlink detector. This occurs on the UI thread and can result in |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 | 87 |
| 87 Set the Workspace to be a directory on a local disk (e.g. | 88 Set the Workspace to be a directory on a local disk (e.g. |
| 88 `/work/workspaces/chrome`). Placing it on an NFS share is not recommended -- | 89 `/work/workspaces/chrome`). Placing it on an NFS share is not recommended -- |
| 89 it's too slow and Eclipse will block on access. Don't put the workspace in the | 90 it's too slow and Eclipse will block on access. Don't put the workspace in the |
| 90 same directory as your checkout. | 91 same directory as your checkout. |
| 91 | 92 |
| 92 ### Install the C Development Tools ("CDT") | 93 ### Install the C Development Tools ("CDT") |
| 93 | 94 |
| 94 1. From the Help menu, select Install New Software... | 95 1. From the Help menu, select Install New Software... |
| 95 1. Select the 'Workd with' URL for the CDT | 96 1. Select the 'Workd with' URL for the CDT |
| 96 1. If it's not there you can click Add... and add it. | 97 If it's not there you can click Add... and add it. |
| 97 1. See https://eclipse.org/cdt/downloads.php for up to date | 98 See https://eclipse.org/cdt/downloads.php for up to date versions, |
| 98 versions. | 99 e.g. with CDT 8.7.0 for Eclipse Mars, use |
| 99 1. e.g. with CDT 8.7.0 for Eclipse Mars, use | 100 http://download.eclipse.org/tools/cdt/releases/8.7 |
| 100 http://download.eclipse.org/tools/cdt/releases/8.7 | |
| 101 1. Googlers: We have a local mirror, but be sure you run prodaccess before | 101 1. Googlers: We have a local mirror, but be sure you run prodaccess before |
| 102 trying to use it. | 102 trying to use it. |
| 103 1. Select & install the Main and Optional features. | 103 1. Select & install the Main and Optional features. |
| 104 1. Restart Eclipse | 104 1. Restart Eclipse |
| 105 1. Go to Window > Open Perspective > Other... > C/C++ to switch to the C++ | 105 1. Go to Window > Open Perspective > Other... > C/C++ to switch to the C++ |
| 106 perspective (window layout). | 106 perspective (window layout). |
| 107 1. Right-click on the "Java" perspective in the top-right corner and select | 107 1. Right-click on the "Java" perspective in the top-right corner and select |
| 108 "Close" to remove it. | 108 "Close" to remove it. |
| 109 | 109 |
| 110 ### Create your project(s) | 110 ### Create your project(s) |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 392 ### Additional tips | 392 ### Additional tips |
| 393 | 393 |
| 394 1. Mozilla's | 394 1. Mozilla's |
| 395 [Eclipse CDT guide](https://developer.mozilla.org/en-US/docs/Eclipse_CDT) | 395 [Eclipse CDT guide](https://developer.mozilla.org/en-US/docs/Eclipse_CDT) |
| 396 is helpful: | 396 is helpful: |
| 397 1. For improved performance, I use medium-granularity projects (eg. one for | 397 1. For improved performance, I use medium-granularity projects (eg. one for |
| 398 WebKit/Source) instead of putting all of 'src/' in one project. | 398 WebKit/Source) instead of putting all of 'src/' in one project. |
| 399 1. For working in Blink (which uses WebKit code style), feel free to use | 399 1. For working in Blink (which uses WebKit code style), feel free to use |
| 400 [this](https://drive.google.com/file/d/0B2LVVIKSxUVYM3R6U0tUa1dmY0U/view?usp
=sharing) | 400 [this](https://drive.google.com/file/d/0B2LVVIKSxUVYM3R6U0tUa1dmY0U/view?usp
=sharing) |
| 401 code-style formatter XML profile | 401 code-style formatter XML profile |
| OLD | NEW |