Inspection-JS first impressions

Hi,

I have just downloaded and installed Inspection-JS.

What I like is that it gives IDEA more power in JavaScript handling.

What I don't like:

1. Single file awareness - I would like to be able to configure packages
of JavaScript files so that global variables, functions and classes will
be handled intelligently (like in Java).

2. I got an exception in a Java file that IDEA said happened in
Inspection-JS, which makes me wander if Inspection-JS actually slows
down all of my editing.

3. I put in the debugger statement and Inspection-JS states "Expression
statement is not assignment or call". I would prefer a different warning
about having a forced debugger stop, as I never want to check that into
production code.

4. This one is an IntelliJ UI enhancement - Having all of the
inspections in 1 place is problematic as there are so many of them.
Either they are consolidated, i.e. ones that are implemented for
multiple languages do not appear separately (e.g. naming conventions) or
there should be an easy way to filter by file type.

I will continue using it and report as necessary.

I commend the effort to take on the IDEA APIs and provide better
JavaScript support, but the bottom line is that without multi-file
awareness (which will lead to refactorability) It is not of great use
for me.

Amnon

15 comments

What I like is that it gives IDEA more power in JavaScript handling.

Glad to hear it. That was certainly what we were aiming for.

+1. Single file awareness - I would like to be able to configure packages
of JavaScript files so that global variables, functions and classes will
be handled intelligently (like in Java).+

Agreed, so would we. It's a very hard problem, and one we are tackling for our next release.

+2. I got an exception in a Java file that IDEA said happened in
Inspection-JS, which makes me wander if Inspection-JS actually slows
down all of my editing.+

Yes, but imperceptably and only itermittently. There is no good way using the IDEA OpenAPI to disable individual inspections within the scope of a file or file type. However, all of the inspections in Inspection-JS were tuned such to avoid performance issues in Java files. Note also that edits within the scope of a given Java method (i.e., most Java edits) do not trigger Inspection-JS inspections.

+3. I put in the debugger statement and Inspection-JS states "Expression
statement is not assignment or call". I would prefer a different warning
about having a forced debugger stop, as I never want to check that into
production code.+

A bug, which we will fix. Bugs against Inspection-JS can be reported in the JetBrains JIRA, at http://jetbrains.net/jira/browse/SRRIJS.

Sixth and Red River Software
"Code with Grace and Verve"

0

Sixth and Red River Software wrote:

+1. Single file awareness - I would like to be able to configure packages
of JavaScript files so that global variables, functions and classes will
be handled intelligently (like in Java).+

Agreed, so would we. It's a very hard problem, and one we are tackling for our next release.


In Demetra codebase there is such code that does resolve between files,
I believe, you can benefit from it.

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

0

Maxim Mossienko wrote:

Sixth and Red River Software wrote:

>> +1. Single file awareness - I would like to be able to configure
>> packages
>> of JavaScript files so that global variables, functions and classes will
>> be handled intelligently (like in Java).+
>>
>> Agreed, so would we. It's a very hard problem, and one we are
>> tackling for our next release.


In Demetra codebase there is such code that does resolve between files,
I believe, you can benefit from it.

So should I expect better JavaScript support in Demetra or still rely on
3rd party like Inspection-JS?

Amnon

0

Hello Amnon,

>>> +1. Single file awareness - I would like to be able to configure
>>> packages
>>> of JavaScript files so that global variables, functions and classes
>>> will
>>> be handled intelligently (like in Java).+
>>> Agreed, so would we. It's a very hard problem, and one we are
>>> tackling for our next release.
>>>
>> In Demetra codebase there is such code that does resolve between
>> files, I believe, you can benefit from it.
>>
AG> So should I expect better JavaScript support in Demetra or still
AG> rely on 3rd party like Inspection-JS?

http://blogs.jetbrains.com/yole/archives/000048.html

The enhancements we have planned (and already implemented) for JavaScript
in Demetra cover different areas than Inspection-JS. We have no plans to
duplicate the Inspection-JS work and implement JS inspections in the standard
JS plugin, but the core functionality will be much improved.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0

Many thanks for that bit of information Dmitry. I've been toying with the idea (if you can excuse the pun) of purchasing Inspection-JS as it looks like it could be extremely helpful. With all the new features in Demitra for JS I wasn't sure whether the core functionality of the products will overlap in the future, but now I know that SRSS will be receiving another new customer extremely shortly.

I value JetBrains opinions greatly and there is every likelihood I will be looking into virtually all the products you recommend in your Companion Products program so long as it seems useful to me. With that said, is it fair to say that all the products you recommend in that section offer something above and beyond what JB are looking to implement themselves in IDEA in the foreseeable future? The only reason I am asking is that I'm a personal user and don't want to be forking out my own cash on a Companion Product that will be replaced by IDEA functionality in the near future.

0

Hello Rob,

RB> I value JetBrains opinions greatly and there is every likelihood I
RB> will be looking into virtually all the products you recommend in
RB> your Companion Products program so long as it seems useful to me.
RB> With that said, is it fair to say that all the products you
RB> recommend in that section offer something above and beyond what JB
RB> are looking to implement themselves in IDEA in the foreseeable
RB> future? The only reason I am asking is that I'm a personal user and
RB> don't want to be forking out my own cash on a Companion Product that
RB> will be replaced by IDEA functionality in the near future.

There may be some overlap in functionality sometimes (for example, one of
the refactorings from Refactor-J - Invert Boolean Method - will be available
as a core feature in Demetra). But in general, there is no point for us to
spend our own resources on functionality already provided by our partners.
So, yes, you can be sure that your investment in our companion products will
not be lost when new versions of IDEA are released.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0

Quick question. The Refactor-J "Invert Boolean" refactoring works not just on methods, but also on local variables, fields, and method parameters. Is that in plan for Demetra as well?

Sixth and Red River Software
"Code with Grace and Verve"

0

Many thanks again Dmitry, as always you have been very helpful. :)

0


"Sixth and Red River Software" <no_mail@jetbrains.com> wrote in message
news:23798908.1133968099112.JavaMail.javamailuser@localhost...

Quick question. The Refactor-J "Invert Boolean" refactoring works not
just on methods, but also on local variables, fields, and method
parameters. Is that in plan for Demetra as well?


I believe we will handle these cases as well, though now we do not.

Eugene.


0

+What I like is that it gives IDEA more power in
JavaScript handling.+

Glad to hear it. That was certainly what we were
aiming for.

+1. Single file awareness - I would like to be able
to configure packages
of JavaScript files so that global variables,
functions and classes will
be handled intelligently (like in Java).+

Agreed, so would we. It's a very hard problem, and
one we are tackling for our next release.


I'm a user with a personal licence too, and as such want to be careful what I spend my money on. The above feature would interest me. However, I'm not sure what the upgrade policy is if I invest in Refactor-JS... Which upgrades will I be entitled to for free, and which will I have to pay for ?

Other than that, I was also wondering about upgrades to remain compatible with future versions of IDEA. For example, if I buy a 1.0.x release of the SRRS plug-ins, and upgrade in a year to IDEA 6, and changes in IDEA 6 make the SRRS plug-ins incompatible, will I be entitled to a free upgrade? Again, from the point of view as a personal user, I wouldn't want to have to spend extra money for Refactor-J 2.0 just to be compatible with IDEA 6 if the functional differences in Refactor-J 2.0 (compared with 1.0) didn't interest me, and all I wanted to do was continue using the features in Refactor-J 1.0 that aren't integrated into the main IDEA product.

I'm for example interested in "genericising" some APIs (hello Trove4J).

- Chris

0

+
Which upgrades will I be entitled to for free, and which will I have to pay for ?
+

Upgrade policy for Sixth and Red River plugins is currently under discussion, but the broad outlines will be as follows. Your license entitles you to all bug fixes released for a given version of a Sixth and Red River product for a period of one year from purchase. We are including in that any changes required to make Sixth and Red River products work with current versions of IDEA. Thus, if a change in the release version of Demetra breaks Inspection-JS 1.0, we will release a version of Inspection-JS 1.0 that works with Demetra, absolutely free. We can not make such gaurantees for EAP versions of IntelliJ IDEA, but it is obviously in our interest to attempt to do so.

Additionally, we are gauranteeing that if IDEA releases functionality which duplicates functionality provided by a Sixth and Red River product, that we will release a free upgrade with additional functionality of approximately equivalent complexity and power. This is to protect you from any concerns over Sixth and Red River and JetBrains pursuing overlapping development paths (which we are working to avoid doing anyway).

Upgrades to 2.0 versions of Sixth and Red River products will obviously not be free, but there will be a discount for existing customers. Due to our low price points, these discounts are likely to be in the 20%-25% range, and will not be usable with other discounts, specials or bundling options that we may offer.

All of the above provisions are subject to change without notice, except as specified in our licensing agreement. Past performance is no gaurantee of future results. Some settling may occur in shipping. No animals were harmed in the making of this software. All models were over 18 at the time of posting.

Sixth and Red River Software
"Code with Grace and Verve"

0

It seems like a sensible policy, and if formalised in the licence agreement would be very encouraging.

Concerning the last disclaimer, you didn't mention if the unharmed animals were over 18. And when are you shipping the models?

0

What is your return policy? For example, say I buy the bundle and I come to the conclusion that I'm not really feeling any "verve". Will I be able to get my money back?

fyi: I think you forget to mention that "Contents may settle during shipping" in your disclaimer.

0

fyi: I think you forget to mention that "Contents may settle during
shipping" in your disclaimer.


Read it again. It's in there. =)

Tobin


0

My apologies. You are correct.

0

Please sign in to leave a comment.