[TxMt] Extra indentation in Markdown mode
Charilaos Skiadas
cskiadas at uchicago.edu
Wed Mar 1 04:26:19 UTC 2006
On Feb 28, 2006, at 9:22 PM, Dr. Drang wrote:
>
> Each line is indented by four spaces (the pipe characters are meant to
> represent the left margin), which Markdown will wrap in <pre> and
> <code> tags. I have TM (version 1.5 [906]) set to use soft tabs of 2
> characters each.
>
> I found that hitting the Return key after each of these lines (other
> than the blank one) would put the cursor on the next line with an
> indentation of 6 spaces instead of 4. This may be a red herring, but
> the extra indentation seemed to occur only after lines that had an
> angle-bracked pair, like <xxx>, in them. So in this excerpt
>
> | #include<iostream>
> | #include<vector>
> | #include "d_random.h"
> | using namespace std;
>
> the extra indentation occurred after the first two lines, but not
> after the second two.
>
> Can anyone tell me why this is happening and what I can do to fix it?
>
I can explain what is happening and suggest some ideas on how to fix
it. The scope for the entire markdown bundle is text.html.markdown
This means that it inherits stuff from the html bundle, in general a
good thing. In this case, it inherits the indentPattern behavior,
that you would see for instance if you type <html> and press enter.
This is dictated in the Miscellaneous preferences file in the HTML
bundle, by the following code:
increaseIndentPattern = '(?x)
(<(?!area|base|br|col|frame|hr|html|img|input|link|meta|param|[^>]*/>)
([A-Za-z0-9]+)\b[^>]*>(?!.*</\2>)
|<!--(?!.*-->)
|\{[^}"'']*$
)';
I think what you have to do is create such a file in the Markdown
bundle, with an appropriate increase indent pattern and scope
text.html.markdown, and hope that this will override the pattern from
html. The problem with that of course is that then the html indenting
will not work in markdown.
I don't think that there is a simple answer here, in that we do want
such indenting in markdown in general, and in fact in code blocks
too, since the code blocks might often be html. It just happens to
have this weird behavior if your code happens to have what looks like
the opening of an html tag.
> --
> Dr. Drang
Haris
More information about the textmate
mailing list