Як редактор коду може ефективно натякати на рівень введення коду - без використання відступів? [зачинено]


233

Я написав текстовий редактор XML, який пропонує 2 варіанти перегляду одного й того ж XML-тексту, один з відступом (практично), а другий з обґрунтуванням зліва. Мотивація виправданого перегляду ліворуч полягає в тому, щоб допомогти користувачам "бачити" символи пробілів, які вони використовують для відступу простого тексту або коду XPath без втручання з відступу, що є автоматизованим побічним ефектом контексту XML.

Я хочу надати візуальні підказки (у редакції, що не може редагуватися) для виправданого ліворуч режиму, який допоможе користувачеві, але не надто докладно.

Я намагався просто використовувати з'єднувальні лінії, але це здавалося занадто зайнятим. Найкраще, що я придумав дотепер, показано на макетному екрані редактора нижче, але я шукаю кращі / простіші альтернативи (для яких не потрібно занадто багато коду).

індикатор рівня гніздування редактора коду

[Редагувати]

Беручи ідею теплової карти (від: @jimp), я отримую цю та три альтернативи - з позначкою a, b і c:

Початкові ідеї

Наступний розділ описує прийняту відповідь як пропозицію, об'єднуючи ідеї з ряду інших відповідей та коментарів. Оскільки це питання тепер є вікі спільноти, будь ласка, оновіть це.


NestView

Назва цієї ідеї, яка забезпечує візуальний метод покращення читабельності вкладеного коду без використання відступів.

Контурні лінії

Назва для різних затінених ліній у NestView

введіть тут опис зображення

Зображення вище показує NestView, який використовується для візуалізації фрагмента XML. Хоча XML використовується для цієї ілюстрації, будь-який інший синтаксис коду, який використовує вкладення, міг би бути використаний для цієї ілюстрації.

Огляд:

  1. Лінії контуру заштриховані (як у тепловій карті) для передачі рівня гніздування

  2. Лінії контуру під кутом показують, коли рівень гніздування відкривається чи закривається.

  3. Лінія контуру пов'язує початок рівня гніздування з відповідним кінцем.

  4. Об'єднана ширина контурних ліній, крім теплової карти, візуально вражає рівень гніздування.

  5. Ширина NestView може бути змінена вручну, але не повинна змінюватися в міру зміни коду. Контурні лінії можна або стиснути, або обрізати, щоб не досягти цього.

  6. Порожні рядки іноді використовуються кодом, щоб розбити текст на більш зручні шматки. Такі лінії можуть викликати особливу поведінку в NestView. Наприклад, теплова карта може бути скинута або використана лінія контуру кольору фону або те і інше.

  7. Можна виділити одну або кілька контурних ліній, пов'язаних з обраним на даний момент кодом. Лінія контуру, пов'язана з вибраним рівнем коду, буде особливо підкреслена, але інші контурні лінії також можуть «засвітитися» на додаток, щоб допомогти виділити містити вкладену групу

  8. Різні форми поведінки (такі як складання коду або вибір коду) можуть бути пов’язані з клацанням / подвійним клацанням по лінії контуру.

  9. У різних частинах контурної лінії (передній, середній або кінцевий край) можуть бути пов'язані різні динамічні форми поведінки.

  10. Підказки можуть бути показані на заході миші на лінії контуру

  11. По мірі редагування коду NestView постійно оновлюється. Там, де гніздування не є добре збалансованим, можна припустити, де рівень гніздування повинен закінчуватися, але пов'язані тимчасові контурні лінії повинні бути певним чином виділені як попередження.

  12. Можливість підтримувати перетягування поведінки контурних ліній. Поведінка може змінюватись залежно від частини перетягнутої лінії контуру.

  13. Особливості, які зазвичай зустрічаються у лівому полі, такі як нумерація рядків та виділення кольорів для помилок та стану зміни, можуть накладати NestView.

Додаткова функціональність

Пропозиція стосується цілого ряду додаткових питань - багато хто виходить за рамки початкового питання, але є корисним побічним ефектом.

Візуально пов'язуючи початок і кінець вкладеної області

Лінії контуру з'єднують початок і кінець кожного вкладеного рівня

Виділення контексту поточно вибраного рядка

Після вибору коду може бути виділено пов'язаний рівень гніздування в NestView

Розмежування між кодовими регіонами на одному рівні гніздування

У випадку XML різні відтінки можуть використовуватися для різних просторів імен. Мови програмування (наприклад, c #) підтримують названі регіони, які можуть бути використані аналогічно.

Розділення ділянок в межах гніздування на різні візуальні блоки

Додаткові рядки часто вставляються в код, щоб сприяти читанню. Такі порожні лінії можна використовувати для скидання рівня насичення контурних ліній NestView.

Перегляд колон з декількома стовпцями

Код без відступів робить використання перегляду в декількох стовпцях більш ефективним, оскільки обробка слів або горизонтальна прокрутка менш ймовірні. У цьому перегляді, як тільки код досягне нижньої частини одного стовпця, він переходить у наступний:

введіть тут опис зображення

Використання понад просто надання наочної допомоги

Як запропоновано в огляді, NestView може забезпечити діапазон функцій редагування та вибору, які б широко відповідали тому, що очікується від елемента управління TreeView. Ключова відмінність полягає в тому, що типовий вузол TreeView має 2 частини: розширювач та значок вузла. Лінія контуру NestView може містити до 3 частин: відкривач (похилий), з'єднувач (вертикальний) і закриваючий (похилий).


Про відступ

NestView, представлений поряд з невідступними кодовими доповненнями, але навряд чи замінить звичайний вид з відступом коду.

Цілком імовірно, що будь-які рішення, що застосовують NestView, дадуть спосіб безперешкодного перемикання між відступними та невідступними видами коду, не впливаючи на будь-який текст тексту коду, включаючи символи пробілу. Однією з методик для вибору з відступом буде «Віртуальне форматування» - де динамічне ліве поле використовується замість символів вкладки або пробілу. Ті ж дані рівня гніздування, які використовуються для динамічного візуалізації NestView, також можуть використовуватися для більш звичайного вигляду з відступом.

Друк

Відступ буде важливим для читабельності друкованого коду. Тут відсутність символів табуляції та пробілів та динамічного лівого поля означає, що текст може загортатись у правій межі та зберігати цілісність відведеного подання. Номери рядків можуть бути використані як візуальні маркери, які вказують, де кодується слово, а також точне положення відступу:

введіть тут опис зображення

Екранна нерухомість: Плоскі проти відступів

Вирішуючи питання про те, чи NestView використовує цінні екранні нерухомості:

Лінії контуру добре працюють із шириною, такою ж, як і ширина символу редактора коду. Таким чином, ширина NestView шириною 12 символів може вмістити 12 рівнів вкладення, перш ніж контурні лінії будуть усічені / стиснуті.

Якщо в розрізаному представленні використовується 3 ширини символів для кожного рівня гніздування, то простір зберігається, поки гніздування не досягне 4 рівнів вкладення, після цього рівня гніздування плоский вид має перевагу в економії місця, яка збільшується з кожним рівнем введення.

Примітка: Для коду часто рекомендується мінімальний відступ у ширину 4 символів, однак XML часто керується меншим розміром. Також віртуальне форматування дозволяє використовувати менше відступів, оскільки немає ризику вирівнювання

Порівняння двох поглядів показано нижче:

введіть тут опис зображення

Виходячи з вищесказаного, можливо, справедливо зробити висновок, що вибір стилю перегляду буде ґрунтуватися на факторах, відмінних від екрану нерухомості. Єдиним винятком є ​​те, що екран на екрані розширюється, наприклад, на Netbook / Tablet або коли відкрито кілька вікон коду. У цих випадках зміна розміру NestView, здавалося б, є явним переможцем.

Використовуйте випадки

Приклади реальних прикладів, коли NestView може бути корисним варіантом:

  1. Там, де екранна нерухомість перевага

    а. На таких пристроях, як планшети, блокноти та смартфони

    б. Під час показу коду на веб-сайтах

    c. Коли на робочому столі одночасно потрібно бачити кілька вікон коду

  2. Якщо послідовне відступ тексту в коді є пріоритетним

  3. Для огляду глибоко вкладеного коду. Наприклад, коли підмови (наприклад, Linq в C # або XPath в XSLT) можуть спричинити високий рівень вкладеності.

Доступність

Необхідно забезпечити параметри зміни розміру та кольору, щоб допомогти особам із порушеннями зору, а також відповідати умовам навколишнього середовища та особистим уподобанням:

введіть тут опис зображення

Порівнюваність відредагованого коду з іншими системами

Рішення, що включає в себе параметр NestView, в ідеалі має бути здатним знімати провідні символи вкладок і пробілів (ідентифіковані як лише ті, що виконують роль форматування) з імпортованого коду. Потім, після вилучення, код може бути викладений акуратно як у виправданому, так і у відрізках зліва, без змін. Для багатьох користувачів, які покладаються на такі системи, як інструменти злиття та розходження, які не знають пробілів, це буде серйозною проблемою (якщо не повною зупинкою шоу).


Інші роботи:

Візуалізація розмітки, що перекривається

Опубліковане дослідження Венделла П'єза , датоване 2004 року, стосується питання візуалізації розмітки, що перекривається, зокрема LMNL . Сюди входить SVG-графіка зі значною схожістю з пропозицією NestView, як така, вони тут визнані.

Візуальні відмінності чіткі на зображеннях (нижче), ключове функціональне відмінність полягає в тому, що NestView призначений лише для добре вкладеного XML або коду, тоді як графіка Венделла П'єза призначена для відображення перекритих вкладень.

введіть тут опис зображення

Наведена вище графіка - з доброго дозволу - від http://www.piez.org

Джерела:

  1. Назустріч герменутичній розмітці
  2. На півкроку до LMNL

6
Я не маю для вас реальної відповіді, лише думка. Переглядаючи ваші приклади, B - мій кращий вибір. Для мене це виділяється тим, що "теплова карта" насправді слідує відступу, а не відображає її, як перший приклад, і C. А також слідує за власним відступом, але B більше схожий на те, що ви побачили, коли фактичний xml був би з відступом. Другий приклад просто занадто "твердий" для мого вподобання.
Мар'ян Венема

4
Я б віддав перевагу відступному коду сам. Не знаєте, яка б користь від цього? Невже я пропускаю щось очевидне? (Дійсно, не збираюся, щоб це звучало негативно.)
Кріс

9
Я не бачу, як зайняти величезний запас на 100% рядків краще, ніж зайняти лише стільки запасів, скільки потрібно кожному рядку.
Джон Гітцен

1
@John Gietzen. Метою є не збереження екранного нерухомості (хоча це може бути наслідком у багатьох випадках). Це дозволяє дозволити більш чіткий контроль символів пробілу, коли це важливо - відступ з поданим відступом все ще буде наданий (але віртуальний, не використовуючи символи прокладки).
pgfearo

3
Я голосую, щоб закрити це питання поза темою, оскільки це питання про UX, але занадто стара для міграції.
храповик виродка

Відповіді:


104

Я намагався відповісти на власне запитання тут, але це включає ідею теплової карти від @jimp, а також ідею "зробити це більш XML-ish" від @Andrea:

введіть тут опис зображення

Сподіваємось, кольори на тепловій карті разом з кутовими лініями допомагають намалювати око між початковою та кінцевою мітками; видалення розділювачів горизонтальної лінії покращує «потік» від початку до кінця. Оскільки користувач вибирає за допомогою елемента, відповідна частина теплової карти може бути виділена певним чином - можливо, із світиться рамкою (як показано).

Редагувати Вирішили піти з цим, мабуть, повинні бути користувацькі варіанти кольорів. Скріншот "готового до виробництва":

введіть тут опис зображення

І для порівняння ... альтернативний вид з відступом:

введіть тут опис зображення

Редагувати зараз для більш сильно вкладеного випадку - тестування моїх навичок малювання ...

введіть тут опис зображення


1
Це чудово виглядає! Хороша робота. Але як це буде виглядати, коли буде більше відступів?
Loïc Lopes

1
@Louhike Дякую! Так, його розміщено на 4 рівнях, і я не хочу більше розтягувати ліву межу - тому я буду стискати ширину вертикальних смуг все більше на більш високих рівнях гніздування - трохи схоже на контурну карту.
pgfearo

2
@Louhike. Я додав додаткове зображення, щоб показати, як все може виглядати з 9 рівнями вкладення - після приблизно 15 рівнів, можливо, буде потрібно злити середні смуги, можливо, використовуючи градієнтну заливку.
pgfearo

10
Це просто дивовижно. +1 для переведення редагування коду та інтерфейсу користувача на наступний рівень. Хтось із обліковим записом повинен опублікувати це в Hacker News /.або r / програмуванні.
Конрад Рудольф

2
Цікаво, як це буде виглядати, коли бічна панель перевернута горизонтально ... imgur.com/u5mNi
chanux

24

Можливо, спробувати додати 3D-текст до тексту. Збільшення / зменшення розміру шрифту залежно від рівня, на якому він знаходиться.

Наприклад, цей код:

введіть тут опис зображення

Виглядав би так:

введіть тут опис зображення

Це може бути прикро для роботи, оскільки воно втрачає фіксовану вирівнювання розміру тексту на різних рівнях. Інша ідея; змінити насиченість кожного рівня:

введіть тут опис зображення

Наскільки добре це тримається за щось дійсно глибоке? Не впевнений...

Мені дуже подобається ваша ідея візуалізації жолоба; легко згрупувати речі разом. Можливо, у поєднанні з однією з цих ідей вона буде виглядати ще краще, або набагато дурніше. ;)


Трохи назад я зробив теплову карту, що показує масштаби в C. Можливо, буде цікаво шукати мозковий штурм:

введіть тут опис зображення

Вирівняно зліва:

введіть тут опис зображення


2
Спокусити щось зробити з текстом, але це важко зробити, не відволікаючи розробника під час їх набору або просто після цього. Зміни, що впливають на висоту шрифту, спричиняють проблеми - можливо, ми терпимо бачити, як наш код піднімається вгору і вниз навіть менше, ніж на бік. Мені подобається ваша ідея заштрихування коду, але це повинно бути тонким, оскільки я хочу намагатися, щоб речі виглядали безладно.
pgfearo

2
але це було б чудово для навчальних середовищ!
jcolebrand

Пропозиція щодо розміру шрифту дивно переконлива - хоча я бачу його недоліки. Чому б не зробити шрифт меншим, оскільки обсяг більш глибоко вкладений - це допоможе відмовити глибокому вкладенню (хоча це спричинить проблеми, коли глибоке вкладення насправді є розумним рішенням)
Петро

2
теплова карта насправді набагато краща у візуалізації масштабу, ніж візуалізація ліволінійної області (рішення @ pfgearo)
Sandeep,

@Sandeep Я погоджуюся, що це в багатьох випадках краще рішення - особливо при перегляді коду, а не редагуванні. Технічні обмеження (як сподіваюся, пояснено у запитанні) ускладнюють мені змінити колір тла за допомогою поточного керування, яке я використовую. Ефективно, я використовував у цій відповіді ліву частину теплової карти - але з нахилами до краю відредагованої області, щоб допомогти залучити око. Одне питання з кольоровим текстовим фоном полягає в тому, що читабельність / контрастність втрачається на більш високій рівні гніздування.
pgfearo

21

Просто налаштуйте свою оригінальну ідею та перейдіть від квадратів до капсул. Я думаю, що ці версії (включаючи оригінальну) читати простіше, оскільки вони менш складні, ніж ті, що показують вкладення через введення елементів відображення. Я думаю, що елементи дерева передають інформацію простіше, інтуїтивніше.

капсули

Я думаю, що лівий чудово підходить для прямого відображення відступів, тоді як правий краще передає вкладені стосунки.


2
Я вважаю за краще м'якість ваших капсул, проте вони здаються занадто відірваними від тексту, мені потрібно щось більш згуртоване і дає чіткіше уявлення про те, що містять деталі.
pgfearo

9

Моя ідея:

Гніздування більше схоже на гніздування. Горизонтальна ширина кожного шару не повинна бути такою широкою.


Я думаю, те, що ви пропонуєте, по суті те саме, що відповідь (натхненна іншими), яку я дав, але без похилих ліній. Я думаю, що похилі лінії допомагають краще намалювати око між відкритим і закритим. Ширина не є справжньою проблемою, оскільки (як показано на 9-рівневому зображенні) ширина вертикальної лінії не залежить від похилої ширини лінії, тому вертикальні лінії можна стискати.
pgfearo

Так, pg- я помітив це після публікації. Вони топографічно однакові - щоб пофантазувати про це. Я думаю, це питання смаку, але моя версія просто кричить "вкладати" мене так, як ваша версія. Можливо, ця функція могла б займатися спортом і дозволяти користувачеві вибирати.
broc7

8

Мені подобається ідея. Моя пропозиція не запускати "зайнятий" - використовувати градієнти замість квадратів. Це було б скорочено по лініях. Можливо, різні кольори для крайнього відступу.

Я б сказав, що все, що у вас є, - це чудово, хоч і трохи блокує мої смаки.

Мої коментарі: Я постійно боровся з тим, як Visual Studio IDE робить відступи. Я хотів би використовувати щось подібне або варіацію.

Тож уявіть це посилання без рядків та вкажіть свій поточний xml / код.


Так, ідеї все ще розвиваються. Образи у відповіді, яку я подав (а не моє запитання), є менш блокуючими, оскільки вони мають провідні / зворотні нахили, я розглядаю можливість використання градієнтів (але дещо інакше) також, щоб трохи зменшити тон. Я з вами за різними кольорами, для високого відступу, але також для висвітлення таких речей, як коментарі чи помилки. А потім є динамічне підсвічування, для показу поточного контексту / налагодження ... складність полягатиме в суді, коли зупинитись.
pgfearo

5

Оскільки ви сказали, що візуалізація повинна існувати в не редагованому (лівому?) Полі, я вважаю, що це означає, що візуалізація не може бути перемежована або поза кодом.

Можливо, теплова карта в лівій колонці з яскравішими кольорами, що вказують на глибший відступ? Зробіть поле фіксованого розміру з такою візуалізацією, як у вас (очікуйте, що йде ліворуч направо, як відступ), який динамічно використовує весь простір, заданий відповідно до максимального відступу, визначеного глибиною DOM.

Якби ви хотіли покластись на регіон редактора, я б запропонував щось дуже схоже, але як тло документа. Затінене місце було б там, де було б пробіл , якби ввімкнено відступ. У цьому випадку я б використав суцільний світлий колір, який контрастує з виділенням тексту.


@jimp Так, візуалізація не може бути з кодом або позаду - наскільки я б хотів спробувати це, мої навички / платформа кодування зробить це занадто складним. Кольори фону в самому редакторі знову важкі, але це дає мені думку про те, що я можу спробувати різні кольори переднього плану. Я спробую панель зліва направо та нагріти карту також, як ви пропонуєте.
pgfearo

+1 для ідеї теплової карти (Y) .. і я можу запропонувати рівень гніздування бути в кольорі для людей з особливими візуальними потребами (наприклад, дальтонізм).
M.Sameer

@jimp. Оновлено моє запитання, щоб проілюструвати вашу ідею теплової карти, яка мені подобається, але я думаю, що я неправильно
зрозумів

@pgfearo Я радий, що мої ідеї були корисними! Виходячи з того, що я бачу, що ви зробили, я думаю, що мені більше подобається право-ліво L&F. Вибачте, що раніше не отримав шансу перевірити (зайняті вихідні). Оскільки ви досягли такого прогресу, я просто прокоментую відповідь, яку ви опублікували вище.
jimp

@pgfearo На жаль, мені не вистачає репутації, щоб коментувати вашу відповідь! Я опублікую кілька думок щодо вашої відповіді, як тільки я отримаю цю привілей, сподіваюся, незабаром!
jimp

3

jGRASP робить це, використовуючи візуальний маркер у полі:

введіть тут опис зображення

Він навіть розпізнає, коли ви використовуєте цикл і використовує інший тип рядка для представлення цього внутрішнього циклу.

Просто думав, що я зазначу, як це робить існуючий редактор.


5
На мою думку, занадто шумно, але все-таки гарна ідея.
Конрад Рудольф

Я переглянув це, і сайт документаментатін передбачає, що скріншот зроблений із програми перегляду коду, його діаграми, а не редактора коду. Крім того, при цьому немає символів для прокладки, але все ще є відступ. Я шукаю простих рішень, які не потребують відступу коду з причин, наведених у питанні. Однак, JGrasp виглядає як чудовий інструмент для покращення зрозумілості коду.
pgfearo

JGrasp повинен бути редактором коду в моїй школі. Ми використовували його в нашому вступі до класу інформатики, це був рекомендований редактор коду. У ньому є інструменти, які допомагають компілювати та запускати вашу програму, але це не так фантазії, як Eclipse або Netbeans. Але це злегка від того, що ви описали як його не зовсім загальне призначення, і лише насправді знає синтаксис Java.
попіл

3

Непогана ідея, але необхідність посилання на лівий край, щоб чітко побачити мої блоки, може стати трохи роздратованим. Це навіть не думати про екранну нерухомість або про те, що може почати виглядати, якщо структура стане дуже глибокою.

Оскільки мотивація полягає у тому, щоб допомогти користувачам «побачити» символи пробілів, які вони використовують для відступу, ви можете просто показати їм символи пробілу.

Я не говорю про спеціальні візуальні символи, як маркери абзацу, просто підкреслюють. Пробіли жовтим, вкладки зеленим кольором (чи будь-що інше)

Для питання щодо поля / гніздування ви можете просто перемістити поле для кожного блоку дюйма. Ніщо не говорить про те, що поле має бути прямою лінією.

Я впевнений, що це не нова ідея.

Щось на зразок цього:

зразок xml, що показує рухомий лівий край та виділене пробіл


З оглядовим відрізком планується динамічно освітлювати пробіл, подібний до вашої ідеї. Крім того, пам’ятайте, що в плоскому вигляді 30 рівнів гніздування займає той самий простір, що і 1 рівень, з відступом, воно буде від краю екрану, це одна з причин, чому розробникам надається вибір переглядів.
pgfearo

1
Так, тому я сказав, що це не нова ідея. Однак якщо рівень відступу є логарифмічним чи динамічним на основі рівня, який я зараз редагую, у вас не виникне проблеми, про яку ви говорите. Навіть якби це було просто зафіксовано на 1 пробіл, це не було б поза екраном. Ви не переходили б навіть на півдорозі навіть у вікні старого 80 символу. Так, для деяких із цих ідей 30 рівнів займають стільки ж місця, як і для 1 рівня, але коли ви дивитесь на деякі з них, не витрачайте місця на просто відступ, вони просто відступають все і додають фантазії.
Джастін Омс

Ом. Зараз у розділі питання про нерухомість на екрані у запитанні (це вікі спільноти та все), це включає порівняння екрана. Якби ви могли оновити цей розділ своїми власними спостереженнями, це було б чудово. Прийміть, будь ласка, що я мега-фанат розрізаних поглядів (працюю у світі XML і всі інші), тому я останні 6 місяців і більше вдосконалював техніку віртуального форматування, коли відступом керує система. Якщо є щось, що я дізнався, проте розробникам подобається вибір - отже, плоский вигляд.
pgfearo

Під час першого читання я пропустив ваші ідеї щодо динамічної ширини відступу - це може бути потужною особливістю. Це створює можливість навіть мати якийсь код з відступом, а решта - рівним, не впевнений, як це буде працювати на практиці, але його легко перевірити - з мого проекту, логіка відступу все ще використовується навіть для плоского виду, його просто мультиплікатор встановлюється 0. Значить, саме цей множник потребує коригування. Гарний дзвінок.
pgfearo

2

Чому б не відкривати і закривати дужки?

  1. Відступ означає стримування: (і) означає саме це для програмістів.
  2. (і) є кожним символом: ліва смужка залишиться дуже тонкою.
  3. Порожні елементи легко помітити: використовувати () в одному рядку.
  4. Вміст елемента не потребує візуальної підказки: бланк набагато краще.
  5. Позиція курсору праворуч може відповідати блоку, що містить ліворуч: динамічно додавати колір до символів у стовпці за допомогою (і)
  6. Ви можете зробити його більш XML-і, використовуючи <і>, які краще виглядають здалеку.

Деякі корисні ідеї - спробуйте включити їх, особливо біт XML-ish. Крім того, є зовсім небагато, що продовжується динамічно, і я, мабуть, можу додати ще трохи - без того, щоб надто переборщити.
pgfearo

2

Vim вже може зробити щось подібне, хоча і не настільки гарне.

У Vim існують різні способи "складання коду". Одне з них засноване на правилах складання синтаксису. Коли це зроблено, код можна скласти за допомогою вкладеної структури контуру, а "FoldColumn" можна використовувати для надання графічного (фактично "на основі символів" з "|" та "-" символами) подання "foldlevel" .

Стовпчик може давати уявлення про вкладення незалежно від методу fold, але метод, заснований на синтаксисі, є тим, який, ймовірно, буде відповідним тому, що ви хочете. Я не впевнений, чи є десь заздалегідь зроблені правила складання на основі синтаксису для xml, я б припустив, що можуть бути.


Редактор, який я розробляю, повинен бути інтегрований у набагато більшу систему з графічним інтерфейсом, де Vim або будь-який сторонній інструмент не розглядається з технічних та ліцензійних причин. Тим не менш, мене цікавить, як Вім вирішуватиме це так, щоб розслідувати - сподіваюся, у них є скріншоти в документації. Так, графіка на основі символів може працювати до певної міри - я знущався над одним з досліджень. Складання коду можна зробити з лівого поля, але також надається синхронізований вигляд дерева контуру.
pgfearo

@pgfearo: Ви можете подивитися протокол NetBeans від Vim. Він призначений для вбудовування Vim в IDE без жодних проблем з ліцензуванням.
greyfade

@greyfade - Я боюся, що існують проблеми з ліцензуванням, принаймні, з моїм поточним проектом, принаймні, тому що його закрите джерело і мені знадобиться спрощення (навіть якщо я не використовував його) для зміни джерела Vim без проблем GPL. Що вбік, протокол виглядає цікаво.
pgfearo

1

Я думаю, що ви на правильному шляху з варіантами B і C: включіть і ширину, і розмальовку теплової карти. На даний момент мені подобається варіант B більше, ніж C, тому що він менш нав'язливий (або широкий, і розбавлений, або вузький і інтенсивний, а не дуже важкий блок в середині С). відновити весь графік, якщо десь вставити рівень. Я думаю, ви могли б зробити блоки набагато меншими, 1 або 2 пікселів, ймовірно, буде достатньо. Це не повинно бути великим, його потрібно лише розрізнити. Особливо, коли від людей, які очікують багато разів використовувати редактор, ненав’язливіші, тонкіші ефекти легше працювати, оскільки вони не так відволікають.

Одне, що є важливим при використанні редактора сортування, хоча виділяє поточну область застосування: вибираючи рядок у редакторі, потрібно точно бачити, які елементи він містить, і де він зупиняється. Ви навіть можете виділити дерево вгору (які елементи це дитина). Я думаю, що це окреме питання, яке потребує вирішення та продумування та матиме більший вплив на те, як користувачі оцінюватимуть свій досвід роботи з редактором.


Зараз я подав відповідь, яку, на мою думку, перекреслив з вашою, але збіг випадково пов'язаний у вашій ідеї підкреслити поточний обсяг (із світиться межею). Я погоджуюсь, що блоки повинні бути менш нав'язливими, ефекти тут перебільшені, щоб допомогти з моїм малюнком, а також вони роблять нормальним на зменшеному скріншоті.
pgfearo

1

Я не бачив однієї речі, що ви можете зробити з відтінком поверх ефекту насичення, на який, здається, ви влаштувались. Моя пропозиція - змінити колір гнізда, в якому лежить вказівник. Це полегшило б користувачеві розрізнити, які лінії є частиною гнізда, а не побратими до нього по дорозі.

Реалізуючи матеріали на основі відтінку, будь ласка, пам’ятайте про дальтонізм та вибирайте кольори, які можна виділити універсально, або пропонуйте людям кілька варіантів.


Я думаю, що це підкреслює, що ще можна багато зробити, щоб додати деталі до впровадження цієї моделі. Так, мені зручніше використовувати тони, щоб уникнути проблем із інформацією про кольори, але за умови наявності варіантів, я погоджуюся, що це допоможе додати додатковий вимір. Оскільки це питання зараз є вікі спільноти, я спробую надіслати каркасний кадр, щоб побачити, чи хочуть інші додати зображення, які є різними за темою - налаштування, ймовірно, залежать від різних класів використання, синтаксису мови та динамічного контексту.
pgfearo

0

Одним з варіантів, який можна було б використовувати разом з іншими пропозиціями, було б використовувати підказку зліва на полі, яка показує шлях до лінії за допомогою позначення XPath. Інструменти "перевіряти елемент" браузера (наприклад, Firebug, вбудований у Chrome) часто роблять щось подібне, але в рядку стану.


Я просто зосередився на цьому елементі управління, але "Місце розташування XPath" з навігатором "breadcrumb" дійсно працює і входить до редактора, як і синхронізований вигляд дерева елементів.
pgfearo

0

Можливо, у вас може бути збір подання для теплової карти (з оригінальної публікації), що містить лише один стовпчик кольорів та цифри глибини. Це дозволить їм знати, наскільки вони глибокі, і надати їм більше нерухомості екрана для xml. Мені це здається виграшним виграшем.

Мене хвилює, чи буде достатньо різниці кольорів, щоб глибоко гніздити речі.


Підтримка високих рівнів гніздування є пріоритетним завданням. Але, лише так багато очей має бачити (і може приймати) у будь-який час, тому поза певним рівнем я розглядаю можливість поєднання кольорів разом, щоб просто створити враження глибини та лише виділені ключові рівні. Тож я перевірю вашу ідею, коли рівень гніздування високий.
pgfearo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.