Commit Graph

929 Commits

Author SHA1 Message Date
Eike Ziller
9c9316b9e7 Merge remote-tracking branch 'origin/2.5' 2012-03-05 13:48:48 +01:00
Tobias Hunger
339b34a5df Add missing copyright headers
Change-Id: I71f9050a7de9c7b07bcd7d96c8e5fc64a8565fb0
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-03-05 10:12:08 +01:00
Friedemann Kleint
4e83fb7953 Port Qt Creator to the new plugin system of Qt 5.
- Add Q_PLUGIN_METADATA for Qt 5, use Q_EXPORT_PLUGIN
  for Qt 4.
- Generate the Json files for Qt 5 from the pluginspec
  files by using a XSLT sheet.

Change-Id: I8653f182ae7d61615971c093df10b84fb06c2172
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-02 14:13:49 +01:00
Orgad Shaneh
164db0feeb qbs: Cleanup
* Removed utils, extensionsystem and aggregation dependencies
for plugins that depend on Core
* Capitalized Find and CPlusPlus

Change-Id: I505e5f46976f26da47ad778860f103b173668b1c
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-28 08:58:11 +01:00
Erik Verbruggen
6e6e756d01 C++: fixed source-to-project-part map calculation
When the information for a project is updated, the mapping was cleared
and only recalculated for the new project info. Thereby wiping out
the info for any previously added project.

Change-Id: Ic6999b9be07f8cb6b4638723e6c8c7d2d3ca52e7
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-23 14:17:19 +01:00
Joerg Bornemann
d70505b005 qbs project files updated
Change-Id: Id1ca01f4910003535a32b7d3b0ad5fd3d433172a
Reviewed-by: hjk <qthjk@ovi.com>
2012-02-23 13:18:58 +01:00
Erik Verbruggen
2d262bd3b7 [C++] Added object pool handling for CompletionAssistProvider.
Change-Id: I89634989a7f360a30f7ed1bde4e67c93551ddfe4
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-23 10:33:50 +01:00
Erik Verbruggen
f3a3bf78c0 C++: Fixed crash.
Change-Id: Idec56cfced6e6eb2e0a78c4f242e7c81fec08692
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-02-23 10:33:38 +01:00
Erik Verbruggen
368d5926ca C++: handle destructor names with template parameters.
Change-Id: I74b4fd5e043db935abc18345b303d294b71e8fc2
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-23 08:39:34 +01:00
Flex Ferrum
da2aa0df72 C++: Add support for C++11 range-based 'for' loops
Change-Id: I7eef048a7952a79f031ae3d0abba68e3c5ffbfb8
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-21 15:27:00 +01:00
Erik Verbruggen
3123e8862b C++: killed old dead code.
Change-Id: I480470c299f49a02d2a216d3aece81a843d73ce1
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-21 09:19:04 +01:00
Joerg Bornemann
ff92cdec43 add qbs files
Change-Id: If6bf71797ae81655d24a77e6badb86a77312af38
Reviewed-by: hjk <qthjk@ovi.com>
2012-02-20 19:18:18 +01:00
Erik Verbruggen
6fe6f5cdb1 C++: make highlighting/completion plugable.
Change-Id: I990fdf5411153041c6b4c62f31b453342d59de53
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-20 14:21:22 +01:00
Eike Ziller
d66acb51d0 Rename IFile->IDocument and FileManager->DocumentManager
And adapt the other API respectively.

Change-Id: I1e04e555409be09242db6890f9e013396f83aeed
Reviewed-by: Bill King <bill.king@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-20 13:32:49 +01:00
Erik Verbruggen
3aab8beaf4 Supply c++11 flags and per-project info to c++ code model.
A manual squash/merge of the changes below, plus a couple of subsequent
code fixes.

59085aa5fbb99e2d786cd2c1a06c24a111ccb49f:
    Modify CppModel::ProjectInfo

    Adding per project node information, to pass on the correct
    defines/includes for each file, instead of aggregating them incorrectly.

    Also split up SOURCES and OBJECTIVE_SOURCES.

    Also ask the toolchain to convert the compilerflags to flags the
    codemodel understands, for now only gcc and only c++11.

    Also make the toolchain aware of the flags used to compile, so that it
    can emit the correct defines.

    Note: No header files are passed on.

74028802314cd4e75b41b46407433e07090a304d:
    GCC: Evaluate cxxflags when checking for predefined macros

ebaaa4957e4c02cc9637a998eddae1d0acd74f83:
    MSVC: Take cxxflags into account when checking for predefined macros

9bfce7e889bcf7bcc47bf880e3ea25945ca7d0d7:
    Compile fixes

Change-Id: I9de94ad038dfc5dc1987732e84b13fb4419c96f5
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-16 15:17:17 +01:00
Erik Verbruggen
3fa55b7ab9 Removed module names from #include directives.
Getting the #include directives ready for Qt5. This includes the
new-project wizards.

Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-15 16:24:46 +01:00
Daniel Teske
accb0040ed SessionManager::loadSession inline impl functions and rewrite
The order of actions and thus the state at which the signals are emitted
has changed. The aboutToUnloadSession comes before the actual saving
now. Also the aboutToLoadSession is after restoring values but before
restoring projects and editors.

Change-Id: I3eae66cffae970f00535d8d6e2bb11a6ca645456
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-02-13 13:28:54 +01:00
Leandro Melo
70b64280ee Improve code-assist API isSortable
Now IGenericProposalModel::isSortable also takes the current prefix
as a parameter. This is particularly useful for cases like in the C++
completion: For global completions it will only sort if there's
already a content prefix - Notice, however, that the "sorting threshold"
for a maximum number of items is still kept in IGenericProposalModel::sort.

Task-number: QTCREATORBUG-6404
Change-Id: I3c2f282aa565287b8b4989930b6a27093862ef25
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-10 14:25:42 +01:00
Erik Verbruggen
db25f9a136 C++: Added highlighting for labels.
Change-Id: I559a3112d2aa0a3c09554f8da8b7917f9aa27944
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-09 13:32:46 +01:00
Friedemann Kleint
7caeb1d627 Fix compilation with Qt5.
- Add missing QtScript module (pulled by json in utils
- Include type definitions for Q_DECLARE_METATYPE
- Unconditionally include QtSvg in Qt5

Change-Id: If298dd98fb660a6ba701f1ba36ced2d2027ea3e8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-09 12:44:40 +01:00
Friedemann Kleint
622cac50f4 Move QtConcurrent library into Utils.
It causes a conflict with the new QtConcurrent library
of Qt 5 and is quite small.

Change-Id: Ib97ab6daf8f67a88300cf03f044ba3593a4cd270
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-09 12:33:10 +01:00
Erik Verbruggen
dbc3332b8e C++: Moved completion/highlighting into the model manager.
This way the editor does not need to know all the details of
instantiating or maintaining classes for highlighting and/or completion,
it can just ask the model manager. The change also enables different
highlighting- or completion-engines without changes to the cppeditor.

Change-Id: I8000d9d9fe446b292defddb2295493cf77d0f14a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-02-08 14:30:14 +01:00
Eike Ziller
88d95250ef Move repeated searches to top.
Task-number: QTCREATORBUG-6907

Change-Id: I25c04185beb3729e2d11cc88d17fcd1a3b51037c
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-02-07 16:13:41 +01:00
Leandro Melo
5b847a66df C++: Handle add definition on empty files
Now in the case of a matching empty file we still select a best
token so the insertion happens *at* the end of the file.

The patch also fixes line breaks after the definition to be inserted
for situations in which there's no line break yet. Example:

namespace Foo {}

namespace {
}

Another thing for correctness. Member _key from HighestValue is now
value initialized instead of default initialized.

Task-number: QTCREATORBUG-6696
Change-Id: I5c0303675429c3da5cb88825272c9611be022f6a
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-31 16:44:38 +01:00
Daniel Teske
b8ae31e664 Remove checking for a null sessionmanager.
That can't happen.

Change-Id: I05293e96e7a716fbaf5fd03aa182c723c9858a03
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-01-31 14:15:35 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
hjk
21c0cdee40 Core::Filemanager: make some methods static
This follows suit to the ICore changes.

Change-Id: Iba2de1b1e3f2574fd1459892eae702e6af1cc7dc
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-25 19:23:11 +01:00
hjk
b0b105d575 ProjectExplorer: make currentProject static
This saves one function call compared to the instance()->currentProject()
pattern and is typically less to type on the caller site.

Change-Id: I65568f30205fc90e2aaca7e8e7f0192241df8c85
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-24 19:20:13 +01:00
hjk
4a21f0c3c8 Use new static ICore interface.
Change-Id: I9b690d9b150c8d162b15370f9f8986267c9128f1
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-24 18:48:47 +01:00
Eike Ziller
50b1d6742a Windows build fix.
Change-Id: If5389209dad8dbd4c78d9faff41323ae3218cd78
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-24 14:14:00 +01:00
Leandro Melo
474fa9a7ff Fix assert
Change-Id: I41b4b444fdce6d73c0c62aa1d98a7c9d80a6a4c9
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-01-24 14:06:05 +01:00
Eike Ziller
cd2dab2922 Implement "search again" for find usages (C++)
Change-Id: Ia3dc174c64da9194401883a1a989a712cb7aaed8
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-24 12:34:04 +01:00
Leandro Melo
8e3c88f02b C++: Share symbol finder across editor instances
Change-Id: I75880597d237bbbe1393dd02153cedba1165bed6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-24 11:41:49 +01:00
Leandro Melo
efe9bca20c C++: Replace non-absolute-critical asserts for soft ones
Change-Id: I021074a78d90929b4e83b8aff9db1ae7995e8c6a
Reviewed-by: hjk <qthjk@ovi.com>
2012-01-24 09:58:59 +01:00
Leandro Melo
35bcccb500 C++: Remaining fixes in symbol finder
Should have gone in the previous fix commit...

Change-Id: Ibca55cbd6fd58caee7d61f5e8f8c37f67391c597
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-23 21:00:43 +01:00
Leandro Melo
b97b45a341 C++: Fix "reference" file in symbol finder
Througout the initial review the singleton was transformed into an
ordinary class, but a error was introduced: The "reference" file was
incorrectly assumed to be the editors file, which is wrong, since
it should be the declaration file.

Change-Id: Iad3e25a690fa8bd07a18184b24b10f8dea965332
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-23 17:17:00 +01:00
Leandro Melo
6caa899bfc Compile fix
Change-Id: I22dfa74f8f10a601103b179eb037604d5a747077
Reviewed-by: hjk <qthjk@ovi.com>
2012-01-23 12:45:48 +01:00
Leandro Melo
466ea4842c C++: Improve file accuracy when finding symbols
This patch introduces a priority-based mechanism when searching for certains
symbols in the snapshot. The priority corresponds to how similar the file path
from the "reference" symbol is to the file path from the "candidate" symbol.
This solves a variety of issues when matching "equivalent" symbols but that
are in another file/project, such as when following a function declaration,
a forward class declaration, or adding a definition through a quickfix.

There's now a symbol finder which will compute the "best" search order and cache
the most recent results. A consequence is that following symbols in some cases
is slower, but not apparently significatly.

Note: The "find" functions were moved from the Snapshot to the new SymbolFinder
class.

Task-number: QTCREATORBUG-6697
Task-number: QTCREATORBUG-6792

Change-Id: Ia518f014275fec1f4d0cb3224bd4e06a9df6d557
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-23 11:34:44 +01:00
Leandro Melo
c287d90604 C++: Rename source/setSource to utf8Source/setUtf8Source
Continuinng a previous commit... This is in order to make
the interface clearer.

Change-Id: Ic1b05217f878578bc84a064927507b75981c47d6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 11:22:28 +01:00
Leandro Melo
fd179ed951 C++: Accept UTF-8 byte arrays in type of expression
The model uses UTF-8 internally and it makes more sense to only
convert when necessary.

A following commit will rename the source/setSource methods in
document for more clarity too.

Change-Id: I960ea0754efabd1436ad4b4299a57faeb65a8bee
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 10:17:03 +01:00
Leandro Melo
f04be782ab C++: Preserve original indentation in extract function
Also extend the refactoring changes to allow for reindenting.

Task-number: QTCREATORBUG-6797
Change-Id: I515c9a37d9e62e1d5de52ff99bd492e739a81885
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-12 15:32:02 +01:00
Nicolas Arnaud-Cormos
4095b80793 Add a cache for the header/source mapping.
Now that we are iterating all the files in the project (instead of stopping at
the first success), we need a cache to make the switching fast enough on big
projects.

Change-Id: Ib7d63c93b3303c534ca53856d96333a822046ced
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-11 11:47:54 +01:00
Nicolas Arnaud-Cormos
ab8d39ace1 Fix the switch header/source action.
In case multiple files have the same name (in a complex project), find
the file with the most common path instead of the first one.

Change-Id: I75495dabe7ba8f5142d6b52e7c07d54d5d6f54bd
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-11 11:44:35 +01:00
Leandro Melo
c25f0585d1 C++: Extract function quickfix
Task-number: QTCREATORBUG-5485

Change-Id: Ib6aaeaadad4b421480d22399392768d4bad85bda
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-10 15:31:03 +01:00
Eike Ziller
4c849bc21d Fix warning.
Change-Id: I30ec590b86846f8fdcb0094a848e56002d590b7a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-20 18:47:44 +01:00
Eike Ziller
bf97079be3 Fix cancelling search for usages.
Change-Id: Ic78cf5030e78759018ea84d0c258c81c8081ae98
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-20 13:15:03 +01:00
Eike Ziller
11907bc072 Fix starting a usage search while another one is running.
Theoretically it could now run multiple searches in parallel, but since
a single search grabs all available threads from the pool, any search
request afterwards is queued for execution when the previous one
finished.

Task-number: QTCREATORBUG-6101
Change-Id: Ifada0ccdd1ce7cfb4aaaaa4de2db070025f91a3a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-20 12:21:34 +01:00
Eike Ziller
4de9fd8dac Implement "Search Again" for symbol search.
Task-number: QTCREATORBUG-621

Change-Id: I4bd39c88afc1df93712b1d9a76f875516c657f3d
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-20 12:03:59 +01:00
Eike Ziller
26d8b8753c Disable "Search Again" if file filter is disabled.
For example disabled it for "All Projects" searches when all projects
are closed.

Change-Id: Icc65a87577ba51f4362791dc8ecdca3c92819553
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-20 12:03:50 +01:00
Eike Ziller
44f66959a3 Allow multiple simultaneous C++ symbol searches.
Task-number: QTCREATORBUG-6101

Change-Id: Ib632414b13c4d3748bd33f61e7fec98292a1b57e
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-12-19 12:55:27 +01:00