User 13204940 Ответов: 1

Программирование текстового редактора соединение фигурных скобок


Привет,

Я работаю над написанием своего собственного текстового редактора JS, основанного на линейном программировании. Все идет очень хорошо, но я застрял на одной функции, графической линии, которую вы видите в некоторых редакторах, которая соединяет {}, чтобы сформировать блок кода. Я загрузил скриншот жестко закодированной версии, связывающей строки 2-7 здесь[^].

С чем у меня возникли проблемы, так это с выяснением того, какие линии должны быть связаны. То есть, анализируя код, выбирая {} и каким-то образом решая, какие из них образуют пару.

Это будет иметь дело со всеми возможностями, включая ошибочные, такие как;

Я буду рисовать графику только в том случае, если { и } находятся в начале строки на данный момент, реализуя поддержку таких вещей, как function x() { позже.

{
}
---
{

}
---
{
    {
}
---
{
    }
}
---
{
    {

    }
}
---
{
}

{
}


Я просто хотел бы получить несколько советов о наилучшем подходе пожалуйста

Что я уже пробовал:

--------------------------------------------------------------------

1 Ответов

Рейтинг:
0

Gerry Schmitz

Сначала убедитесь, что все "спарено" (количество открывающих и закрывающих скобок должно быть одинаковым).

Тогда "чтение обратное" на "пару" брекеты.

Прочитайте наоборот, чтобы найти "закрывающую" скобку; соответствующая "открывающая" скобка-это та, которая включает в себя любые "дочерние пары" скобок.

"Подсчитывая" открывающие и закрывающие скобки при чтении в обратном порядке, вы можете сопоставить, какая скобка идет с какой; вы даже можете определить, на каком "уровне" вы находитесь.