[cedet-semantic] semantic-tag-new-*
Brought to you by:
zappo
From: D C. <dpc...@ho...> - 2010-05-04 17:27:35
|
Hi again, I'm working on making the Csharp support more usable. I'm looking at semantic-tag.el . There's a namespace construct in C#, nothing more than a scoping structure, a way to organize classes into a hierarchical naming space. Like Java's package, except the syntax is different in C#. The namespace gets a brace block: namespace Foo { public class Bar { ... } } To support that in the parser, I've created a new tag, namespace-tag. (defsubst semantic-tag-new-namespace (name members &rest attributes) "Create a semantic tag of class 'namespace. NAME is the name of this namespace. MEMBERS is a list of strings or semantic tags representing the elements that are contained within the namespace. ATTRIBUTES is a list of additional attributes belonging to this tag." (apply 'semantic-tag name 'namespace :members members attributes)) This seems to work fine, in the parsing. But, for some reason, the child tags within that tag don't get overlays. Instead they get vector locations. This breaks tag finding stuff, like semantic-get-all-local-variables and so on. If in the Csharp grammar, I treat the namespace keyword as a TYPE-TAG instead of NAMESPACE-TAG, then the overlays are properly inserted into the tag table. Why the difference? Can you tell me, where is the magic that inserts overlays if the parent tag is "type" rather than "namespace" ? Thanks. Dino Chiesa dpc...@ho... |