Выделение в тестинг тул

Issue #228 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 228

Я сделал начальную часть работы, дав тестинг тулу возможность передавать выделение в
матчер и добавив его в matching options - может его уже в опции хэндлера добавить?

Валерий - теперь вам надо сделать реакцию матчера, чтобы он выдавал совпадение с выделением
в виде особого подвыражения. Это несложно сделать, преобразовав дерево - лучше только
подобрать номер или имя подвыражения так, чтобы не пересекалось с тем, что может юзер
ввести.

Далее я доделаю цветную строку, чтобы она его учитывала...

Reported by oasychev on 2013-09-19 20:28:42

Comments (9)

  1. Valeriy Streltsov
    Не все так просто. Добавить подвыражение с номером max+1 - или с любым другим - и сразу
    же все все внутренние (с меньшим номером) будут сбрасываться при заходе в добавленное,
    всё сломается
    

    Reported by vostreltsov on 2013-09-19 20:32:07

  2. Oleg Sychev reporter
    Ну честно говоря сам тестинг тул совпадения с подвыражениями не интересуют, разве что
    есть обратные ссылки которые могут повлиять на сам матчинг регекса...
    Если юзер захочет увидеть совпадение с подвыражением - он может его выделить; в этом
    случае можно тупо скопировать данные. Но он может выделить и не подвыражение...
    
    А вообще у вас вроде была карта вложенности, по которой эти сбрасывания идут, можно
    же подвыражение в дерево после ее формирования добавить и в карте не прописывать...
    
    Кстати, max+1 мне не очень нравится - я бы больше за -1 или строковое имя, которое
    невозможно набрать ибо оно нарушает синтаксис; но можно и max+1 не меняя самого max.
    

    Reported by oasychev on 2013-09-19 20:45:02

  3. Oleg Sychev reporter
    Если оно каждый раз по дереву лазит при проходе через тег, это должно создавать серьезные
    тормоза.
    
    Логичнее иметь карту, где ключ - номер подвыражения, значение - массив входящих в него
    подвыражений.
    

    Reported by oasychev on 2013-09-19 20:49:22

  4. Oleg Sychev reporter
    Вытолкнул учет выделения при генерации цветной строки и базовую поддержку в PHP Preg
    matcher - в случае, если совпадает с захватывающим подвыражением.
    
    Валерий - ждем поддержку от НКА :)
    

    Reported by oasychev on 2013-09-21 21:11:44

  5. Valeriy Streltsov
    При сдвиге выделения из-за "пропущенных" узлов возникают проблемы - в общем-то трудно
    отличить случай пропуска от нормальной ситуации. Например, у альтернативы a|b между
    операндами тоже есть "дырка", у подвыражения (a) слева и справа от операнда тоже "дырки"...
    Предлагаю просто в лексере сохранять объекты qtype_preg_position для пропущенных листов
    и в конструкторе хэндлера подгонять под них selection.
    

    Reported by vostreltsov on 2013-09-22 21:28:28 - Status changed: InProgress

  6. Oleg Sychev reporter
    Я бы сохранял "удаляемые" узлы - в отдельный контейнер, т.е. те, которые были бы в дереве
    при preserveallnodes. И по ним тоже вел поиск...
    

    Reported by oasychev on 2013-09-23 14:42:16

  7. Oleg Sychev reporter
    Спасибо, еще одна очень полезная для юзера функциональность прописалась в релизе :)
    

    Reported by oasychev on 2013-09-23 19:23:00 - Status changed: Done

  8. Log in to comment