... into QuickFixAssistProcessor and QmlJSQuickFixAssistProcessor,
by essentially duplicating the class, but moving the actual work to
a new a GenericProposal::createProposal(...QuickFixOperations...)
Less indirection, and less code in total.
Change-Id: I2f8cba970bf587c9cbf04321269a60ed51bfae2a
Reviewed-by: David Schulz <david.schulz@qt.io>
Removes the need to create yet another subclass (for overriding a
virtual method) in some situations.
Change-Id: I55d70de60b4f8d127a175d996f797700c2f172a6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This reverts
commit 3bf19030ab.
CodeAssist: Fragile proposals aren't closed by automatic proposals.
which fixed the case [1] but introduced the regression in case [2]. Re-
implement the fix for [1] in a different way: Check whether the new
proposal has any items to show before closing the function signature
hint.
Case [1]
void f(int);
void g()
{
f(bar // This is what we will have in the end. The steps are:
// 1. Type "f("
// --> OK, function signature pop up is shown.
// 2. Type "bar"
// --> OPS, function signature pop up is closed and no
// new completion list is shown because "bar" does
// not match any declarations.
}
Case [2]
int barman = 0;
void f(int);
void g()
{
f(bar // This is what we will have in the end. The steps are:
// 1. Type "f("
// --> OK, function signature pop up is shown.
// 2. Type "bar"
// --> OPS, no auto completion list for "barman" is
// proposed.
}
Task-number: QTCREATORBUG-16934
Change-Id: I8456275d951de9e6fc53285a5dbcbd448d49ad08
Reviewed-by: David Schulz <david.schulz@qt.io>
Adding an empty default implementation to the base and
Removing boilerplate code from the specialized classes.
Change-Id: I4469d9f05d2ff153c0867c10683f86b4f656fd3d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Every proposal needs to have a base postion.
Move it to the base class to reduce duplicated code.
Change-Id: I0b1b8282dfe955d251646661f755bf9f585fbad1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
For unit test we need to break every dependency to the TextEditor
Widget etc.. With an abstract interface we can implement it in clang
without relying on unwanted dependencies. It makes it also easier to
compute the values deferred.
Change-Id: I1b313a1625f4e80bd324ab4bf1a7c4f6b690abe9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
... and some of the related implementation details
Change-Id: I1f03aa5acf2d3fb2cfc2a6a7845f3d3578b0408d
Reviewed-by: David Schulz <david.schulz@digia.com>
Remove GenericProposalModel convenience constructor,
add GenericProposal instead. Less user side code.
Change-Id: I833f9943df27b50579485c93efb96943ec403f65
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Simplifies the code base by removing one level of unused
and unneeded abstraction.
- Merge {I,Default}AssistInterface to AssistInterface
- Merge {IAssist,Basic}ProposalItem to AssistProposalItem
- Merge {IGenericProposal,BasicProposalItemList}Model to GenericProposalModel
Change-Id: I54ee7b095427383d67a00fc1d87c3808c21d812d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
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>
This is a re-work of our completion engine. Primary goals are:
- Allow the computation to run in a separate thread so the GUI is not locked.
- Support a model-based approach. QStrings are still needed (filtering, etc), but
internal structures are free to use more efficient representations.
- Unifiy all kinds of *assist* into a more reusable and extensible framework.
- Remove unnecessary dependencies on the text editor so we have more generic
and easily "plugable" components (still things to be resolved).