Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Механизм контекстов BSL #2928

Open
alkoleft opened this issue Nov 7, 2022 · 0 comments · May be fixed by #2929
Open

Механизм контекстов BSL #2928

alkoleft opened this issue Nov 7, 2022 · 0 comments · May be fixed by #2929
Labels
component/diagnostics Доработка / создание диагностики type/discuss

Comments

@alkoleft
Copy link
Contributor

alkoleft commented Nov 7, 2022

Описание

Добавить функциональность работы с контекстами исполнения (набор доступных методов и свойств).

Описание предлагаемых изменений

Предлагаю добавить базовый набор механизмов работы с контекстами:

  • Провайдер контекстов - инкапсулирует логику получения контекста
  • Базовый класс контекстов - от него наследуются все реализации
  • Контекст "объединение" - нужен для создания составных контекстов (глобальный = контекст конифгурации + контекст платформы)
  • Фильтруемый контекст - нужен для уточнения контекста (публичный клиентский контекст)

Также для демонстрации и лучшего понимания добавить:

  • Контекст конфигурации - строится на основе метаданных и дерева символов.
  • Контекст объекта метаданных - содержит данные о публичных методах менеджера
  • Контекст модуля - содержит данных о переменных/реквизитах модуля и данные обо всех методах

Пример использования

    var configurationScope = provider.getConfigurationScope();
    configurationScope.getMethod("ГлобальнаяСервернаяПроцедура").get();

    var property = configurationScope.getProperty("ПервыйОбщийМодуль").get();
    provider.getScope(property).getMethod("НеУстаревшаяПроцедура").get();
    provider.getScope(property).getMethod("УстаревшаяФункция").get();
@alkoleft alkoleft added component/diagnostics Доработка / создание диагностики type/discuss labels Nov 7, 2022
@alkoleft alkoleft linked a pull request Nov 7, 2022 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/diagnostics Доработка / создание диагностики type/discuss
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant