Re: Package specific syntax

2017-12-15 Thread mg
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.ovchinni...@jetbrains.com> Datum: 15.12.17  14:13  (GMT+01:00) An: MG 
<mg...@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
“Drive to develop”
On 14 Dec 2017, at 04:11, MG <mg...@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

  “Drive to develop"
  
  

  

  On 14 Dec 2017, at 01:03, Nathan Harvey <nathanwhar...@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


  

  
  




  




Re: Package specific syntax

2017-12-13 Thread MG
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 
“Drive to develop"

On 14 Dec 2017, at 01:03, Nathan Harvey > 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






Re: Package specific syntax

2017-12-13 Thread Daniil Ovchinnikov
This: 

> Example:
> package void foo() {}

—

Daniil Ovchinnikov
JetBrains
jetbrains.com
“Drive to develop"

> On 14 Dec 2017, at 01:37, Nathan Harvey  wrote:
> 
> I meant that the @PackageScope annotation made code look somewhat unreadable,
> and that the "package" keyword would be an ideal solution.
> 
> 
> 
> --
> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html



Re: Package specific syntax

2017-12-13 Thread Nathan Harvey
I meant that the @PackageScope annotation made code look somewhat unreadable,
and that the "package" keyword would be an ideal solution.



--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: Package specific syntax

2017-12-13 Thread mg
"this" in this case being bound to ?-)(i.e. what do you mean by "this" - having 
a package keyword or an annotation ?)
 Ursprüngliche Nachricht Von: Daniil Ovchinnikov 
<daniil.ovchinni...@jetbrains.com> Datum: 13.12.17  23:14  (GMT+01:00) An: 
dev@groovy.apache.org Betreff: Re: Package specific syntax 
This is the best way from IDE perspective.


—

Daniil Ovchinnikov
JetBrains
jetbrains.com
“Drive to develop"


On 14 Dec 2017, at 01:03, Nathan Harvey <nathanwhar...@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



Re: Package specific syntax

2017-12-13 Thread Daniil Ovchinnikov
This is the best way from IDE perspective.

—

Daniil Ovchinnikov
JetBrains
jetbrains.com
“Drive to develop"

> On 14 Dec 2017, at 01:03, Nathan Harvey  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