Commits on Feb 11, 2019
Commits on Jan 31, 2019
The explicit project check is invoked while switching the current project and through the check timer. If the project is validated while it's still loading, then some dependencies may be incorrectly removed, because they haven't been fully indexed yet. The issue can be reproduced by loading two projects with --load-compile-commands, and then using --project to switch back and forth between the projects while they're loading. Project::validate() will output the error message: "Error during validation: <file> doesn't exist". Make the check retry timeout 5 minutes instead of 1 hour
Commits on Jan 27, 2019
If the file being code-completed depends on other unsaved header files, then those other headers also need to be reindexed. Otherwise, when the file being code-completed is reindexed, the last saved versions of those header dependencies will be used. This change is a work in progress. It introduces some inefficiencies that should be optimized: - It passes all unsaved files to the completion thread, rather than only those that the file being code-completed depends on. - It copies and compares UnsavedFiles (std::unordered_map) objects several times.
If unsaved files are not passed to an indexing job for those same files, then the last saved versions of the files are used. This change fixes the following issue caused by that behavior: 1. An #include error is introduced into a file, and the file is saved and reindexed. 2. The #include error is removed, and the file is reindexed again with --reindex --unsaved-file, but not saved again. 3. After the indexing job has finished, updating dependencies causes the file to be reindexed yet again (because the #include error has been removed). 4. The last saved version of the file (still containing the #include error) is used when updating dependencies.
Also, remove the files permanently so that they are no longer indexed, nor reloaded when rdm is restarted. A use case for this feature is to remove specific compile_commands.json files from projects that contain compile_commands.json. "rc --delete-project" removes all compile_commands.json in the project. Note that "rc --remove compile_commands.json" will remove all compile_commands.json in the project, because it works based on pattern matching.
Commits on Jan 26, 2019
Jan 26, 2019
Commits on Jan 5, 2019
The targets of #include/break/continue/return symbols do not have a valid CXCursorKind, and so Symbol::isNull() returns true for them. But these targets do have a valid location. This change enables outputting the locations of these targets when using --symbol-info-include-targets --json/--elisp.
Commits on Dec 30, 2018
Commits on Dec 28, 2018
Dec 28, 2018
Commits on Nov 9, 2018
Commits on Nov 8, 2018
File symbols are expected to be null.
Commits on Nov 7, 2018
When --find-symbols is used with --wildcard-symbol-names, the results may include function variables (which do not match the search pattern). Using --match-regexp with a lookahead to exclude the ')::' function variable signature is very slow. When --strip-paren is used with --list-symbols, it excludes function variables as a side effect. This change aligns --find-symbols with that behavior.
Commits on Nov 6, 2018
Commits on Oct 24, 2018
…d to the checkStyle map (operator creates a new entry). The empty entries showed up in the output with the message set to "null".