Yeah I have little idea of how the syntax works - I just tried to make it look decent and I wasn't sure how important it would be to separate scopes out for such a little language. Thanks for your bundle - I added some stuff and made a bunch of changes to mine on the strength and maybe it's a little better now. I imagine it's still pretty off though - I'd welcome some input from someone that knows their languagey stuff.
I need to figure out how to scope functions() that have other functions inside them, my first regex was not good at all. And I wish I could get %" to be completed as Smart Typing Pairs, but it seems you can only have one character in them :(
Thanks for that. It's good to see that others use TextMate and remind.
The language grammar needs work I think. It is less than optimal to group everything into keyword.operator.remind and constant.language.remind. I put together a language grammar awhile back before the naming conventions matured. I haven't posted it, because it should be updated to conform to these. But one advantage, I think, is that it had a better "spread". I attach it in case you want to have a look at it.
Another minor thing that I also did that I find useful is to display monthly calendars with TM's browser using rem2html.
All the best, Mark
I am glad you found it useful. The growl command is experimental and doesn't work really. One thing I would like to add is a preview command that takes as its input a selected file. My .reminders file is just a bunch of includes so that I can categorize my calendars. It would be useful to preview just one of these by selecting it and running the command so that I could check, say, my teaching schedule.
I need to figure out how to scope functions() that have other functions inside them, my first regex was not good at all. And I wish I could get %" to be completed as Smart Typing Pairs, but it seems you can only have one character in them :(
Sounds useful. Wish I could help. My regex skills are, um, nascent. ;)
Best Mark
On 13/4/2006, at 5:49, Rupa Deadwyler wrote:
I need to figure out how to scope functions() that have other functions inside them, my first regex was not good at all. And I wish I could get %" to be completed as Smart Typing Pairs, but it seems you can only have one character in them :(
You sort of can. You need to add a rule to the language grammar, e.g.:
{ match = '%(\s)'; captures = { 1 = { name = "meta.incomplete-string-or-whatever"; }; }; },
Now when you enter % in the source, the scope of the caret should be the one shown above. So create a snippet which inserts whatever needs insertion ("$1"%) and give that snippet a key equivalent of " and scope of source.remind meta.incomplete-string-or-whatever.
Then if you type %" in a source.remind file, you should get %""% with the caret in the middle, and you can press tab to skip out of this string.
The rule is made so that this only works when the character following the % is a whitespace character (which includes newlines, so it also works when typing at the end of a line).