[SVN] REQUEST: Scope Querying API

Charilaos Skiadas cskiadas at gmail.com
Tue Jan 8 16:13:58 UTC 2008

On Jan 8, 2008, at 10:47 AM, Thomas Aylott - subtleGradient wrote:

> On Jan 7, 2008, at 10:47 PM, Luke Daley wrote:
>> On 08/01/2008, at 10:54 AM, Alain O'Dea wrote:
>>> I would like to be able to query the current file or other  
>>> project files for symbols based on scope. I would also like to be  
>>> able to query for symbols with a common instance of a parent scope.
>>> For illustrative purposes I will use JavaScript-like syntax and  
>>> JS DOM-like API:
>>> // get all atoms in the current document
>>> document.getSymbolsByScope("source.erlang meta.function.erlang  
>>> meta.structure.tuple.erlang constant.other.symbol.unquoted.erlang");
>>> // get all atoms in the current function
>>> currentFunction = currentScope.getAncestorByScope("source.erlang  
>>> meta.function.erlang");
>>> currentFunction.getSymbolsByScope("source.erlang  
>>> meta.function.erlang meta.structure.tuple.erlang  
>>> constant.other.symbol.unquoted.erlang");
>>> // get all functions in the current module
>>> document.getSymbolsByScope("source.erlang meta.function");
>> +1 on all of that from me.
>> Also, if you could find the closest something from the caret, that  
>> would be very handy.
>> LD.
> Sounds wonderful.
> There's already a way to get the scoped out xml of the current file.
> Maybe there's already some kind of xml thing you can use to do it?
> Every language on earth parses xml. I'm sure something exists that  
> can be modified to do what you say.
> I would love to have something that was really easy to use though.
I had at some point created a "ScopeHandler" ruby class specifically  
for this purpose, it kind of works but is not very satisfactory, and  
pretty slow on even moderately sized documents. But someone might be  
inspired by it:


It's not exactly what Alain describes above, but perhaps it might be  
used to get ideas. It would indeed be wonderful to have something  
like this out of the box.
> —Thomas Aylott – subtleGradient—

Haris Skiadas
Department of Mathematics and Computer Science
Hanover College

More information about the textmate-dev mailing list