groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniil Ovchinnikov <daniil.ovchinni...@jetbrains.com>
Subject Re: Package specific syntax
Date Sun, 17 Dec 2017 22:34:06 GMT
I’d love `@PackageScope` to be removed (or deprecated) in favor of `package` keyword. In
this case I woudn’t have to scan for it.

—

Daniil Ovchinnikov
JetBrains
jetbrains.com
“Drive to develop”

> On 15 Dec 2017, at 16:36, mg <mgbiz@arscreat.com> wrote:
> 
> Hi Daniil,
> 
> thank you for explaining that, as most devs with regards to IDEs I am a user and have
little insight in the challenges of its inner workings.
> 
> I have never had the need to use @PackageScope, but the problem I see is that the annotation
(in typical Groovy style), can do more than a keyword, due to it supporting parameters to
restrict its applicability to e.g. class fields only - so I guess you would have to scan for
@PackageScope in any case...
> 
> Cheers,
> mg
> 
> 
> -------- Ursprüngliche Nachricht --------
> Von: Daniil Ovchinnikov <daniil.ovchinnikov@jetbrains.com>
> Datum: 15.12.17 14:13 (GMT+01:00)
> An: MG <mgbiz@arscreat.com>
> Betreff: Re: Package specific syntax
> 
> Each annotation requires resolution, which slows the IDE. With a keyword we can get visibility
of members instantly, for example for showing appropriate icon in Project View.
> 
> We need to resolve _all_ annotations and check if there are annotation collectors just
to find that given member doesn’t have @PackageScope. 
> At this point all we need to know is whether containing class of a given member has @PackageScope,
and we start to resolve all annotations of a class and so on.
> 
> —
> 
> Daniil Ovchinnikov
> JetBrains
> jetbrains.com <http://jetbrains.com/>
> “Drive to develop”
> 
>> On 14 Dec 2017, at 04:11, MG <mgbiz@arscreat.com <mailto:mgbiz@arscreat.com>>
wrote:
>> 
>> Why is a keyword better than an annotation from an IDE developer's perspective (considering
Groovy already has tons of annotations which more complex semantics than @PackageScope) ?
>> 
>> 
>> On 13.12.2017 23:14, Daniil Ovchinnikov wrote:
>>> This is the best way from IDE perspective.
>>> 
>>> —
>>> 
>>> Daniil Ovchinnikov
>>> JetBrains
>>> jetbrains.com <http://jetbrains.com/>
>>> “Drive to develop"
>>> 
>>>> On 14 Dec 2017, at 01:03, Nathan Harvey <nathanwharvey@gmail.com <mailto:nathanwharvey@gmail.com>>
wrote:
>>>> 
>>>> In Java,  methods and fields use package scope by default. In Groovy, they
>>>> use public. In order to make something package scope, you have to use the
>>>> @PackageScope annotation. This makes code look a bit messy but also doesn't
>>>> seem very intuitive. What if the "package" keyword was able to be applied,
>>>> in exactly the same way as "public" and "private" are? 
>>>> 
>>>> Example:
>>>> package void foo() {}
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html <http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html>
>>> 
>> 
> 


Mime
View raw message