Настройка ZED для работы с Arduino

Настройка 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"
      ]
    }
  }
}
Жми класс
Обновлено 02.06.2026

Оцените документ




0

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *