169 похожих чатов

А в AST есть инфа про наличие/отсутствие ";"?

15 ответов

43 просмотра

Там не указывается конкретно, но да, есть

Andriy-F Автор вопроса
Alexander G.
Там не указывается конкретно, но да, есть

попытался в онлайн-парсере получить AST для "console.log("asdf")" и "console.log("asdf");". В JSON вроде есть разница, но не понятно, хватит ли этого чтобы собрать БЕЗ ИЗМЕНЕНИЙ оба варианта...

Надо сидеть и разбираться. Может быть трансформ через бабель не поможет.

Andriy-F Автор вопроса
Andriy-F Автор вопроса
Alexander G.
Надо сидеть и разбираться. Может быть трансформ че...

почитал доки по бабель-генератору. Встретил строку - Note: The symbols like white spaces or new line characters are not preserved in the AST. When Babel generator prints code from the AST, the output format is not guaranteed. при этом комменты и точки запятой научился "не исправлять", даже если код вида ;;;;;console.log("123");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; // +++ Но лишние пробелы удаляются...

Andriy F
почитал доки по бабель-генератору. Встретил строку...

Да, в AST explorer видно, что форматирование умеет сохранять ESLint. Можно в его сторону копнуть

Andriy-F Автор вопроса
Alexander G.
Да, в AST explorer видно, что форматирование умеет...

У меня-то задача именно "поменять AST и вернуть как было но с изменениями в коде". Например меня бесит оформление в виде "function name() ПРОБЕЛ{" (при этом не удобно "перенос длинной строки" работает). А мне его везде бабель вставляет... Буду думать!

Andriy F
У меня-то задача именно "поменять AST и вернуть ка...

ESLint тоже строит AST и потом преобразовывает в код

Andriy-F Автор вопроса
Alexander G.
ESLint тоже строит AST и потом преобразовывает в к...

Вот этого не знал! Спасибо! Думал там просто "облагораживание кода по маскам"

Andriy F
У меня-то задача именно "поменять AST и вернуть ка...

Здесь не ясно, конечно. Бабель преобразовывает код для того, чтобы он был готов к деплою. Какая разница в каком он виде? Исходник то остается чистым, с твоим форматированием

Andriy-F Автор вопроса
Alexander G.
Здесь не ясно, конечно. Бабель преобразовывает код...

У меня задача как раз "исходник" подправлять. Прямо в IDE. Например все переменные aaa_* заменить на bbb_* одним "проходом". Или "закоментировать 5й параметр в функции в /*, parm5*/" одной горячей кнопкой.

Andriy F
У меня задача как раз "исходник" подправлять. Прям...

Переименование переменных делается средствами IDE, комментировать 5 параметр в функцией одной горячей кнопкой...хз. В функции вообще не должно быть пять параметров))

Andriy-F Автор вопроса
Alexander G.
Переименование переменных делается средствами IDE,...

...от функции зависит. Может быть и больше! Особенно на стадии отладки когда можно добавить __INFO с текстовым описанием "как мы сюда попадаем" и десятком отладочных параметров которые только для консоли нужны. Переименовывание переменных ПОШТУЧНО в IDE есть, но чтобы ВСЕ "по маске" переименовать, при этом не трогая названия функций или переменных вне "окружения функции/класса"... Я и хочу "плагин к IDE" написать.

Andriy F
...от функции зависит. Может быть и больше! Особен...

Это будет не просто. Задача не тривиальная. Выдели не нее побольше времени :)

Andriy-F Автор вопроса
Alexander G.
Это будет не просто. Задача не тривиальная. Выдели...

Знаю! Сейчас буду Eslint изучать в этом направлении...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта