I really like the concept and see massive potential but it needs some usability improvements. The core idea of the extension is text visualization, not a text editing, and to get rid of hard coded text alignment which is counter-productive. It should be some automatic intelligence for displaying text which does not modify the stored byte representation and does not mess with the version control system.
I am not expecting this to be implemented in near future but for anyone interested in futuristic features, I write this list:
context/language awareness, at least an optional black- or whitelist of languages or a filename pattern
cursor movement/selection based on screen coordinates and not (column, row) so that it freely moves through stretched spaces
not even clear if vscode is able to do that at the moment, given that this is quite elaborate to provide and untypical for text editors
the width of characters may be split appropriately by typing a new character at a position in between the stretched area
automatically adapt alignment of the currently connected group of lines when typing
consecutive lines grouped by indentation level and separated by lines without alignment. All lines within such a group are aligned to each other. Groups can be nested inside other groups and receive their own independent alignement but parent groups may continue after the child group.
slightly related, split off a subset of lines into a nested group, if those lines cause alignment of other lines which exceeds a configured maximum width
allow pattern specifications for where alignment is allowed and which characters may be stretched, ideally language-sensitive
stretched characters may be filled with spaces in copied text (and replaced by stretched characters when pasting it)
allow partner definitions of a symbol S which whitelists all symbols S' that S can be aligned to
There are technically two ways to implement character stretches (without thinking of current technology's constraints):
1) transient spaces. These only exist in RAM or other volatile memory but are discarded whenever text is saved to non-volatile memory). The reason being that there are two interface points: one which automatically inserts transient spaces when reading data, one which doesn't. The first is for visual applications, the 2nd one for background applications where visually related information is just noise. Transient spaces would be the clean solution. The only difficult part is for OS maintainers to have a clear algorithm for inserting transient spaces during read operations.
2) virtual coordinates. An overlay coordinate system in the text field for the cursor. These coordinates are purely based on visualization, not on actual character-based coordinates. I think, this is much harder to deal with for text editors because there are so many coordinate transformations involved all the time. It may create compatibility issues with other text fields/editors which implement the alignment differently or not at all.
I really like the concept and see massive potential but it needs some usability improvements. The core idea of the extension is text visualization, not a text editing, and to get rid of hard coded text alignment which is counter-productive. It should be some automatic intelligence for displaying text which does not modify the stored byte representation and does not mess with the version control system.
I am not expecting this to be implemented in near future but for anyone interested in futuristic features, I write this list:
There are technically two ways to implement character stretches (without thinking of current technology's constraints):
1) transient spaces. These only exist in RAM or other volatile memory but are discarded whenever text is saved to non-volatile memory). The reason being that there are two interface points: one which automatically inserts transient spaces when reading data, one which doesn't. The first is for visual applications, the 2nd one for background applications where visually related information is just noise. Transient spaces would be the clean solution. The only difficult part is for OS maintainers to have a clear algorithm for inserting transient spaces during read operations. 2) virtual coordinates. An overlay coordinate system in the text field for the cursor. These coordinates are purely based on visualization, not on actual character-based coordinates. I think, this is much harder to deal with for text editors because there are so many coordinate transformations involved all the time. It may create compatibility issues with other text fields/editors which implement the alignment differently or not at all.