Skip to content

fix: JS/TS augmentor robustness + Python grouped imports - #490

Open
Shtirmann wants to merge 3 commits into
mainfrom
fix/js-ts-augmentor-robustness
Open

fix: JS/TS augmentor robustness + Python grouped imports#490
Shtirmann wants to merge 3 commits into
mainfrom
fix/js-ts-augmentor-robustness

Conversation

@Shtirmann

Copy link
Copy Markdown
Collaborator

Всплыло после мержа #462

Что поправил

  • export default class теперь получает class-level JSDoc (раньше regex ловил только class / export class / abstract class).
  • Два одноимённых метода (например, по конструктору в двух классах одного файла) документируются оба. Раньше стоял break после первого совпадения, и второй метод оставался без дока. Переписал на two-phase: сначала собираю цели, потом вставляю снизу вверх, чтобы индексы строк не разъезжались.
  • Метод с = в сигнатуре (дефолтный параметр, foo(x = 5) {) больше не пропускается. Старая эвристика рубила любую строку с =, теперь скипаем только настоящие присваивания и вызовы-стейтменты.
  • Генераторы * gen() и * [Symbol.iterator]() теперь матчатся и документируются.
  • Стрелки-поля класса (foo = (x) => ...) получают имя из объявления поля, а не уходят как anonymous. Правка в TypeScript-адаптере (get_name) плюс отдельный паттерн вставки.
  • Скобочные и многострочные Python-импорты (from x import (a, b)) больше не дают мусорные ключи вроде (a / b). Снимаем скобки и переносы перед разбором.

Тесты

  • test_ts_js_augmentor.py дополнил кейсами на все случаи выше плюс негативные проверки: голый вызов с оператором в аргументах (assert(ready === true);) и локальное присваивание не должны приниматься за объявление метода.
  • Новый test_adapters_robustness.py на резолв имени стрелки-поля и на разбор grouped/multiline/alias импортов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant