Compare Revisions

Eclipse CDT

Revision 484191:

Revision 484191 by kscarfone on

Revision 484195:

Revision 484195 by kscarfone on

Title:
Eclipse CDT
Eclipse CDT
Slug:
Eclipse_CDT
Eclipse_CDT
Tags:
"Tools","Developing Mozilla","Developing_Mozilla:Tools","Eclipse"
"Tools","Developing Mozilla","Eclipse","Developing_Mozilla:Tools"
Content:

Revision 484191
Revision 484195
n99      When you open Eclipse, it will ask you to "Select a workspan99      When you open Eclipse, it will ask you to "Select a workspa
>ce" (a directory where Eclipse will store files that it generates>ce" (a directory where Eclipse will store files that it generates
> during indexing, etc.). It's recommended that you have a separat> during indexing, etc.) It's recommended that you have a separate
>e workspace containing only a single project for each Mozilla sou> workspace containing only a single project for each Mozilla sour
>rce tree [{{ anch("How_can_I_delete_my_Eclipse_project_and_start_>ce tree [{{ anch("How_can_I_delete_my_Eclipse_project_and_start_o
>over.3F","rational") }}], and that you choose a directory outside>ver.3F","rational") }}], and that you choose a directory outside 
> the Mozilla source. Something like $HOME/eclipse-workspaces/mozi>the Mozilla source. Something like $HOME/eclipse-workspaces/mozil
>lla-tree-1, for example. After selecting an appropriate directory>la-tree-1, for example. After selecting an appropriate directory,
>, click OK, then close the "Welcome" tab when the main Eclipse wi> click OK, then close the "Welcome" tab when the main Eclipse win
>ndow opens.>dow opens.
n132      Eclipse CDT will try to format C/C++ code that you add as yn132      Eclipse CDT will try to format C/C++ code that you add as y
>ou type. However, it's default formats are not a good match to <a>ou type. However, its default formats are not a good match to <a 
> href="/En/Developer_Guide/Coding_Style" title="/En/Mozilla_Codin>href="/En/Developer_Guide/Coding_Style" title="/En/Mozilla_Coding
>g_Style_Guide">Mozilla's style rules</a>. Download this <a href=">_Style_Guide">Mozilla's style rules</a>. Download this <a href="/
>/@api/deki/files/6241/=eclipse-formatter-for-mozilla.xml" title=">@api/deki/files/6241/=eclipse-formatter-for-mozilla.xml" title="h
>https://developer.mozilla.org/@api/deki/files/6241/=eclipse-forma>ttps://developer.mozilla.org/@api/deki/files/6241/=eclipse-format
>tter-for-mozilla.xml">first pass at an Eclipse formatter configur>ter-for-mozilla.xml">first pass at an Eclipse formatter configura
>ation for Mozilla C/C++ coding style</a>, and install it by openi>tion for Mozilla C/C++ coding style</a>, and install it by openin
>ng the workspace preferences, selecting "C/C++ &gt; Code Style &g>g the workspace preferences, selecting "C/C++ &gt; Code Style &gt
>t; Formatter", and then using the "Import" button to import that >; Formatter", and then using the "Import" button to import that f
>file. The "Active profile" field should then automatically change>ile. The "Active profile" field should then automatically change 
> to "Mozilla". Depending on the area of the code that you work on>to "Mozilla". Depending on the area of the code that you work on,
>, you may need to tweak this configuration using the "Edit" butto> you may need to tweak this configuration using the "Edit" button
>n. (Note that the format settings under "General &gt; Editors &gt>. (Note that the format settings under "General &gt; Editors &gt;
>; Text Editors" have no effect in C/C++ views, since the C/C++ se> Text Editors" have no effect in C/C++ views, since the C/C++ set
>ttings are more specific and override those settings. However, yo>tings are more specific and override those settings. However, you
>u may still want to tweak those settings if you'll be editing oth> may still want to tweak those settings if you'll be editing othe
>er file types in Eclipse.)>r file types in Eclipse.)
n156      To create an Eclipse project for your Mozilla source tree sn156      To create an Eclipse project for your Mozilla source tree
>elect "File &gt; New &gt; Makefile Project with Existing Code". I>select "File &gt; New &gt; Makefile Project with Existing Code". 
>n the "Import Existing Code" window that opens, enter a meaningfu>In the "Import Existing Code" window that opens, enter a meaningf
>l Project Name that identifies your Mozilla source tree, set the >ul Project Name that identifies your Mozilla source tree, set the
>code location to the root of your source tree, select an appropri> code location to the root of your source tree, select an appropr
>ate Toolchain (e.g. "MacOSX GCC"), and click Finish.>iate Toolchain (e.g., "MacOSX GCC"), and click Finish.
n173      <li>If you have secondary object directories (object directn173      <li>If you have secondary object directories (object direct
>ories that are <strong><u>not</u></strong> your only/the primary >ories that are <strong><u>not</u></strong> your only/the primary 
>object directory) for the source tree and those directories are <>object directory) for the source tree and those directories are <
>strong><u>inside</u></strong> the source tree (or if you might ha>strong><u>inside</u></strong> the source tree (or if you might ha
>ve such object directories in future), then add an "Exclude all",>ve such object directories in future), then add an "Exclude all",
> <strong>regular expression</strong> filter for folders with a <s> <strong>regular expression</strong> filter for folders with a <s
>trong>Project Relative Path</strong> matching "obj(?!-debug(?:$|/>trong>Project Relative Path</strong> matching "obj(?!-debug(?:$|/
>)).+". This particular regular expression will exclude all direct>)).+". This particular regular expression will exclude all direct
>ories begining with the string "obj" <strong>except</strong> "obj>ories beginning with the string "obj" <strong>except</strong> "ob
>-debug", so if "obj-debug" is not the name of your main object di>j-debug", so if "obj-debug" is not the name of your main object d
>rectory, then adjust the regular expression as necessary.>irectory, then adjust the regular expression as necessary.
n175      <li>Add a <strong>recursive, regular expression</strong> "En175      <li>Add a <strong>recursive, regular expression</strong> "E
>xclude all" filter for files with <strong>Name</strong> matching >xclude all" filter for files with <strong>Name</strong> matching 
>"\.(?:rej|orig|o|pp|swp)$" to exclude .rej, .orig, .pp, .o and .s>"\.(?:rej|orig|o|pp|swp)$" to exclude .rej, .orig, .pp, .o, and .
>wp files.>swp files.
n177      <li>Add "Exclude all" filters for any other non-source diren177      <li>Add "Exclude all" filters for any other non-source dire
>ctories that you've added to your source tree (e.g. Xcode or MSVC>ctories that you've added to your source tree (e.g., Xcode or MSV
> project directories).>C project directories).
n184      Reopen the project properties window and select "C/C++ Builn184      Reopen the project properties window and select "C/C++ Buil
>d" from the left of the project properties window. Select the "Bu>d" from the left of the project properties window. Select the "Bu
>ilder Settings" tab, untick "Use default build command", set the >ilder Settings" tab, untick "Use default build command", set the 
>build command to "just-print-mozilla-build.py" or, if you're on M>build command to "just-print-mozilla-build.py" or, if you're on M
>ac, to "bash -l -c 'just-print-mozilla-build.py'" (on Mac Eclipse>ac, to "bash -l -c 'just-print-mozilla-build.py'" (on Mac Eclipse
> doesn't seem to pick up the environment properly, so it's necess> doesn't seem to pick up the environment properly, so it's necess
>ary to invoke just-print-mozilla-build.py indirectly through bash>ary to invoke just-print-mozilla-build.py indirectly through bash
>). (just-print-mozilla-build.py is a fast script that we'll downl>). (just-print-mozilla-build.py is a fast script that we'll downl
>oad in the next section.) (append '--objdir /path/to/objdir' if y>oad in the next section.) (append '--objdir /path/to/objdir' if y
>our objdir lives outside your tree) Set the build directory to "$>our objdir lives outside your tree) Set the build directory to "$
>{ProjDirPath}/path/of/your/objdir/relative/to/the/root/of/your/so>{ProjDirPath}/path/of/your/objdir/relative/to/the/root/of/your/so
>urce". Select the "Behaviour" tab, delete the word "all" from the>urce". Select the "Behavior" tab, delete the word "all" from the 
> "Build (incremental build)" field, and disable the Clean checkbo>"Build (incremental build)" field, and disable the Clean checkbox
>x.>.
n188        If you can't untick "Use defaut build command", you have n188        If you can't untick "Use default build command", you have
>to change the current builder by clicking on "Tool Chain Editor" > to change the current builder by clicking on "Tool Chain Editor"
>(in C/C++ Build) and choosing another builder (e.g. "Gnu Make Bui> (in C/C++ Build) and choosing another builder (e.g., "Gnu Make B
>lder").>uilder").
n192      If you will not be using Eclipse for debugging, select "C/Cn192      If you will not be using Eclipse for debugging, select "C/C
>++ Build &gt; Settings" on the left, select the "Binary Parsers" >++ Build &gt; Settings" on the left, select the "Binary Parsers" 
>tab and make sure that all the parsers are deselected. This preve>tab, and make sure that all the parsers are deselected. This prev
>nts the (useless if not debugging) "Searching for binaries" actio>ents the (useless if not debugging) "Searching for binaries" acti
>n from constantly interrupting everything.>on from constantly interrupting everything.
193    </p>
194    <p>193    </p>
194    <p>
195      If you will be using Eclipse for debugging, select "C/C++ G195      If you will be using Eclipse for debugging, select "C/C++ G
>eneral &gt; Paths and Symbols" and select the "Output Location" t>eneral &gt; Paths and Symbols" and select the "Output Location" t
>ab. You should now add the folder containing your firefox binary >ab. You should now add the folder containing your firefox binary 
>(note on Mac this is inside the .app - so "{your-obj-dir}/dist/Ni>(note on Mac this is inside the .app - so "{your-obj-dir}/dist/Ni
>ghtlyDebug.app/Contents/MacOS/" - and since the UI will only allo>ghtlyDebug.app/Contents/MacOS/" - and since the UI will only allo
>w you to select to the 'dist' folder, you'll need to type the end>w you to select to the 'dist' folder, you'll need to type the end
> of the path in manually). How you add this depends on whether yo> of the path in manually). How you add this depends on whether yo
>ur object directory is inside or outside your source tree. If ins>ur object directory is inside or outside your source tree. If ins
>ide, use the "Add Folder" button, if outside, use the "Link Folde>ide, use the "Add Folder" button; if outsideuse the "Link Folde
>r" button and tick the "Link to folder in the file system" checkb>r" button and tick the "Link to folder in the file system" checkb
>ox. Once you've added this folder, delete the existing output fol>ox. Once you've added this folder, delete the existing output fol
>der that was set to the root of the project. Doing this prevents >der that was set to the root of the project. Doing this prevents 
>the "Searching for binaries" which Eclipse constantly starts from>the "Searching for binaries" which Eclipse constantly starts from
> taking too long.> taking too long.
196    </p>
197    <p>196    </p>
197    <p>
198      Select "C/C++ General &gt; Preprocessor include Paths, Macr198      Select "C/C++ General &gt; Preprocessor include Paths, Macr
>os etc.". Select the Providers tab. Make sure that "CDT GCC Build>os etc." Select the Providers tab. Make sure that "CDT GCC Build 
> Output Parser" <strong>is</strong> selected, and that "CDT Manag>Output Parser" <strong>is</strong> selected, and that "CDT Manage
>ed Build Settings Entries" is not selected. Highlight (select) "C>d Build Settings Entries" is not selected. Highlight (select) "CD
>DT GCC Build Output Parser", then in the "Language Settings Provi>T GCC Build Output Parser", then in the "Language Settings Provid
>der Options" that appear below, make sure that "Share setting ent>er Options" that appear below, make sure that "Share setting entr
>ries between projects (global provider)" is not ticked.>ies between projects (global provider)" is not ticked.
n212      <strong>Especially important</strong> if the main object din212      <strong>Especially important</strong> if the main object di
>rectory for your source tree is located somewhere <strong><u>outs>rectory for your source tree is located somewhere <strong><u>outs
>ide</u></strong> your tree's top source directory: If this applie>ide</u></strong> your tree's top source directory: If this applie
>s to you, then select the Entries tab, select "GNU C++", select ">s to you, then select the Entries tab, select "GNU C++", select "
>CDT User Settings Entries", and click "Add". Change "Project Path>CDT User Settings Entries", and click "Add". Change "Project Path
>" to "Filesystem" then select the 'dist/include' directory that's>" to "Filesystem", then select the 'dist/include' directory that'
> in your main object directory and click OK. Repeat these steps, >s in your main object directory and click OK. Repeat these steps,
>but this time for "GNU C" instead of "GNU C++". (See the {{ anch(> but this time for "GNU C" instead of "GNU C++". (See the {{ anch
>"Headers are only parsed once") }} section below to understand wh>("Headers are only parsed once") }} section below to understand w
>y this step is important for people who have their object directo>hy this step is important for people who have their object direct
>ry outside their source tree.)>ory outside their source tree.)
n230      Download <a class="link-https" href="https://hg.mozilla.orgn230      Download <a class="link-https" href="https://hg.mozilla.org
>/users/jwatt_jwatt.org/eclipse-cdt-tools/raw-file/tip/just-print->/users/jwatt_jwatt.org/eclipse-cdt-tools/raw-file/tip/just-print-
>mozilla-build.py" title="https://hg.mozilla.org/users/jwatt_jwatt>mozilla-build.py" title="https://hg.mozilla.org/users/jwatt_jwatt
>.org/eclipse-cdt-tools/raw-file/tip/just-print-mozilla-build.py">>.org/eclipse-cdt-tools/raw-file/tip/just-print-mozilla-build.py">
>just-print-mozilla-build.py</a> and change it's permissions to ma>just-print-mozilla-build.py</a> and change its permissions to mak
>ke it executable ('chmod a+x just-print-mozilla-build.py').>e it executable ('chmod a+x just-print-mozilla-build.py').
n242      <a href="/en-US/docs/Using_CXX_in_Mozilla_code" title="/en-n242      <a href="/en-US/docs/Using_CXX_in_Mozilla_code" title="/en-
>US/docs/Using_CXX_in_Mozilla_code">As of Mozilla 25</a>, Mozilla >US/docs/Using_CXX_in_Mozilla_code">As of Mozilla 25</a>, Mozilla 
>is built in C++11 mode. When GCC is invoked in C++11 mode, it def>is built in C++11 mode. When GCC is invoked in C++11 mode, it def
>ines preprocessor symbols that enable conditional compilation of >ines preprocessor symbols that enable conditional compilation of 
>C++11 code in its standard library. To correctly parse this code,>C++11 code in its standard library. To correctly parse this code,
> Eclipse CDT needs to know about these symbols. Unfortunately, th> Eclipse CDT needs to know about these symbols. Unfortunately, th
>e build option discovery process outlined above does not pick up >e build option discovery process outlined above does not pick up 
>this information, so CDT needs to be told separately about C++11 >this information, so CDT needs to be told separately about C++11 
>mode. To do this, go to "Preferences -&gt; C/C++ -&gt; Build -&gt>mode. To do this, go to "Preferences -&gt; C/C++ -&gt; Build -&gt
>; Settings -&gt; [Discovery] tab -&gt; CDT GCC Built-in Compiler >; Settings -&gt; [Discovery] tab -&gt; CDT GCC Built-in Compiler 
>Settings" and add the flag "-std=c++11" at the end of the field l>Settings" and add the flag "-std=c++11" at the end of the field l
>abelled "Command to get compiler specs".>abeled "Command to get compiler specs".
n269      Since the compiler options used to build the source change n269      Since the compiler options used to build the source change 
>relatively infrequently, the "build" step above doesn't need to b>relatively infrequently, the "build" step above doesn't need to b
>e rerun all that often. Re-run it (and then rebuild the index) on>e rerun all that often. Rerun it (and then rebuild the index) onc
>ce a week or so, or as necessary when you start to notice unusual>e a week or so, or as necessary when you start to notice unusual 
> code assistance issues that aren't fixed by rebuilding the index>code assistance issues that aren't fixed by rebuilding the index 
> alone.>alone.
270    </p>
271    <p>270    </p>
271    <p>
272      Rebuilding the index itself is required much more frequentl272      Rebuilding the index itself is required much more frequentl
>y since the source changes more frequently. In principle you can >y since the source changes more frequently. In principle you can 
>set the index to rebuild automatically by opening the workspace p>set the index to rebuild automatically by opening the workspace p
>references, selecting "C/C++ &gt; Indexer" and reenabling "Automa>references, selecting "C/C++ &gt; Indexer", and reenabling "Autom
>tically update the index". However, you may find this too disrupt>atically update the index". However, you may find this too disrup
>ive, since reindexing will then happen very frequently and code a>tive, since reindexing will then happen very frequently and code 
>ssistance can be broken while the index is rebuilding. The altern>assistance can be broken while the index is rebuilding. The alter
>ative is to leave that option disabled and update the index manua>native is to leave that option disabled and update the index manu
>lly as necessary. To update the index manually, use the context m>ally as necessary. To update the index manually, use the context 
>enu in the Project Explorer tab on the left side of the window. T>menu in the Project Explorer tab on the left side of the window. 
>o rebuild for changes in an individual directory (for example to >To rebuild for changes in an individual directory (for example, t
>take account of some changes that you yourself made) select "Inde>o take account of some changes that you yourself made) select "In
>x &gt; Freshen All Files" on that directory. To rebuild the entir>dex &gt; Freshen All Files" on that directory. To rebuild the ent
>e index (for example when you pull from mozilla-central) select ">ire index (for example when you pull from mozilla-central) select
>Index &gt; Rebuild" on the project root.> "Index &gt; Rebuild" on the project root.
n284      Regarding key bindings (keyboard shortcuts), the bindings gn284      Regarding key bindings (keyboard shortcuts), the bindings g
>iven below are the defaults. You can change the key bindings by o>iven below are the defaults. You can change the key bindings by o
>pening the workspace preferences (Eclipse &gt; Preferences, or Wi>pening the workspace preferences (Eclipse &gt; Preferences, or Wi
>ndow &gt; Preferences) and selecting "General &gt; Keys". You can>ndow &gt; Preferences) and selecting "General &gt; Keys". You can
> set the scheme to "Emacs" or "Microsoft Visual Studio" if that's> set the scheme to "Emacs" or "Microsoft Visual Studio" if that's
> your thing, or change individual key bindings. When changing ind> your thing, or change individual key bindings. When changing ind
>ividual key bindings, <u>note that bindings are context sensitive>ividual key bindings, <u>note that bindings are context sensitive
>, and that any changes you make may be ignored</u> if they confli>, and that any changes you make may be ignored</u> if they confli
>ct with existing bindings or if they are overriden by a binding f>ct with existing bindings or if they are overridden by a binding 
>or a more specific context. For example, changing the Find Next c>for a more specific context. For example, changing the Find Next 
>ommand to cmd-G/ctrl-G is not sufficient. For that to work you al>command to cmd-G/ctrl-G is not sufficient. For that to work you a
>so either need to find the existing bindings for that key combina>lso either need to find the existing bindings for that key combin
>tion (using the Bindings column to sort by key combination helps >ation (using the Bindings column to sort by key combination helps
>with this) and remove them, or else you need to make your binding> with this) and remove them, or else you need to make your bindin
> very specific by setting the "When" field to "C/C++ Editor" inst>g very specific by setting the "When" field to "C/C++ Editor" ins
>ead of the more general "Editing Text".>tead of the more general "Editing Text".
n314      To side-by-side edit the same file in two different tabs, sn314      To side-by-side edit the same file in two different tabs, s
>elect the tab of the file that you want to edit, then from the me>elect the tab of the file that you want to edit, then from the me
>nu bar select "Window &gt; New Editor". This will open another ta>nu bar select "Window &gt; New Editor". This will open another ta
>b containing the same file. Now simply drag that tab to position >b containing the same file. Now simply drag that tab to position 
>it beside, above or below the original. Changes you make in one e>it beside, above, or below the original. Changes you make in one 
>ditor will be immediately reflected in the other.>editor will be immediately reflected in the other.
n332      To quickly find the definition of an enum, class, method, en332      To quickly find the definition of an enum, class, method, e
>tc. etc. use Ctrl-shift-t/Cmd-shift-t.>tc. use Ctrl-shift-t/Cmd-shift-t.
n338      To see the callers of a method (and their callers, etc.), sn338      To see the callers of a method (and their callers, etc.), s
>elect the method and use the context menu to select "Open Call Hi>elect the method and use the context menu to select "Open Call Hi
>erarchy". Note that there are buttons to the right of the "Open C>erarchy". Note that there are buttons to the right of the "Open C
>all Hierarchy" tab that opens to switch between "Show Callers" an>all Hierarchy" tab that open to switch between "Show Callers" and
>d "Show Callees".> "Show Callees".
339    </p>
340    <p>339    </p>
340    <p>
341      To see the inheritance tree for a class, select its name in341      To see the inheritance tree for a class, select its name in
> an editor window and select "Open Type Hierarchy" from the conte> an editor window and select "Open Type Hierarchy" from the conte
>xt menu. Note that you can switch between "Show the Type Hierarch>xt menu. Note that you can switch between "Show the Type Hierarch
>y", "Show the Supertype Hierarchy" and "Show the Subtype Hierarch>y", "Show the Supertype Hierarchy", and "Show the Subtype Hierarc
>y" using the buttons to the right of the "Type Hierarchy" tab.>hy" using the buttons to the right of the "Type Hierarchy" tab.
n353      Nevertheless, if you understand the above warning and you sn353      Nevertheless, if you understand the above warning and you s
>till want to configure Eclipse's "Build" button to invoke a real >till want to configure Eclipse's "Build" button to invoke a real 
>bulid, then read on.>build, then read on.
n359      If you want to invoke "make -f client.mk" from your source n359      If you want to invoke "make -f client.mk" from your source 
>directory instead of invoking 'make' from your object directory, >directory instead of invoking 'make' from your object directory, 
>then in the "C/C++ Build" section of the project properties, set >then in the "C/C++ Build" section of the project properties, set 
>"Build command" to "make -f client.mk" and set "Build directory" >"Build command" to "make -f client.mk" and set "Build directory" 
>to just "${ProjDirPath}" (this is the top of the source tree). Se>to just "${ProjDirPath}" (this is the top of the source tree). Se
>lect the Behaviour tab and remove the "all" from the "Build (Incr>lect the Behavior tab and remove the "all" from the "Build (Incre
>emental build)" field. Select "C/C++ Build &gt; Build Variables",>mental build)" field. Select "C/C++ Build &gt; Build Variables", 
> and add a variable "MOZCONFIG" and set it to the path of your .m>and add a variable "MOZCONFIG" and set it to the path of your .mo
>ozconfig file relative to the top source directory. Set any other>zconfig file relative to the top source directory. Set any other 
> environment variables you want to set for the build, then close >environment variables you want to set for the build, then close t
>the project properties window.>he project properties window.
n375      To create a debug configuration, open the project propertien375      To create a debug configuration, open the project propertie
>s window, and select "Run/Debug Settings" on the left. Click "New>s window, and select "Run/Debug Settings" on the left. Click "New
>" then select "C/C++ Application". In the window that opens enter>", then select "C/C++ Application". In the window that opens ente
> the path to your firefox binary (something like {your-obj-dir}/d>r the path to your firefox binary (something like {your-obj-dir}/
>ist/NightlyDebug.app/Contents/MacOS/firefox) and select "Disable >dist/NightlyDebug.app/Contents/MacOS/firefox) and select "Disable
>auto build". Select the Arguments tab and enter any args you want> auto build". Select the Arguments tab and enter any args you wan
> to pass to firefox (such as "--no-remote -p my-testing-profile")>t to pass to firefox (such as "--no-remote -p my-testing-profile"
>. If you're on Linux, you may also need to set the "Working direc>). If you're on Linux, you may also need to set the "Working dire
>tory" to {your-obj-dir}/dist/bin, and then select the Environment>ctory" to {your-obj-dir}/dist/bin, and then select the Environmen
> tab and set LD_LIBRARY_PATH to ".:./plugins:.", and LIBRARY_PATH>t tab and set LD_LIBRARY_PATH to ".:./plugins:." and LIBRARY_PATH
> to ".:./components:.". (Are these variables really necessary? If> to ".:./components:.". (Are these variables really necessary? If
> so, why? Isn't LIBRARY_PATH for compile time, not run time, link> so, why? Isn't LIBRARY_PATH for compile time, not runtime, linki
>ing?)>ng?)
n387      After you've finished debugging, you can get back to the C/n387      After you've finished debugging, you can get back to the C/
>C++ perspective (i.e. window layout) via the menubar by selecting>C++ perspective (i.e., window layout) via the menubar by selectin
> "Window &gt; Open Perspective &gt; C/C++".>g "Window &gt; Open Perspective &gt; C/C++".
n405      There are various knows limitations and bugs when it comes n405      There are various known limitations and bugs when it comes 
>to using Eclipse with Mozilla. Eclipse is open source, of course,>to using Eclipse with Mozilla. Eclipse is open source, of course,
> so if anyone feels like doing a bit of Java hacking to fix these> so if anyone feels like doing a bit of Java hacking to fix these
> issues that'd be great. :-)> issues that'd be great. :-)
n447      Many of the parser errors are the result of the {{ anch("Hen447      Many of the parser errors are the result of the {{ anch("He
>aders are only parsed once") }} issue, while others are the resul>aders are only parsed once") }} issue, while others are the resul
>t of Eclipse trying to do its best to process files that are not >t of Eclipse trying to do its best to process files that are not 
>build under your configuration (e.g. files compiled only on other>build under your configuration (e.g., files compiled only on othe
> platforms) and that therefore have no build output parser data a>r platforms) and that therefore have no build output parser data 
>ssociated with them.>associated with them.
n457      <li>Select your project in the Project Explorer, then from n457      <li>Select your project in the Project Explorer, then from 
>the context menu select "Index &gt; Rebuild". When the indexing i>the context menu select "Index &gt; Rebuild". When the indexing i
>s done open the log using "Window &gt; Show View &gt; Other &gt; >s done, open the log using "Window &gt; Show View &gt; Other &gt;
>General &gt; Error Log" and check the summary and look for except> General &gt; Error Log" and check the summary and look for excep
>ions.>tions.
n479      Sometimes when searching for files or symbols you will be gn479      Sometimes when searching for files or symbols you will be g
>iven the option between a file in the source tree, and a file of >iven the option between a file in the source tree, and a file of 
>the same name under the object directory. (Some source and header>the same name under the object directory. (Some source and header
> files are copied to the object directory by the build process, s> files are copied to the object directory by the build process, s
>o we end up with copies in both places.) This will happen if your>o we end up with copies in both places.) This will happen if your
> object directory is inside the source directory. If you don't wa> object directory is inside the source directory. If you don't wa
>nt to switch to using an object directory that's outside your sou>nt to switch to using an object directory that's outside your sou
>rce tree, then this is just one of those things that you'll have >rce tree, then this is just one of those things that you'll have 
>to live with. (If you do change the location of your object direc>to live with. (If you do change the location of your object direc
>tory, then note the instructions that will then apply to you in t>tory, then note the instructions that will then apply to you in t
>he {{ anch("Initial project properties") }} section above!) Since>he {{ anch("Initial project properties") }} section above!) Since
> the indexer needs to be able to resolve header files in the obje> the indexer needs to be able to resolve header files in the obje
>ct directory in order to produce good results we can't have Eclip>ct directory in order to produce good results, we can't have Ecli
>se ignore the object directory. But then there's no way to tell E>pse ignore the object directory. But then there's no way to tell 
>clipse that any given file in the object directory is actually ju>Eclipse that any given file in the object directory is actually j
>st a copy of a given file in the source directory, and that it sh>ust a copy of a given file in the source directory, and that it s
>ould always show the user the copy in the source directory while >hould always show the user the copy in the source directory while
>using the file in the object directory for indexing.> using the file in the object directory for indexing.
n485      Eclipse's support for building only in certain directories n485      Eclipse's support for building only in certain directories 
>is nonexistant. It would be great if the Console tab gave you a s>is nonexistent. It would be great if the Console tab gave you a s
>hell prompt so that you could invoke commands to build directly f>hell prompt so that you could invoke commands to build directly f
>rom there.>rom there.
n503      First, Eclipse needs to be able to collect a usable set of n503      First, Eclipse needs to be able to collect a usable set of 
>defines, include paths and preinclude files for the source files >defines, include paths, and preinclude files for the source files
>in the tree, as explained in the {{ anch("Code assistance") }} se> in the tree, as explained in the {{ anch("Code assistance") }} s
>ction above.>ection above.
n509      How can I open Eclipse for multiple trees at oncen509      How can I open Eclipse for multiple trees at once?
n540      If you followed the recommendation above to create one workn540      If you followed the recommendation above to create one work
>space containing only one project for each Mozilla tree, then thi>space containing only one project for each Mozilla tree, then thi
>s is easy. (If you didn't, and you have projects for more than on>s is easy. (If you didn't, and you have projects for more than on
>e source tree entangled in a workspace directory, well, you're on>e source tree entangled in a workspace directory, well, you're on
> your own.) Simply delete the <code>.project</code> and <code>.cp> your own.) Simply delete the <code>.project</code> and <code>.cp
>roject</code> files and the <code>.settings</code> directory (if >roject</code> files and the <code>.settings</code> directory (if 
>it exists) from the root of your Mozilla tree, and then delete th>it exists) from the root of your Mozilla tree, and then delete th
>e workspace directory corresponding to your tree. That's it, you >e workspace directory corresponding to your tree. That's it; you 
>can now create a new Eclipse workspace and project for your tree >can now create a new Eclipse workspace and project for your tree 
>from scratch.>from scratch.
t558      <strong>Troubleshooting:</strong> If you get an error when t558      <strong>Troubleshooting:</strong> If you get an error when 
>trying to update, try clicking "Available Software Sites" in the >trying to update, try clicking "Available Software Sites" in the 
>"Install" window, make sure "Juno" is still unticked, that&nbsp; >"Install" window, make sure "Juno" is still unticked, that "Night
>"Nightly" is ticked, highlight "Nightly", click "Reload", "OK", a>ly" is ticked, highlight "Nightly", click "Reload", "OK", and the
>nd then try again.>n try again.

Back to History