# Устранение неполадок в Tern

## Установщик останавливается

| Сообщение | Решение |
| --- | --- |
| `This preview requires macOS on Apple Silicon.` | Предварительная версия работает только на Mac с Apple Silicon. |
| `Install Tern and enable its command-line tool before running this installer.` | Добавьте команду `tern` в `PATH` и снова запустите `sh ./install.sh`. |
| `Incomplete release: missing executable dist/elide-tern-…` | Распакуйте архив заново; сначала проверьте его командой `shasum -a 256 -c SHA256SUMS`. |
| `Incomplete release: runtime, SDK, or plugin is missing.` | То же, что выше. |

## Представление не открывается

| Сообщение | Решение |
| --- | --- |
| ``The configured runtime has no `elide tern`; update it or set a launcher in plugin/config.json.`` | `runtime` в `plugin/config.json` указывает на Elide без представлений Tern. Укажите `../runtime/bin/elide` из выпуска или удалите файл и снова запустите `install.sh`. |
| `Configure plugin/config.json before launching a runtime.` | `plugin/config.json` отсутствует или не читается; снова запустите `install.sh`. |
| `Set the embedded SDK directory in plugin/config.json.` | **Open REPL** нужен `sdk`; установщик задаёт его как `../sdk`. |
| `Configure a runtime launcher on this host before opening a remote session.` | Представления работают только на локальных хостах. Откройте проект в локальной панели. |
| `Open a local project directory first.` | Переведите фокус на панель, каталог которой находится внутри проекта `elide.pkl`. |
| `No elide.pkl found in this directory or its parents.` | То же, что выше. |

Если путь к данным плагина Tern настолько длинный, что превышает ограничение длины пути Unix-сокета, задайте в
`plugin/config.json` для `state` короткий закрытый каталог.

## Команда выводит простой текст в Tern

| Причина | Решение |
| --- | --- |
| У `elide` из `PATH` нет представлений Tern | Проверьте `elide tern --help`; он должен выводить `debug`, `project` и `repl`. Установите Elide 1.6.3 или новее. |
| `--reporter`, `--project` или несуществующий путь к тестам | Ожидаемо: такие запуски сохраняют простой вывод. |
| Вывод перенаправлен или передан через канал | Ожидаемо. |
| `elide build` вне проекта `elide.pkl` или с `--inspect`, `--help` или `--progress` | Ожидаемо. |
| `elide serve --no-tui` | Ожидаемо. |

Полный список приведён в разделе [Поверхности терминала](/docs/tern-terminal). Предупреждение с упоминанием
`ELIDE_TERN_SURFACE` означает, что переменная содержит что-то кроме `inline`, `screen` или `auto`.

## `elide tern` завершается со статусом 2

`elide tern repl|project|debug` размещает представления, которые запускает плагин, и вне Tern завершается с кодом `2`.
Используйте команды палитры плагина, а не запускайте его сами.

## Ссылка ничего не делает

Ссылки `elide://` открываются только через плагин. Для отброшенной ссылки показывается уведомление с причиной:

| Уведомление | Причина |
| --- | --- |
| `Ignored a malformed elide:// link.` | Неверная кодировка, повторённый ключ, фрагмент или путь вне своего корня. |
| `Ignored an elide:// link whose root has no elide.pkl.` | `root` не является каталогом проекта. |
| `Ignored an elide:// link outside a detected project.` | Нет `root`, и файл не входит ни в один проект, обнаруженный этим окном. |
| `The linked file does not exist.` | Файл перемещён или удалён. |
| `elide:// links open on local hosts only.` | По ссылке щёлкнули в удалённой панели. |

Пути сравниваются в том виде, в каком написаны: ссылка на `/tmp/x` не совпадает с проектом в `/private/tmp/x`.

## Редактор исходного кода

| Симптом | Причина |
| --- | --- |
| Нет подсветки | В файле больше 600 строк. |
| Уведомление вместо текста | Файл больше 512 KiB, не читается или не в UTF-8. |
| `Elide source shows JavaScript, TypeScript, Python, Kotlin and Java files.` | Файлы других типов открываются в редакторе Tern. |
| Нет наложения **Debug** | Файл не на JavaScript, TypeScript или Python. |
| Нет наложения **Diagnostics** | У проекта ещё нет отчёта о сборке; выполните `elide build` в терминале Tern. |
| Вся подсветка покрытия приглушена, `Coverage measured an older version` | Файл изменился после запуска с покрытием; запустите покрытие снова. |

## Отладка

| Сообщение | Решение |
| --- | --- |
| `Save this file before debugging.` | Отладчик выполняет файл с диска. Сохраните, затем запустите. |
| `Debugging takes JavaScript, TypeScript or Python sources.` | Выберите поддерживаемый файл или воспользуйтесь выбором цели. |
| Элементы управления отключены с `Take control to drive the target` | Целью управляет другое представление; выберите **Take control**. |

## См. также

- [Устранение неполадок](/docs/troubleshooting) для ошибок вне Tern
- [Устранение неполадок OpenTelemetry](/docs/opentelemetry/troubleshooting)
