Closed makarichevss closed 3 months ago
Thanks for the feedback
And one more bug: class, interface should mark only class and interface, not extends or implements
Now that I have some time replying back, I'll currently decline implementing these, for the following reason:
These additions are made in order to give more customization options to the supported languages, however I'm trying not to give too much customization by offering per-keyword customization in order to not complicate too much the options provided.
Therefore these keywords are grouped according to a specific "domain" as much as I can:
abstract, implements, extends
- native
is just an extension for C/JNI based applications if I remember correctly)assert
for basic assertions. I know this is a frowned upon pattern but whatever.void
class
and interface
enum
has its own category, but logically it should have been put with OOP I guessfor
, while
and do
are related to loopsif
, else
conditionalimport
and package
for package managementinstanceof
for type checkingmodule
, requires
etc... these are not just JavaScript keywords, but Java as well, specifically for Java 9 modules featurenew
for object creationnull
, true
and false
for primitive values. I could further separate null
from true
and false
as you stated.private
, public
, protected
for modifiersreturn
static
and final
. I admit that these are not related. I'll try to provide different categoriesswitch
, case
, default
for pattern matchingsynchronized
, volatile
, transient
- related to threadingthis
and super
: purely by choice, as these are not keywords but more like "instances" - this
being the current object and super
being the parent object. They are in the same logical group and I don't plan to separate them. It's also the case for all languages.throw
, throws
- related to exceptionstry
, catch
, finally
- obviousvar
for dynamic typingSo to sum it up, the only changes I'll make will be to separate null
from true, false
and static
from final
.
Describe the feature
Please make some fixes into Java Additions section in IntelliJ IDEA. Awesome work is done in 9th version of MT, but something is yet to do. Please check the numbers on the screenshot and the comments to it below:
1) Please split this into abstract and extends, implements and native. These keywords are from different meaning groups. 2) Please split this into class and interface. These keywords are from different meaning groups. 3) These are not Java, but Javascript keywords - please delete it from Java Additions. 4) Please split this into static and final. These keywords are from different meaning groups. 4) Please split this into this and super. These keywords are from different meaning groups. 6) Now void is marked as a primitive type, though it's not. Please make a separate section for void and remove it from Primitive types.
And some open discussion topics:
Use Cases
No response
Examples/Mockups
No response
Material Theme Version
v9.1.0
IDE
IntelliJ IDEA
System Info