Visual Studio/D spaces
Johnson Jones via Digitalmars-d-ide
digitalmars-d-ide at puremagic.com
Thu Aug 10 14:29:29 PDT 2017
Hi Rainer,
this is more of a visual studio question but I figured you might
know the answer.
I tend to get quite annoyed by spacing when editing a D program.
When I have to combine two lines I generally have delete a lot of
white space in between to combine them. I'd rather all white
space be removed.
e.g.,
writeln(x);
writeln(y);
and I want to turn it in to
writeln(x, y);
I do this, usually, by hitting delete at the end of the first
line, in which case VS will remove the \n and bring the second
line to the first, but with all the spacing(indentation makes it
worse).
I'd like it to look like
writeln(x);writeln(y);
after the first delete(or so).
Also, when hitting enter to split something(say the above),
visual studio adds spaces rather than tabs and that causes
problems due to mixtures. I despise spaces. Tabs are the way to
go for me, but when mixed, it causes problems because I always
use tabs to indent... and this causes alignment errors with mixed
tab/spaces of other lines.
I have very simple rules for how I lay out things.
1. Any space, tab or mixed, is treated as one token for delete or
backspace.
2. All spaces are converted to tabs when more than one space
separates two non-spaces. (I never use __, for example, where _
is a space.). The formula for space to tab conversion is
floor((tabSize*numtabs + numspaces)/tabSize) + I where I is a
space if the floor value is 0 and would put two non-spaces net to
each other.
3. Enter will always align with previous indentation level,
clamped to a tab. Backspace does the same if the previous line
was empty.
These basically treat space as simple visual alignments and tries
to keep everything consistent. There may be a few corner cases I
forgot to list but the idea is pretty simple. It is to minimize
key strokes dealing with alignment/space and single spaces are
only ever used as token separators(and no more than one).
I implemented these rules before in a vsix but it's been several
years and it was for C# and was somewhat of a hack(had to work on
the edit buffer directly).
Do you know if visual D encode these rules directly? Or does the
visual studio settings accomplish this if set right(I've never
been able to get it to work right)?
Thanks.
More information about the Digitalmars-d-ide
mailing list