Ctrl+Q not always working.

Im developing a Bindows application in Javascript and have only partial success with using Ctrl+Q.
Here are some examples when it didnt work for me:

BiObject.prototype.setAttribute.call(this, sName, sValue, oParser); // caret on setAttribute

BiComponent.flushLayoutQueue(); // caret on flushLayoutQueue


However this seems to work:
BiTimer.callOnce(function() { // caret on callOnce or BiTimer both works
new Isee();
}, 0);


In general it seem pretty unstable, please take a look at it, Selena even crashed to desktop once. I think its hard to provide you with good use cases without sending you my entire code base, due to the scope complexity of javascript. But if you just play around with it for a while you will quickly find several occations where it doesnt work as intended.

9 comments
Comment actions Permalink

Control + Q does not work when more than one definition of the symbol
under cursor (control + b suggests several alternatives in this case).
Please, check out if this is the case.

Johan Lund wrote:

Im developing a Bindows application in Javascript and have only partial success with using Ctrl+Q.
Here are some examples when it didnt work for me:

BiObject.prototype.setAttribute.call(this, sName, sValue, oParser); // caret on setAttribute

BiComponent.flushLayoutQueue(); // caret on flushLayoutQueue


However this seems to work:
BiTimer.callOnce(function() { // caret on callOnce or BiTimer both works
new Isee();
}, 0);


In general it seem pretty unstable, please take a look at it, Selena even crashed to desktop once. I think its hard to provide you with good use cases without sending you my entire code base, due to the scope complexity of javascript. But if you just play around with it for a while you will quickly find several occations where it doesnt work as intended.



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

Ok, It might not be Intellij's fault entirely after all. I came to think about that Bindows use this construct sometimes (for getters and setters):

/**

  • The z index of the component. A higher z index means that the component will

  • cover components with lower z index and therefore appear to be closer to

  • the user.

  • @type Number

*/
_p.setZIndex = function (nZIndex) {
...
};
_p.getZIndex = function () {
...

So if you press ctrl+q on getZIndex somewhere Intellij can't find documentation for it, naturally...

0
Comment actions Permalink

Then control + b does not navigate at all :)

Johan Lund wrote:

Ok, It might not be Intellij's fault entirely after all. I came to think about that Bindows use this construct sometimes (for getters and setters):

/**

  • The z index of the component. A higher z index means that the component will

  • cover components with lower z index and therefore appear to be closer to

  • the user.

  • @type Number

*/
_p.setZIndex = function (nZIndex) {
..
};
_p.getZIndex = function () {
..

So if you press ctrl+q on getZIndex somewhere Intellij can't find documentation for it, naturally...


--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

Yes Maxim, that is the case also. Here is an example that does not work:
When placing caret on x.helloWorld in Test3.js nothing happens. But as you said thats not supported...

/**
Test1.js
*/
function Test1() {
if (_biInPrototype) return;
BiEventTarget.call(this);

}
_p = _biExtend(Test1, BiEventTarget, "Test1");

/**

  • Gives you a nice string (1)

*/
_p.helloWorld = function() {
return "hello 1";
};

-


/**
Test2.js
*/
function Test2() {
if (_biInPrototype) return;
BiEventTarget.call(this);

}
_p = _biExtend(Test2, BiEventTarget, "Test2");

/**

  • Gives you a nice string (2)

*/
_p.helloWorld = function() {
return "hello 2";
};
-


/**
Test3.js
*/
function Test3() {
if (_biInPrototype) return;
BiEventTarget.call(this);
var x = new Test1();
x.helloWorld();
}
_p = _biExtend(Test3, BiEventTarget, "Test3");

0
Comment actions Permalink

Yea that too :(

0
Comment actions Permalink

Would it be possible to get a similar popup menu as in ctrl+b when you have multiple definitions? Is that a good idea?

0
Comment actions Permalink

We have this issue in the queue, stay tuned :)

Johan Lund wrote:

Yes Maxim, that is the case also. Here is an example that does not work:
When placing caret on x.helloWorld in Test3.js nothing happens. But as you said thats not supported...

/**
Test1.js
*/
function Test1() {
if (_biInPrototype) return;
BiEventTarget.call(this);

}
_p = _biExtend(Test1, BiEventTarget, "Test1");

/**

  • Gives you a nice string (1)

*/
_p.helloWorld = function() {
return "hello 1";
};

------------------------------------------------------------
/**
Test2.js
*/
function Test2() {
if (_biInPrototype) return;
BiEventTarget.call(this);

}
_p = _biExtend(Test2, BiEventTarget, "Test2");

/**

  • Gives you a nice string (2)

*/
_p.helloWorld = function() {
return "hello 2";
};
----------------------------------------
/**
Test3.js
*/
function Test3() {
if (_biInPrototype) return;
BiEventTarget.call(this);
var x = new Test1();
x.helloWorld();
}
_p = _biExtend(Test3, BiEventTarget, "Test3");



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

Yes, this is exactly as it is expected

Johan Lund wrote:

Would it be possible to get a similar popup menu as in ctrl+b when you have multiple definitions? Is that a good idea?


--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink
  • Jumping up and down of excitement *

0

Please sign in to leave a comment.