Отображение символов в синтаксическом дереве
Issue #229
closed
Originally reported on Google Code with ID 229
Текущая ситуация имеет две проблемы:
1) все символы берутся в квадратные скобки, что некрасиво и неудобно для пользователя
2) везде в тултипах charset на листьях, хотя бы там и был один символ - хотя один символ
не set!
Нужна новая система показа.
Мое мнение:
0) в узлах-прямоугольниках всегда пишутся символы, с которым он может совпасть - без
бекслешей и т.д.
1) выделить простые ассерты - особенно ^ и $ - другой фигурой, чем прямоугольник, можно
также цвет побледнее сделать; продолжаем логику вид узла показывает цвет фигуры; в
простых ассертах типа \b \A и т.д. бекслеши остаются - тут они часть написания, а не
эскейпинг;
2) вместо точки сделать надпись типа any character, голубую - как и space например;
саму точку голубым выделять малозаметно; но здесь форма - прямоугольник, она того же
типа, что и символы
3) в случае символьных классов нужна тоже обработка - снимать лишние бэкслеши, если
^ первая - превращать ее в надпись типа any character except ... и т.д. Надписи опять
же все голубым, символы - черным.
Какие еще моменты возникают, пишите, подумаем.
Reported by oasychev
on 2013-09-20 18:57:41
Comments (13)
-
-
Account Deleted 1) предлагаю либо поменять стиль узла, либо цвет текста в узле. Изменил формы узлов, пример во вложенном файле. Хотелось бы избежать изменения форм, согласен по этому поводу с Валерием. Против выделения цвета фоном, потому что: а) если выделить слабо, то на проекторе и при печати не будет видно; б) если выделить сильно, то будут проблемы как и с объясняющем графом, текст будет сливаться. 2) сделано, вытолкнул. Пишу задачи для себя: 4) выделение простых ассертов (предлагаю использовать стиль узла "dashed"); 5) выделение модификаторов (предлагаю использовать стиль узла "rounded"); 6) выделение узлов, которые появляются в дереве при выборе параметра exact matching (предлагаю использовать стиль узла "bold", что заставить пользователь обратить внимание на узлы). Список стилей можно посмотреть в самом низу здесь: http://www.graphviz.org/doc/info/attrs.html
Reported by
grvlter
on 2013-09-22 11:18:55 -
reporter Так будут по форме операторы, захватывающие операнды и незахватывающие операнды. Не так уж плохо... Или тогда цвет им бледный что-ли делать? Использовать dashed для простых ассертов можно ТОЛЬКО если выделение будет зеленым прямоугольником, иначе очень похоже на выделение. Я бы rounded использовал для обратных ссылок, чтобы было ближе к округлым очертаниям подвыражения (кстати, не вывести ли на дереве номер и имя подвыражения - а то для обратной ссылки есть, а для того, на что ссылается - нет...)? А для опций - хоть диагональный стиль. Фоном предлагаю выделить зону из добавленных exact matching узлов- серый фон считался признаком неактивности очень давно.
Reported by
oasychev
on 2013-09-22 12:49:55 -
Account Deleted Забыл вложить файл в последнее своё сообщение...
Reported by
grvlter
on 2013-09-22 16:56:07<hr> * Attachment: test.PNG<br>
-
reporter Во-первых, не понял надписи типа "начало объекта ассерта" - это что значит? Во-вторых, не нравится круг на (?i) - легко спутать с эллипсом оператора, надо что-нибудь более отличное от
Reported by
oasychev
on 2013-09-22 17:51:36 -
reporter Я бы сделал так. Убрал из дерева большую часть надписей, исключение - для any character (точка), а также space и других неотображаемых символов типа табуляции. Подробные надписи выносятся в тултипы, зато там они должны быть уже подробными - чего на (?i) написано modifier? Какой modifier, к чему? Первая строка тултипа может расшифровывать тип узла, последующие - его значение - так это делают чарсеты сейчас, насколько я понимаю. Все остальное показывал бы знаками - главным образом формой, иногда видом окантовки. По цвету и dashed я написал свое мнение в комментарии 3.
Reported by
oasychev
on 2013-09-22 19:18:35 -
Account Deleted 0) готово. \ сохранился только для \xnnn; 1, 4) сделал стиль узла "dashed"; 3) все требования учтены + если символ одиночный, то в tooltip будет написано "charcter "+имя символа; 5) для опций применён диагональный стиль;
Reported by
grvlter
on 2013-09-23 16:15:42 -
reporter Во-первых, надо разобраться с тултипами: они должны содержать всю подробную информацию об узле. Сейчас например для тех же модификаторов там ничего подробного. С другой стороны, громоздкие надписи типа узла - для ассертов, обратных ссылок и т.д. - надо вынести в тултипы. И писать понятным образом - start of subject assertion если кто и поймет, так ему дерево врядли нужно будет. Напишите типа "начало строки" и по английски тоже - граф по-моему лучше писал. Кроме того, надо бы уже учесть разницу между \A и ^ и т.д На узлах подмасок надо добавлять их номера и (если есть) - имена. А то на обратной ссылке номер стоит, а на подмаске - нет.
Reported by
oasychev
on 2013-09-23 20:30:41 -
Account Deleted Reported by
grvlter
on 2013-10-06 15:58:17 - Status changed:Fixed
-
reporter На \W дерево падает; простые ассерты типа \A \z \Z должны отображаться с бекслешем.
Reported by
oasychev
on 2013-10-08 15:15:37 - Status changed:InProgress
-
reporter Fixed?
Reported by
oasychev
on 2013-10-18 18:09:38 -
Reported by
vostreltsov
on 2013-10-18 18:15:52 - Status changed:Fixed
-
reporter Reported by
oasychev
on 2013-10-18 18:28:09 - Status changed:Done
- Log in to comment
Reported by
vostreltsov
on 2013-09-22 10:55:16 - Status changed:InProgress