Thread: [CEDET-devel] Java and static/instance context
Brought to you by:
zappo
From: Vladimir K. <vka...@in...> - 2012-11-14 19:49:30
|
Hi, everyone! While fixing bugs I noticed that Cedet (for Java) does not separate static/instance contexts. In static functions and blocks only tags with the "static" typemodifier should be accessible, and both static and usual methods/vars/classes in an instance context. I thinking about implementing this particular feature, and this should not be too hard, as all the info required is already available in tags received upon completion. I've spent an hour or two trying to find a canonical way to implement this, but failed. Which is confusing! In three languages Cedet claims to support there is such a concept. Maybe I missed something? Or overloading semantic-analyze-possible-completions-default function with a java-specific one is the only way..? Or even extending a default function would be reasonable? -- Yours sincerely, Vladimir Kazanov, software developer, mob. +7 (963) 304-05-12 ICQ: 82042707 skype: stvovka email: vka...@in... -- С уважением, Владимир Казанов, программист, моб. +7 (963) 304-05-12 ICQ 82042707 skype: stvovka эл.почта vka...@in... |
From: Eric M. L. <er...@si...> - 2012-11-23 03:01:47
|
On 11/14/2012 02:49 PM, Vladimir Kazanov wrote: > Hi, everyone! > > While fixing bugs I noticed that Cedet (for Java) does not separate > static/instance contexts. In static functions and blocks only tags with > the "static" typemodifier should be accessible, and both static and > usual methods/vars/classes in an instance context. > > I thinking about implementing this particular feature, and this should > not be too hard, as all the info required is already available in tags > received upon completion. I've spent an hour or two trying to find a > canonical way to implement this, but failed. Which is confusing! In > three languages Cedet claims to support there is such a concept. > > Maybe I missed something? Or overloading > semantic-analyze-possible-completions-default function with a > java-specific one is the only way..? Or even extending a default > function would be reasonable? This came up once before, and the conversation is somewhere in the cedet-devel archive. I'm not sure how to search the sourceforge mailing list archive anymore though. Too bad, as I had some data on the problems related to getting this working. Maybe someone out there knows how to do the search? Eric |
From: Vladimir K. <vka...@in...> - 2012-11-25 14:56:03
|
Eric, I found out how to search the lists (see the "Mailing lists" drop-down in the main project navigation bar)and found that discussion you mentioned. Quite an old one, from 2010. But things did not change a lot since then, thus we can start from that point. The discussion: http://sourceforge.net/mailarchive/message.php?msg_id=25042960 You wrote that there is no such mechanic available. I can see two ways of solving the issue: 1. overload the main completing function and implement Java-specific filtering. 2. add a generic mechanism to handle such cases (filtering completion list using language-specific rules) with a reasonable default implementation. I prefer the second variant, as most of Cedet languages would benefit from it (C++, Java, Python). Eric, what do you think? I guess I could implement that and post the patch here for discussion, along with other bug-fixes and minor improvements I have in my local branch. Legal papers are on their way to FSF. BTW, Eric, is there a special policy for Cedet contributors? I would like work on Java support in Cedet on regular basis. On Fri, Nov 23, 2012 at 10:01 AM, Eric M. Ludlam <er...@si...>wrote: > On 11/14/2012 02:49 PM, Vladimir Kazanov wrote: > >> Hi, everyone! >> >> While fixing bugs I noticed that Cedet (for Java) does not separate >> static/instance contexts. In static functions and blocks only tags with >> the "static" typemodifier should be accessible, and both static and >> usual methods/vars/classes in an instance context. >> >> I thinking about implementing this particular feature, and this should >> not be too hard, as all the info required is already available in tags >> received upon completion. I've spent an hour or two trying to find a >> canonical way to implement this, but failed. Which is confusing! In >> three languages Cedet claims to support there is such a concept. >> >> Maybe I missed something? Or overloading >> semantic-analyze-possible-**completions-default function with a >> java-specific one is the only way..? Or even extending a default >> function would be reasonable? >> > > This came up once before, and the conversation is somewhere in the > cedet-devel archive. I'm not sure how to search the sourceforge mailing > list archive anymore though. Too bad, as I had some data on the problems > related to getting this working. Maybe someone out there knows how to do > the search? > > Eric > > > -- Yours sincerely, Vladimir Kazanov, software developer, mob. +7 (963) 304-05-12 ICQ: 82042707 skype: stvovka email: vka...@in... -- С уважением, Владимир Казанов, программист, моб. +7 (963) 304-05-12 ICQ 82042707 skype: stvovka эл.почта vka...@in... |
From: Eric M. L. <er...@si...> - 2012-11-25 19:32:59
|
On 11/25/2012 09:55 AM, Vladimir Kazanov wrote: > Eric, > > I found out how to search the lists (see the "Mailing lists" drop-down > in the main project navigation bar)and found that discussion you > mentioned. Quite an old one, from 2010. But things did not change a lot > since then, thus we can start from that point. > > The discussion: > http://sourceforge.net/mailarchive/message.php?msg_id=25042960 Aha, thanks for finding that. I could have sworn there was another recent thread on this, but I can't find it either. Sometimes I write long responses, realize I made a mistake and erase them, so who knows what I'm remembering. > You wrote that there is no such mechanic available. I can see two ways > of solving the issue: > > 1. overload the main completing function and implement Java-specific > filtering. > 2. add a generic mechanism to handle such cases (filtering completion > list using language-specific rules) with a reasonable default > implementation. > > I prefer the second variant, as most of Cedet languages would benefit > from it (C++, Java, Python). Eric, what do you think? I agree. Especially if we can create examples for all three languages that show the similar behavior. That will help both with updating our tests, and figuring out what the commonalities and differences are. Mostly I'm having trouble imagining the specifics based on the generic explanations. Too much turkey this past holiday perhaps. ;) > I guess I could implement that and post the patch here for discussion, > along with other bug-fixes and minor improvements I have in my local > branch. Legal papers are on their way to FSF. > > BTW, Eric, is there a special policy for Cedet contributors? I would > like work on Java support in Cedet on regular basis. The mechanics are nicely described in the file USING_CEDET_FROM_BZR in the repository. New folks do code reviews via this mailing lists. Whenever possible, get your changes covered with one of the unit test frameworks. Especially for anything in the code analyzer, and minor changes to language parsing. I've tried to make some generic unit test frameworks that make new tests here easy. On a check-in, the log messages should be in Changelog format. That way we can generate the changelog from bzr later. Naturally, the FSF needs paperwork from contributors so that changes can be folded back into Emacs. Contributions from people who can't or won't sign papers can go into the contrib area. Thanks! Let me know when your papers are accepted by the FSF. Eric |