Настройка arduino-language-server в Zed #
Инструкция для настройки Arduino-разработки в редакторе Zed с использованием:
1. Установка зависимостей #
Для работы Arduino Language Server нужны три основные вещи:
arduino-cli arduino-language-server clangd
Установка arduino-cli #
-
Проверить, установлен ли arduino-cli:
arduino-cli version -
-
Если команда не найдена, установи CLI:
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh sudo mv bin/arduino-cli /usr/local/bin/
-
-
-
Либо через brew:
brew update brew install arduino-cli
-
-
Проверить путь:
which arduino-cli -
- Обычно он будет таким:
/usr/local/bin/arduino-cli
- Обычно он будет таким:
2. Создание конфига arduino-cli #
arduino-language-server требует конфиг arduino-cli.
-Создать конфиг:
arduino-cli config init
-
-
Проверить, что файл появился:
ls ~/.arduino15/arduino-cli.yaml
-
-
- Обычно путь такой:
/home/$USER/.arduino15/arduino-cli.yaml
- Обычно путь такой:
3. Установка платформы Arduino AVR #
Для Arduino Uno R3 нужна платформа arduino:avr.
arduino-cli core update-index arduino-cli core install arduino:avr
-
Проверить установленные платформы:
arduino-cli core list
4. Установка clangd #
arduino-language-server использует clangd для анализа C/C++ кода.
-
На Linux Mint / Ubuntu:
sudo apt update sudo apt install clangd -
Проверить установку:
clangd --version -
Проверить путь:
which clangd
Обычно: /usr/bin/clangd
5. Установка arduino-language-server #
-
Проверить, установлен ли сервер:
arduino-language-server --version -
Проверить путь:
which arduino-language-server
Если сервер установлен, путь может быть примерно таким: /usr/local/bin/arduino-language-server
По-умолчанию Zed автоматически скачивает и устанавливает arduino-language-server при редактировании файлов *.ino
6. Настройка Zed #
-
Открой настройки Zed:
Ctrl+Shift+P → zed: open settings -
Добавь секцию lsp:
{ "lsp": { "arduino-language-server": { "binary": { "path": "/usr/local/bin/arduino-language-server", "arguments": [ "-cli", "/usr/local/bin/arduino-cli", "-cli-config", "/home/$USER/.arduino15/arduino-cli.yaml", "-clangd", "/usr/bin/clangd", "-fqbn", "arduino:avr:uno" ] } } } }
7. Полный пример настроек Zed #
-
Пример полного settings.json:
{ "edit_predictions": { "allow_data_collection": "yes" }, "session": { "trust_all_worktrees": true }, "base_keymap": "JetBrains", "ui_font_size": 16, "buffer_font_size": 15, "theme": { "mode": "system", "light": "Gruvbox Light", "dark": "Gruvbox Dark" }, "lsp": { "arduino-language-server": { "binary": { "path": "/usr/local/bin/arduino-language-server", "arguments": [ "-cli", "/usr/local/bin/arduino-cli", "-cli-config", "/home/$USER/.arduino15/arduino-cli.yaml", "-clangd", "/usr/bin/clangd", "-fqbn", "arduino:avr:uno" ] } } } }
8. Проверка платы #
-
Подключи Arduino Uno R3 (для примера) и выполни:
arduino-cli board list
Пример вывода:
Port Protocol Type Board Name FQBN /dev/ttyUSB0 serial Serial Port (USB) Arduino Uno arduino:avr:uno
Если плата определяется, значит arduino-cli работает нормально.
9. Компиляция скетча #
-
Перейди в папку со скетчем (например, проекта RFID):
cd ~/ArduinoProjects/rfid/RFID -
Скомпилируй:
arduino-cli compile --fqbn arduino:avr:uno .
10. Загрузка скетча на плату #
-
Загрузи скетч на плату:
arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno . -
-
Или компиляция и загрузка одной командой:
arduino-cli compile --upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno .
-
11. Serial Monitor #
Если в коде указать: cpp Serial.begin(9600);
то монитор открывается так:
arduino-cli monitor -p /dev/ttyUSB0 -c baudrate=9600
Для 115200:
arduino-cli monitor -p /dev/ttyUSB0 -c baudrate=115200
12. Типичные ошибки #
Path to ArduinoCLI must be set #
Нужно явно указать путь к arduino-cli: "-cli", "/usr/local/bin/arduino-cli"
arduino-cli config not found #
Нужно создать конфиг:
arduino-cli config init
И указать его в настройках: "-cli-config", "/home/$USER/.arduino15/arduino-cli.yaml"
clangd not found #
Нужно установить clangd:
sudo apt install clangd
И указать путь: "-clangd", "/usr/bin/clangd"
No such file or directory: MFRC522.h #
Не установлена библиотека (на примере MFRC522):
arduino-cli lib install MFRC522
13. Полезные команды #
which arduino-cli which arduino-language-server which clangd
arduino-cli version arduino-cli config dump arduino-cli core list arduino-cli board list arduino-cli lib list
14. Настройка для Arduino Uno R3 #
Для Arduino Uno R3 используется FQBN: arduino:avr:uno
Именно его нужно указывать в Zed: -fqbn, "arduino:avr:uno"
Итог #
Минимально нужная рабочая связка для Zed:
"lsp": {
"arduino-language-server": {
"binary": {
"path": "/usr/local/bin/arduino-language-server",
"arguments": [
"-cli", "/usr/local/bin/arduino-cli",
"-cli-config", "/home/$USER/.arduino15/arduino-cli.yaml",
"-clangd", "/usr/bin/clangd",
"-fqbn", "arduino:avr:uno"
]
}
}
}

Добавить комментарий