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

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

15 ответов

14 просмотров

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

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 изучать в этом направлении...

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта