emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Universal tag structure, was: Re: IDE


From: Dmitry Gutov
Subject: Universal tag structure, was: Re: IDE
Date: Wed, 28 Oct 2015 16:45:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 Thunderbird/42.0

On 10/28/2015 01:39 PM, Eric Ludlam wrote:

What is optimal?

Can't really say.

For me, it was about pulling all the datatype
information out of the syntax, and differentiating between different tag
classes, and having something that was Emacs friendly, and extensible to
any language, no matter how strange.

Sounds like a good direction.

For me, Semantic's tag structure
is pretty good.  It has 5 slots:

* The name, as 'car' so you can use assoc and other friendly things.
* The class of the tag is next, as all languages have different kinds of
tags.
* plist of attributes, extensible to use anything, but with some common
attribute names defined for use via API.
* plist of properties, or bits of data needed by the tooling, which is
arbitrary and extensible for whatever a tool might need.
* Buffer binding information - either the [start end] of the tag, or an
overlay.

Sections 3 and 4 are a little vague, for a format description. If they contain important data, it should be standardized somehow.

Regarding "buffer binding information", I think that's too Semantic-specific. Instead, maybe a tag should be able to "find" itself (probably by implementing some generic function). Whether it's via keeping a reference to an overlay, consulting some index, or external process, or simply running Grep again.

That makes the tag extensible for almost any situation, and keeps TAG
data and OPERATIONAL data separate, saveable, and searchable.

Overlays are a part of the "operational" data, IMO.

I don't intend working on this in the near future, though, so I'd like to bow out of the detailed discussion of the format, for now.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]