I did this for myself a while back, assuming it was only a matter of time before someone more knowledgeable would make an official LDAP bundle. That hasn't happened, and searching in GetBundles indicates that no one has worked on an LDAP/LDIF related bundle, so I've cleaned mine up and am submitting it for consideration. (Surely there are other people that work with LDIF? I notice vim has a syntax for it.)
One good way to test it: If you have an OpenLDAP server, run `slapcat - l somefile.ldif`, then open that file in TextMate. You should see everything scoped nicely, every entry should be listed in the symbols list, and you should be able to fold entries. You shouldn't see any "invalid" sections.
I've looked at man pages and other documentation and I think I've covered the LDIF syntax pretty well. The only thing I can't figure out the regex for is "more than one space before an attribute's value". (It should be scoped as invalid.) Since the first space is part of the "begin" pattern, it's difficult to identify additional spaces without matching every space in the string. Any suggestions there would be appreciated.
Thanks.
On 11/12/2008, at 5:50 AM, Rob McBroom wrote:
I did this for myself a while back, assuming it was only a matter of time before someone more knowledgeable would make an official LDAP bundle. That hasn't happened, and searching in GetBundles indicates that no one has worked on an LDAP/LDIF related bundle, so I've cleaned mine up and am submitting it for consideration. (Surely there are other people that work with LDIF? I notice vim has a syntax for it.)
I have [submitted this to review[1], thanks for sharing.
I'll probably make a few refinements. Did you want to be listed as the maintainer?
[1]: http://svn.textmate.org/trunk/Review/Bundles/LDIF.tmbundle/
On 2008-Dec-10, at 7:31 PM, Luke Daley wrote:
I have [submitted this to review[1], thanks for sharing.
Cool. No problem.
I'll probably make a few refinements. Did you want to be listed as the maintainer?
Yes, I can be listed as the maintainer as long as it's not a problem that I don't have commit access to the repository. As the maintainer, I'd be happy to make the refinements… if you can tell me what they are.
I was on the fence about renaming it as you did because I thought it might one day include more LDAP commands (based on ldap[search|add| modify]). Looks like a side of the fence has been chosen, which is fine.
Also, I forgot to mention earlier - it would be nice if an LDIF icon and the appropriate entries in Info.plist could be in the next release of TextMate.
Thanks.
On 12/12/2008, at 12:17 AM, Rob McBroom wrote:
Yes, I can be listed as the maintainer as long as it's not a problem that I don't have commit access to the repository. As the maintainer, I'd be happy to make the refinements… if you can tell me what they are.
Sure thing, will do offline when I get the chance.
I was on the fence about renaming it as you did because I thought it might one day include more LDAP commands (based on ldap[search|add| modify]). Looks like a side of the fence has been chosen, which is fine.
Sorry about that, I did mean to give the reasoning for that in the email.
LDIF is a language in it's own right, if there are going be ldap commands I think they should be in a separate bundle.
Apologies for just changing that on you.
Also, I forgot to mention earlier - it would be nice if an LDIF icon and the appropriate entries in Info.plist could be in the next release of TextMate.
Here here.
On 2008-Dec-11, at 7:05 PM, Luke Daley wrote:
On 12/12/2008, at 12:17 AM, Rob McBroom wrote:
Yes, I can be listed as the maintainer as long as it's not a problem that I don't have commit access to the repository. As the maintainer, I'd be happy to make the refinements… if you can tell me what they are.
Sure thing, will do offline when I get the chance.
I've made some improvements. According to the wiki, changes should be sent to the list in the form of a patch, so here it is.
The changes are:
* fixed the input for the "Generate Password" command * certain keywords are now identified as such * attribute names are now scoped as "variable" instead of "keyword" (unless they happen to actually be keywords)