Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Metarhia IntelliSenseNew to Visual Studio Code? Get it now.
Metarhia IntelliSense

Metarhia IntelliSense

evolinue

|
2 installs
| (0) | Free
IntelliSense support for Metarhia-style modular applications (domain, lib, db, bus sandboxed modules)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Metarhia IntelliSense

VS Code расширение для поддержки IntelliSense в проектах на основе Metarhia.

Возможности

  • Autocomplete — автодополнение при обращении к domain., lib., db., bus. и вложенным модулям
  • Go to Definition — Ctrl+Click (или F12) на domain.user.get() откроет файл domain/user.js и перейдёт к методу get
  • Hover — при наведении показывает сигнатуру метода, параметры и JSDoc
  • Diagnostics — предупреждения о неразрешённых ссылках на модули
  • Auto-reindex — автоматически обновляет индекс при изменении файлов

Установка

cd metarhia-intellisense
npm install

Затем один из вариантов:

Вариант 1: Символическая ссылка (для разработки)

# Узнать путь к расширениям VS Code
# Linux/Mac: ~/.vscode/extensions
# Windows: %USERPROFILE%\.vscode\extensions

ln -s $(pwd) ~/.vscode/extensions/metarhia-intellisense

Перезапустите VS Code.

Вариант 2: VSIX пакет

npm install -g @vscode/vsce
vsce package
code --install-extension metarhia-intellisense-0.1.0.vsix

Настройка

В settings.json вашего проекта (или глобально):

{
  "metarhia.applicationPath": "application",
  "metarhia.roots": ["domain", "lib", "db", "bus"]
}
  • applicationPath — путь к папке приложения относительно корня workspace (по умолчанию "application")
  • roots — список корневых директорий модулей (по умолчанию ["domain", "lib", "db", "bus"])

Структура проекта, которую понимает расширение

application/
├── domain/
│   ├── liveDating.js        → domain.liveDating.get(), domain.liveDating.checkAccess()
│   └── user/
│       ├── updateRole.js    → domain.user.updateRole()
│       └── profile.js       → domain.user.profile.get(), domain.user.profile.update()
├── lib/
│   ├── utils.js             → lib.utils.formatDate()
│   └── validation.js        → lib.validation.email()
├── db/
│   └── prisma.js            → db.prisma
└── bus/
    └── events.js            → bus.events.emit()

Поддерживаемые форматы модулей

Объект с методами

const privateHelper = (x) => x * 2;

({
  async get(id) {
    return await db.prisma.user.findUnique({ where: { id } });
  },

  async update(id, data) {
    return await db.prisma.user.update({ where: { id }, data });
  },
});

Одиночная функция

const SOME_CONSTANT = 42;

async (userId, role) => {
  await db.prisma.user.update({
    where: { id: userId },
    data: { role },
  });
};

Sandbox-глобалы

Расширение знает о следующих глобальных переменных, доступных в песочнице:

Переменная Описание
domain Дерево бизнес-логики
lib Библиотечные модули
db Модули базы данных
bus Шина событий
node Node.js built-in модули
npm npm зависимости
metarhia Metarhia пакеты
config Конфигурация приложения
console Логгер
application Объект приложения
schemas Модели схем
Error Класс ошибки
DomainError Класс доменной ошибки

Команды

  • Metarhia: Re-index — принудительная переиндексация проекта (клик по статус-бару или Command Palette)

JSDoc-подсказки

Добавляйте JSDoc-комментарии к методам для улучшенных подсказок:

({
  /**
   * Получить данные пользователя по ID
   * @param {string} userId - UUID пользователя
   * @returns {Promise<User>} Объект пользователя
   */
  async get(userId) {
    return await db.prisma.user.findUnique({ where: { id: userId } });
  },
});
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft