Come molte altre cose, sono sicuro che questo concetto è già stato provato - non ho mai incontrato editor che usassero quello che ho definito 'Virtual Formatting'. Il principio è che c'è un margine sinistro fluttuante che simula l'effetto dei caratteri padding space / tab che sono convenzionalmente inseriti dallo sviluppatore o dall'editor stesso per formattare il codice. L'editor analizza continuamente il codice (anche se commentato) mentre digiti e calcola il rientro richiesto in base al contesto in cui viene rilevato ogni feed di riga
Sto sviluppando questa idea lavorando specificatamente con un editor XML in quanto XML ha alcuni problemi peculiari con la formattazione dei caratteri e tende ad essere strongmente annidato, tuttavia credo che molti dei principi siano ancora validi per il codice convenzionale.
Hai sperimentato la codifica con uno strumento del genere o hai una visione del fatto che potrebbe aiutare o ostacolare? Provocherebbe problemi con i sistemi di controllo della versione? (rileva e rimuove tutti i caratteri di riempimento esistenti)
A meno che tu non ci abbia provato, il comportamento di tale strumento è difficile da descrivere, sembra convenzionale fino a quando non inizi effettivamente a modificare. Ho creato un video di screencast che mostra un prototipo in azione che dimostra la modifica di XML, la modifica della sua gerarchia e il trascinamento / elimina e copia e incolla le operazioni, e quindi come la formattazione è rotta / fissa quando vengono digitati caratteri non validi.
Modifica Tutte le risposte / i commenti sono stati finora negativi - quindi per tentare di correggere l'equilibrio, alcuni benefici della formattazione virtuale su cui riflettere:
- Niente più discussioni sugli standard di formattazione, basta posizionare i line-feed dove è conforme alla tua convenzione scelta / mandata
- Laddove lo spazio è prezioso (in un libro / blog / documentazione) puoi eseguire il wrap ma ottenere comunque un rientro perfetto
- Ogni blocco di codice può avere un 'mouse-handle' immediatamente adiacente a dove inizia, non schiacciato nel bordo dello schermo - fai clic su questo per selezionare l'intero blocco o il blocco interno
- Trascina, rilascia e dimentica: diventa vitale per la prima volta
- Nessun tempo speso per riformattare il codice di altri popoli
- Nessun codice formattato in modo errato (nel senso che non ce n'è: solo il rendering)
- Usando Backspace invece di Ctrl + Backspace mantieni le dita sui tasti guida della tastiera
- Rendering flessibile - adatta la formattazione renderizzata al tuo ambiente, chiunque ha provato a leggere il codice su un telefono cellulare / tablet di dimensioni ridotte?
- Considera che ci sono circa il 25% di caratteri modificabili in meno (in un esempio XSLT), non ha vantaggi di efficienza?
Modifica - Conclusioni finora
-
Gli sviluppatori hanno stabilito strumenti e metodi di lavoro che risolvono in modo efficiente la maggior parte degli svantaggi inerenti all'uso dei caratteri di riempimento utilizzati per il rientro.
-
Si teme che la rimozione dei caratteri di formattazione influenzi negativamente alcuni strumenti di differenziazione.
-
Gli sviluppatori vogliono la flessibilità per la "messa a punto" della formattazione in modo tale che il rendering automatico non possa gestire.
-
La rimozione di spazi iniziali / schede significa che uno strumento "code-aware" in grado di formattare il codice è necessario per revisionare in modo efficiente tale codice - un editor di solo testo non mostrerebbe alcuna formattazione.
-
Chi ritiene che ci possano essere alcuni benefici ipotetici (a indentazione virtuale), ritiene che gli svantaggi superino quei potenziali benefici - in modo conclusivo .
Modifica - Verdetto
La percezione degli ostacoli e di pochi (se del caso) benefici è tale che non sarebbe saggio per me, in qualità di unico sviluppatore, perseguire questo concetto di editing senza spazio per le lingue generali. Per XML / XSLT, tuttavia (a causa del suo trattamento speciale degli spazi bianchi), sembra esserci almeno un accordo di potenziale.
Modifica - Prodotto fornito
Nonostante il sentimento generalmente negativo trovato qui, sono andato avanti e ho spedito l'editor. Ho realizzato una versione gratuita nella speranza che portasse le critiche sotto forma di questioni più concrete, basate sull'esperienza reale. Un po 'frustrante, fino ad ora non ci sono state lamentele (in realtà quasi nessun commento sul volume di download). Mi piacerebbe pensare che questo fosse dovuto al fatto che gli utenti si sono adattati all'idea così bene da vedere questo come un 'così cosa?' tipo di funzionalità - ma non c'è modo di dirlo ...