Como na maioria das coisas, tenho certeza de que esse conceito já foi tentado antes - não encontrei editores que usem o que denominei 'Formatação virtual'. O princípio é que existe uma margem esquerda flutuante que simula o efeito dos caracteres de espaço / tabulação preenchidos convencionalmente inseridos pelo desenvolvedor ou pelo próprio editor para formatar o código. O editor analisa continuamente o código (mesmo quando comentado) enquanto você digita e calcula o recuo necessário com base no contexto em que cada feed de linha é encontrado
Estou desenvolvendo essa idéia trabalhando especificamente com um editor XML, pois o XML tem alguns problemas peculiares com a formatação de caracteres e tende a ser muito aninhado, no entanto, acredito que muitos dos princípios ainda se aplicam ao código convencional.
Você já experimentou codificar com essa ferramenta ou tem uma idéia de se isso ajudaria ou dificultaria? Causaria problemas com os sistemas de controle de versão? (detecta e retira todos os caracteres de preenchimento existentes)
A menos que você tenha tentado, o comportamento de uma ferramenta desse tipo é difícil de descrever, parece convencional até que você comece a editar. Eu coloquei um vídeo screencast mostrando um protótipo em ação que demonstra a edição de XML, alterando sua hierarquia e fazendo operações de arrastar / soltar e copiar e colar e, em seguida, como a formatação é interrompida / corrigida quando caracteres inválidos são digitados.
Editar Todas as respostas / comentários até agora foram negativos - para tentar corrigir o equilíbrio, alguns benefícios da formatação virtual para pensar:
- Não há mais debates sobre os padrões de formatação, basta colocar feeds de linha onde estiverem de acordo com a convenção escolhida / obrigatória
- Onde o espaço é escasso (em um livro / blog / documentação), você pode quebrar o texto, mas ainda assim conseguir um recuo perfeito
- Cada bloco de código pode ter uma 'alça de mouse' imediatamente adjacente ao local de início, não pressionada na borda da tela - clique aqui para selecionar o bloco inteiro ou o bloco interno
- Arrastar, soltar e esquecer - torna-se viável pela primeira vez
- Sem tempo gasto reformatando o código de outras pessoas
- Nenhum código formatado incorretamente (no sentido de que não há nenhum - apenas a renderização)
- Usar Backspace em vez de Ctrl + Backspace mantém os dedos nas teclas-guia do teclado
- Renderização flexível - adapte a formatação renderizada ao seu ambiente, alguém tentou ler código em um telefone celular / tablet de tela pequena?
- Considere que existem aproximadamente 25% menos caracteres editáveis (em uma amostra XSLT), isso não traz benefícios de eficiência?
Editar - Conclusões até o momento
Os desenvolvedores estabeleceram ferramentas e métodos de trabalho que superam com eficiência a maioria das desvantagens inerentes ao uso de caracteres de preenchimento usados para indentação.
Existe uma preocupação de que a remoção de caracteres de formatação afete prejudicialmente algumas ferramentas de diferenciação.
Os desenvolvedores desejam a flexibilidade de 'ajustar' a formatação de forma que a renderização automatizada não possa lidar.
A remoção dos espaços / guias iniciais significa que é necessária uma ferramenta 'com reconhecimento de código' capaz de formatar código para revisar esse código com eficiência - um editor de texto sem formatação não mostraria formatação.
Aqueles que acham que pode haver alguns benefícios hipotéticos (para o recuo virtual), têm uma visão de que as desvantagens superam esses benefícios em potencial - conclusivamente .
Editar - Veredicto
A percepção dos obstáculos e dos poucos (se houver) benefícios é tal que seria imprudente para mim, como desenvolvedor único, perseguir esse conceito de edição sem espaço para linguagens gerais. Para XML / XSLT, no entanto (por causa de seu tratamento especial de espaço em branco), parece haver pelo menos alguma concordância em potencial.
Editar - produto enviado
Apesar do sentimento geralmente negativo encontrado aqui, fui em frente e enviei o editor. Fiz uma versão gratuita na esperança de que isso traga críticas na forma de questões mais concretas, com base na experiência real. Um tanto frustrante, até o momento não houve reclamações (na verdade, quase nenhum feedback considerando o volume de downloads). Gostaria de pensar que isso ocorreu porque os usuários se adaptaram tão bem à idéia que veem isso como um 'e daí?' tipo de recurso - mas não há como dizer ...