В состав компиляторов и интерпретаторов входят разные инструментальные средства с разными API, которые могут вызываться по-разному. Некоторые языки выпускают свои парсеры или тайп резолверы в виде библиотек — их могут хостить прямо в процессе(ах) IDE. Некоторые (кто попроще) просто в новых процессах запускаются, а где-то их пытаются пулить, запускать всякие out-of-proc серверы систем сборки и пр. для ускорения работы. Простого ответа на этот вопрос дать нельзя в том числе потому, что эти средства в рамках одной и той же IDE могут решать несколько не связанных наборов задач.
Например, через language server, но он как мне кажется идёт как посредник между компилятором и редактором.
А с LS IDE общается по сокету? Как она находит его?
Обычно в конфиге прописывается путь до бинаря)
Обсуждают сегодня