The C/C++ indexer uses the parser to create a database of your source and header files that provides the basis for C/C++ search, navigation features and parts of content assist.
+
+
The indexer runs on a background thread and reacts to resource change events such as:
+
+
C/C++ project creation/deletion
+
Source files creation/deletion
+
File imports
+
Source file content changes
+
+
+
It is possible to customize the behavior of the indexer through the use of source folders or even turn it off completely.
+This customizable behavior is available on a per-project basis (i.e. it is possible to have different indexer settings for each project in your workspace).
C/C++ Index Problem reporting places a problem marker on the editor and adds an item to the error list for each preprocessor or semantic problem reported by the parser. Note that the markers will only show up the next time the file is indexed.
+
+
Preprocessor Problems
+
In order for search and search related features to work properly, it is imperative that include paths are set up properly so that the parser can find source files and index them.
+If you suspect that your search results are lacking, you can turn on the preprocessor problem markers. These will place a marker on the line that has the preprocessor problem.
+
This includes:
+
+
Pound error
+
Inclusion not found
+
Definition not found
+
Invalid macro definition
+
Invalid directive
+
Conditional evaluation error
+
+
+
Semantic Problems
+
+
The problem markers can also indicate semantic errors in your code.
The indexer progress bar shows the progress status of the indexing jobs in the progress views.
+
+
The indexing jobs can be temporarily paused by pressing the stop button on the progress bar.
+This will cause the indexer to wait until the next time the user runs a search job or makes a change to an indexed element
+(by such actions as modifying an existing source file, deleting a file, creating a new file, moving file and so on).
+The indexer at this point will resume with the previously postponed indexing job before moving on to the new one.
+
+
If you wish to cease indexing all together, you can cancel an indexing job and disable the indexer.
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_search.htm b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_search.htm
index c39ee4259ba..eaaa70d4a93 100644
--- a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_search.htm
+++ b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_search.htm
@@ -19,10 +19,16 @@ through the use of search delimiters, correct syntax, and wildcards.
You can search for:
-
language constructs within projects in your workspace
+
language constructs within:
+
+
projects in your workspace
+
selected resources from various views
+
working sets
+
a working set for references to particular elements
declarations of particular elements
definitions of particular elements
+
references of particular elements
@@ -110,8 +116,8 @@ is to be searched:
Workspace
Working Set
Selected Resources
-
Project
+
Wildcard characters
You can use wildcard characters to further refine your search.
@@ -213,8 +219,8 @@ your last search.
Workbench User Guide > Concepts > Views > Search view
Workbench User Guide > Tasks > Navigating and finding resources
C/C++ search, by default, will only search your workspace.
+If you wish to search external files that are included by files in your workspace but don’t reside in your workspace,
+you must enable external search markers.
+
+
When a match in an external file is now found, it will be linked into your project and you will be able to open the match from the search pane as usual.
+
+
When a project is closed, or the workbench is shutdown the links are removed.