Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Add Include working without a selection?

Thanks for explaining that. That's a ... creative ... way to implement

Looking at the documentation for it
lipse.jface.text/src/org/eclipse/jface/text/ ), I
see: "A selection of length 0 is not an empty text selection as it
describes, e.g., the cursor position in a viewer." which mostly makes
sense, but still seems an odd way to handle things.

 Can you or someone else explain further when (and why)
selection.isEmpty() actually *would* return true, and what the reference
to "backwards compatibility" might be?

Also, how can *this* be null (as is checked for in the first branch of
the code)? (See
for examples of people who think this can't happen)


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Andrew Eidsness
Sent: Wednesday, March 20, 2013 6:53 PM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] Add Include working without a selection?

The implementation of TextSelection.isEmpty is:

public boolean isEmpty() {
	return this == NULL || /* backwards compatibility: */ fOffset <
0 || fLength < 0; }

In your case (nothing selected), fLength is 0; so the selection says
that it is not empty.


On 13-03-20 09:37 PM, Jesse Weinstein wrote:
> I'm confused about whether Add Include will work without anything 
> selected. It appears to do so (details below), but my reading of the 
> code suggests that it shouldn't. So I'm confused.
> Here's the code that makes me think it shouldn't do anything if there 
> is no selection:
> if (selection.isEmpty() || !(selection instanceof ITextSelection)) {
> return;
> }
> from
> .cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAc
> And here's how I seem to be able to make it do things:
> I have a class implementation file: someClass.cpp, containing an 
> implementation of a single method, and without any #includes. If I run

> "Add Include" without anything selected, it adds an include for the 
> header file where the class is declared, #include "someClass.h".
> What's going on here?
> (Asked on the forum, with no response, here:
> )
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx

cdt-dev mailing list

Back to the top