Commit Graph

66 Commits

Author SHA1 Message Date
Erik Verbruggen
f7c68f6baf C++: change working-copy to work on UTF-8 encoded QByteArrays.
These not only take less space than UTF-16 encoded QStrings, but due to
the caching in the CppEditorSupport also take less time to build.

This patch also fixes a number of possible encoding issues, where files
and constant strings were (falsely) assumed to be UTF-8.

Change-Id: Ib6f91c9a94ebed5b5dfbd4eb2998825c62c72784
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-09-11 09:43:14 +02:00
Erik Verbruggen
3a5d3a2fe9 C++: unify highlighting/code-completion support "factories".
Both semantic highlighting and code-completion go hand-in-hand, so now
the ModelManagerSupport class acts as a "factory" for the model manager.
Depending on the mime-type of the document in the editor, the model
manager will return the appropriate highlighter or code-completion
engine. If none is registered, the built-in fall-back is used.

Change-Id: I3e5dbb0e3b58e077dd5eda9aecb2ce5d448ac0b8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-10 11:45:38 +02:00
Erik Verbruggen
87a3aac18f C++: add fallback project part querying
When a file is not part of any other project part, this project part can
be used to get at least some compiler flags, defines, etc. to use. This
can happen when either a file outside a project is opened, or when the
project description is incomplete.

Change-Id: I5d595fae7195e8b61dbad14368b6cae9eb15c21b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-10 07:36:25 +02:00
Erik Verbruggen
b4a1bd415f C++: clean-up CppCompletionAssist.
This is step 1 of 2 for merging the various provider factories into a
single class. Merging has the advantage that selecting based on editor
(content) mime-type only has to select one class, instead of re-doing
the selection for each class separately.

Change-Id: I11f815151bd4769ae6028b636793d6a80d02e202
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-09 11:59:14 +02:00
Erik Verbruggen
7516ef4969 TextEditor: get CompletionAssistProvider from editor.
And not from the global object pool. This way, the editors that have
different highlighters for various language dialects, or editors that
support multiple languages in a single editor, can decide themselves on
what CompletionAssistProvider to provide.

Change-Id: Ieebc4a8e7b3de6470fdb8103035aa3b8b2ba6598
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-09 10:15:55 +02:00
Erik Verbruggen
073e5d6632 C++: optionally let the highlighter handle ifdefed-out blocks.
Change-Id: I38cc0e55348cac0245d2ab8f3e39c68de76e3e6d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-08-19 13:01:07 +02:00
Nikolai Kosjar
8ea14767af CppTools: Rework handling of ProjectInfo changes
(a) The code model manager figures out by itself which files were added
    or removed from the project.

    If this was done successfully, check also the timestamp of the
    common files and reindex if necessary.

(b) A full reindexing is only triggered if the project configuration
    changes (defines, includes, framework paths).

(c) If project files were removed, the garbage collector is called.

Task-number: QTCREATORBUG-9730
Change-Id: Ib855614b070880576233a3525813617c967a72f3
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-08-13 14:13:33 +02:00
Nikolai Kosjar
fdaddec7d1 CppTools: Clean up CppModelManager(Interface)
* Const correctness
* Better variable names
* Sort order of includes and forward declarations
* Comment fixes
* Cosmetic/Whitespace changes

Change-Id: Ieb137266ac7eddedb00c37f8b2cc8677d67e4bdd
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-07-31 14:34:08 +02:00
Oswald Buddenhagen
6896546ba5 Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/cpptools/cppmodelmanager.cpp

Change-Id: I0e69dfad951eb81d8008f5ca05e8fb6999ae2c8a
2013-07-25 13:18:31 +02:00
Nikolai Kosjar
e2ce17ef00 CppTools: Fix "! condition" coding style
Change-Id: Ic7e634e4249fb64edbc2daceb65ec8e9b5f0f8b9
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
2013-07-25 13:11:34 +02:00
Nikolai Kosjar
072b7c5718 CppTools: Check if project has changed before reparsing
This introduces an API change for the project managers. Those are not
expected to call updateSourceFiles() anymore.

Task-number: QTCREATORBUG-9581
Change-Id: I77befd29fb851c9acf87204d571da00183c9cd05
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-07-22 08:33:52 +02:00
Nikolai Kosjar
26fbefb26c CppTools: Allow to force a "Parsing" notification
Task-number: QTCREATORBUG-9597

Change-Id: I726a818c7d4af35dcb4863f74b08cd639a189bdd
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-06-24 13:10:51 +02:00
Nikolai Kosjar
8180f695f1 CppEditor: Check <include path>/QSomething
For the quick fix AddIncludeForUndefinedIdentifier, if no class is found
via the locator, check the "Qt include paths" for a header file with the
same name as the class name.

Task-number: QTCREATORBUG-9538
Change-Id: I13c86844c2ff653fa479dc91eb109af2a6d76fae
Reviewed-by: Lorenz Haas <lykurg@gmail.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-06-17 08:16:43 +02:00
Erik Verbruggen
feff33827c C++: fix crash when failing to open non-existing file.
Change-Id: Ie7bd3b36139ab7fac1186cefa7222dff7277eb53
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-05-24 14:17:47 +02:00
Sergey Shambir
59b303fadc CppTools: ProjectPart now collects warning flags
Will be used by ClangCodeModel, but native model also can use it by
disabling unused variable/parameter warnings when needed.

Change-Id: I184efb3c65e893a2d85a933385cc547b646e6826
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-13 13:10:10 +02:00
Sergey Shambir
ec8a01c150 CppTools: added ProjectPart::evaluateToolchain()
At this moment each project manager duplicates code that reads C++ code
model information from ProjectExplorer::ToolChain.
This change provides unified way.

Change-Id: If9ecfc40991aab90768dd69f5f10f31bbf5fbc21
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-04-30 17:31:43 +02:00
Erik Verbruggen
0c27b27658 C++ Detach the CppEditor from code-model internals.
- Moved document update handling into CppTools.
- Moved semantic info calculation into CppTools.
- Moved semantic highlighting into CppTools.

Change-Id: I253861bf074a64b1f657f7a4a8e6583871b5285f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-26 12:47:06 +02:00
Tobias Hunger
ddafdf55de CppTools: Rename files to comply with coding standard
Rename ModelManagerInterface.(h|cpp) to cppmodelmanagerinterface.(h|cpp).
Rename TypeHierarchyBuilder.(h|cpp) to typehierarchybuilder.(h|cpp).

Change-Id: I035d833fd205d7460819bd0fb7031294359032f9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 11:43:22 +02:00
Christian Kamm
5f50a6ae34 C++: Move the ModelManagerInterface from CppTools to CPlusPlus. 2011-01-04 15:58:21 +01:00
con
04e32b0049 License headers. 2010-12-17 16:03:42 +01:00
Friedemann Kleint
7ab30d8a63 C++-Settings/License template: Add %FILENAME%, %CLASS% placeholders.
... for doxygen. Change logic for known empty keywords to be replaced
by an empty string.

Task-number: QTCREATORBUG-1854
2010-08-09 12:26:48 +02:00
ck
46f537e56a Quickfix: Convert underscore notation to camel case.
Reviewed-by: Roberto Raggi
2010-07-20 11:07:14 +02:00
Erik Verbruggen
e3e8b1a5c0 Removed the TokenCache. 2010-07-02 11:18:51 +02:00
Erik Verbruggen
e42ca194c5 Introduced token caching to prevent repetetive tokenizing.
Also removed TokenUnderCursor as it's functionality is in the token cache.

Reviewed-by: ckamm
2010-06-14 10:10:05 +02:00
Roberto Raggi
f5dae8bc9f Refactored the quickfix engine. 2010-06-07 12:16:45 +02:00
Erik Verbruggen
424b9724d6 Revert "Introduced a token cache for the C++ editor."
This reverts commit c2393df023.
2010-06-04 12:37:26 +02:00
Erik Verbruggen
c2393df023 Introduced a token cache for the C++ editor.
This should speed things up a bit, because before, the line was tokenized at
least 3 times.
2010-06-04 09:36:05 +02:00
Roberto Raggi
1c078ec2a3 Ensure we keep the context around for as long as it is needed. 2010-05-31 12:37:15 +02:00
Erik Verbruggen
284b8d38e2 Put the DependencyTable calculation into the QFuture.
Done-with: Roberto Raggi
2010-03-17 14:20:17 +01:00
dt
90c1c8f54d Cancel a previous update code model 2010-03-10 17:02:24 +01:00
Erik Verbruggen
417a1c9f28 Fixed QTCREATORBUG-745.
Fixed crash in FindUsages on a dirty file in a large project, which is saved
while the FindUsages is still running.
2010-03-09 17:38:02 +01:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Oswald Buddenhagen
75b42f18d8 Merge remote branch 'origin/1.3'
Trailing whitespace removal re-applied manually.
2010-01-29 22:50:23 +01:00
Oswald Buddenhagen
a6ca348636 remove trailing whitespace
doing it in 1.3 as well to avoid possible later conflicts
2010-01-29 21:33:57 +01:00
dt
60c8686ed8 Add the precompiled headers to the project info
QMake passes those headers directly to gcc, so the user doesn't need to
include themselves.
2010-01-12 13:19:15 +01:00
Christian Kamm
f90f9e4879 Find macro uses.
Reviewed-by: Erik Verbruggen
2009-12-21 14:57:05 +01:00
Roberto Raggi
51de95c497 Use the text editor revision to ignore outdated parse results. 2009-12-15 15:52:55 +01:00
Roberto Raggi
aa8a670669 Hide the implementation details of CppModelManagerInterface::WorkingCopy. 2009-12-15 15:26:40 +01:00
Roberto Raggi
b168eec2a1 Replaced the hardcoded QHash<QString, QString> with CppModelManagerInterface::WorkingCopy. 2009-12-15 15:16:46 +01:00
Roberto Raggi
bdb4e48ebf Store the working list in a QHash. 2009-12-07 12:47:45 +01:00
Roberto Raggi
60caec48d1 Store the documents in an hash. 2009-12-07 11:12:55 +01:00
con
e4b1a25dd2 Revert "Code model: Update on changes from the versioning system."
This reverts commit 7aa2411693.
It breaks the code model updates completely. So reverting this change
until we have the right thing.

Reviewed-by: Roberto Raggi
2009-11-10 18:19:37 +01:00
Friedemann Kleint
7aa2411693 Code model: Update on changes from the versioning system.
Add state logic to CppCodeModelManagerInterface, making it aware whether
an indexer is running, protect the update methods from another
invocation while running. Add changed signals to IVersionControl and
VCSManager and wire them to the update methods. Add a menu action for
manually updating.

Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: con <qtc-committer@nokia.com>
2009-11-09 15:57:56 +01:00
Roberto Raggi
eaa2c10a25 Introduced CppTools::CppModelManagerInterface::updateModifiedFiles().
updateModifiedFiles ckecks the timestamp and reparses all the modified files in the current snapshot.
2009-11-05 12:34:02 +01:00
Roberto Raggi
420b09e8c2 Expose CppModelManagerInterface::workingCopy() 2009-10-12 10:38:00 +02:00
Roberto Raggi
73320a43d1 Added `Find Usages' of a Symbol. 2009-10-05 15:17:48 +02:00
Roberto Raggi
b5d6bf73d6 Ensure the user can stop a semantic search and added a method to get a pointer to the ModelManagerInterface. 2009-10-05 13:43:05 +02:00
Roberto Raggi
ace380ec28 Make the symbols used in the current editors. 2009-09-30 13:25:59 +02:00
Roberto Raggi
8848be4caa Find references 2009-09-23 16:52:41 +02:00
Thorbjørn Lindeijer
51d2c831b9 Fix crash in include completion with non-canonical include paths
Use QFileInfo::fileName() to get the filename, since that also works
when the original path wasn't canonical.
2009-08-20 19:49:54 +02:00