[txmt-dev] Re: Working with indentation rules
Stephen Bannasch
stephen.bannasch at deanbrook.org
Wed Sep 18 22:06:51 UTC 2013
very interesting thread -- inspired me to try making some changes to the JavaScript grammar.
Learning about ctrl-command-T and them command-4 to find out what snippet is run was interesting.
I'd like to have similar indentation behavior when entering return in a pair of square braces in JavaScript. I found a solution (listed below) -- but then I wanted a similar indentation behavior when pressing return after an open square brace followed by content as I get when I enter return after an open curly brace followed by content.
Using comand-ctrl-T and then command-4 and entering return when my cursor was after an opening curly brace produced empty results.
How do I find the code that produces the indentation after entering return when my cursor is after an opening curly brace produced empty results.
--- more details ---
When I am editing in JavaScript and have a document that contains content like this""
"destinations": [
{
"type": "timeSeries",
"componentIds": [
"angle-graph"
],
"properties": [
"currentAngle"
]
},
{
"type": "timeSeries",
"componentIds": [
"last-run-table"
],
"properties": [
"rodLength",
"ballMass",
"startingAngle",
"period"
]
}
]
If I put my cursor here (just after "{" char) and press return
"destinations": [
{
I get a return and approriate indentation:
"destinations": [
{
<=cursor-is-here
I often also find myself wanted to add another item to the array of items and would like to have a similar indentation rule applied when entering return at the end of this line:
"destinations": [
I started with something simpler -- enable an indentation to appear when entering return with the cursor in the middle of two square brackets.
So this:
[]
Changes to this after entering return
[
<=cursor-is-here
]
By adding this to the JavaScript Language Grammers:
{ comment = 'Allows the special return snippet to fire.';
match = '(\[)(\])';
captures = {
1 = { name = 'punctuation.section.array.begin.js'; };
2 = { name = 'punctuation.section.array.end.js'; };
};
},
So I tried to use the same technique to find out what textmate was doing when my cursor is at the beginning of a curly brace and I get an indentation when entering return -- when the opening brace is followed by more content before the ending brace.
Using comand-ctrl-T and then command-4 and entering return produced empty results.
More information about the textmate-dev
mailing list