Hi Gorkem,

> I have also checked VS code and they seem to have a completely text based
search around mark occurrences.

Which version of VSCode are you using? I have installed the 1.1.0 and it
uses TypeScript Salsa and it is not based on text search.

I have implemented "Mark occurrences" too inside typescript.java. See
https://github.com/angelozerr/typescript.java/wiki/Editor-Features#mark-occurrences

And here the result:




Regard's Angelo

2016-04-18 15:51 GMT+02:00 Gorkem Ercan <gorkem.er...@gmail.com>:

>
> I think JSDT’s reliance on type information is something borrowed from JDT.
> I do not think it is adding value to what JSDT offers.
>
> +1 for just marking the symbol occurrence. I have also checked VS code and
> they seem to
> have a completely text based search around mark occurrences. So if you
> select an identifier
> say named “syntax” it will also be marked on a string “This is a syntax
> error”.
>
> I guess we can open a bugzilla for this to follow up.
>
> —
> Gorkem
>
>
>
> On 16 Apr 2016, at 11:12, Eugene Melekhov wrote:
>
> Hi all,
>>
>> I've been working on implementing new binding resolver based on ast dom
>> model as a replacement for
>> DefaultBindingResolver that uses internal compiler data unavailable since
>> we've switched to esprima parser.
>>
>> Since this work had been started in order to fix "Bug 489897 - Mark
>> Occurrences is not working on JavaScriptEd..."
>> I had to look into JavaEditor and I've noticed one thing which is not
>> actually obvious for me.
>>
>> JavaSriptEditor preferences page for 'Mark Occurrences' has several
>> check-boxes for configuring what to mark:
>> 'Functions' 'Constants' 'Local variables' 'Function exits' 'Targets of
>> break and continue statements'
>>
>> JavaSriptEditor tries to find out what kind of symbol(variable, function,
>> type) is at cursor position then analyses
>> type binding and so on and so forth. I wonder if it all makes sense
>> actually? Look at the sample code at the end of
>> the message.
>>
>> What is 'a' in function bar? Function or variable? What is 'c' in that
>> function? Function or variable?
>> What is the type of 'c' ? Number or function, What is the type of 'd' ?
>> Undefined or Object or Array or what?
>> What are 'l1' , 'l2' in function 'barr' What is 'x' at global scope?
>>
>>
>> I'm not criticizing. I just believe that dynamic nature of JS makes such
>> attempts to strongly rely on Type useless.
>> JS "type" of symbol is rather a Set of Probable 'types' and we can't tell
>> actually whether symbol is variable or
>> 'function'. Perhaps we can say call site...
>>
>> Nevertheless, it's another long story; I actually want to ask if it makes
>> sense to bother with all that complexities?
>> Wouldn't be better to just mark 'symbol occurrences'. It means marking
>> symbol declaration and symbol references
>> depending on scope? It seems more clear for me and besides it's
>> cheaper/faster from computation point of view.
>>
>> I'm not that familiar with other JS editors/IDEs, so I can't tell what
>> they do in such case. Orion though just marks
>> 'symbol occurrence' as far as I can see.
>>
>> What do you think?
>>
>> // =======  Here is sample code mentioned above =============
>> function foo (a,b) {
>>   return a+b;
>> }
>>
>> function bar(a, b, c, d) {
>>   if (typeof (c) == 'function') {
>>     return c(a,b);
>>   } else if (typeof(a) == 'function'){
>>     return {a: d.a, b: d[c], c: d["c"], d: a(b,c)};
>>   }
>>
>> }
>>
>> function barr() {
>>   var l1 = 10, l2 = 20;
>>
>>   l1: for(var i=1; i < 10; i++) {
>>     l2: for(var j=1; j < 10; j++) {
>>       if (j==5) {
>>         break l1;
>>       } else if ( j==6) {
>>         continue l2;
>>       }
>>     }
>>   }
>>   return l1+l2;
>> }
>>
>> barr();
>>
>> var x = foo;
>>
>> x = x(1,2);
>>
>> console.log("x = "+x);
>>
>> var v = foo(1,2);
>>
>> var w = bar(3,4,foo)
>>
>> var x = bar(5,6, function (a,b) {return a+b;});
>>
>> var y = bar(7,8, (a,b) => a+b);
>>
>> var z = bar((a,b) => a+b, 9, 10, {a:11, 10: 12, c: 13});
>>
>>
>> console.log("v = "+v);
>> console.log("w = "+w);
>> console.log("x = "+x);
>> console.log("y = "+y);
>> console.log("z = {"+z.a+","+z.b+","+z.c+","+z.d+"}");
>>
>>
>>
>> --
>> Eugene Melekhov
>>
>> _______________________________________________
>> wtp-dev mailing list
>> wtp-dev@eclipse.org
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/wtp-dev
>>
> _______________________________________________
> wtp-dev mailing list
> wtp-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/wtp-dev
>
_______________________________________________
wtp-dev mailing list
wtp-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

Reply via email to