Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [Dltk-dev] Open declaration (f3) in the (java)script editor

Alex,

thx, i did that the selection engine now only really returns the exact match not more
That does fix the hoover and open declaration.

johan


On Fri, Jan 16, 2009 at 18:36, Alex Panchenko <alex@xxxxxxxxx> wrote:
Hi Johan,

You are right, each language uses own implementation of the engine.select(), so you should look at the _javascript_SelectionEngine first.

Regards,
Alex

----- Original Message -----
From: "Johan Compagner" <jcompagner@xxxxxxxxx>
To: "DLTK Developer list" <dltk-dev@xxxxxxxxxxx>
Sent: Friday, January 16, 2009 11:30:15 PM GMT +06:00 Almaty, Novosibirsk
Subject: [Dltk-dev] Open declaration (f3) in the (java)script editor


Hi,

I have this line:

forms.test.controller;

now i go with my cursor on test and press f3 to open test.
But what i get is first a dialog with a selection that i have to make with "test,test2,testx";
This is because it goes throug:

That goes through SourceModel.codeSelect()

and that in the end will result in a parse of:

forms.test

and that will result in duplicates. But what i really select is a single item, so for a user this is weird (for code completion this is correct)

any takers where i can fix that correctly?

For example the hover also has that same problem

But i fixed that in AbstractScriptEditorTextHover (didnt commit it yet)

if (nResults > 1) {
ArrayList al = new ArrayList();
for (int i = 0; i < result.length; i++) {
String elementName = result[i].getElementName();
if (content.equals(elementName)) {
// exact match is found add that to the list to use.
al.add(result[i]);
}
}
if (al.size() > 0) {
result = new IModelElement[al.size()];
result = (IModelElement[]) al.toArray(result);
}

so if the result is more then 1 i look if there is an exact hit. If it is i only show that one (because very likely that is what a user wants)

But i guess somehow i should able to say that a bit earlier? So in the Openable:
protected IModelElement[] codeSelect(
org.eclipse.dltk.compiler.env.ISourceModule cu, int offset,
int length, WorkingCopyOwner owner) throws ModelException {

or the call to the engine:

IModelElement[] elements = engine.select(cu, offset, offset + length
- 1);

that i really want the exact match?

Do other languages have a different implementation of engine.select??

johan


_______________________________________________
dltk-dev mailing list
dltk-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dltk-dev
_______________________________________________
dltk-dev mailing list
dltk-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dltk-dev


Back to the top