From 522d56557b00246286d803425751a4334f3a94a5 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Mon, 15 Jul 2024 20:05:47 +0100 Subject: Update lspconfig, add indent-blankline indent-blankline is probably old because I've actually been using it for ages, but I have a strict if-it-ain't-broke policy, so I'm not going to update it. lspconfig *was* broke though with nvim 0.10, so now it's fixed. --- .../arduino_language_server.lua | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 start/lspconfig-0.1.8/lua/lspconfig/server_configurations/arduino_language_server.lua (limited to 'start/lspconfig-0.1.8/lua/lspconfig/server_configurations/arduino_language_server.lua') diff --git a/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/arduino_language_server.lua b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/arduino_language_server.lua new file mode 100644 index 0000000..f1d73e2 --- /dev/null +++ b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/arduino_language_server.lua @@ -0,0 +1,87 @@ +local util = require 'lspconfig.util' + +local default_capabilities = vim.lsp.protocol.make_client_capabilities() +default_capabilities.textDocument.semanticTokens = vim.NIL +default_capabilities.workspace.semanticTokens = vim.NIL + +return { + default_config = { + filetypes = { 'arduino' }, + root_dir = util.root_pattern '*.ino', + cmd = { + 'arduino-language-server', + }, + capabilities = default_capabilities, + }, + docs = { + description = [[ +https://github.com/arduino/arduino-language-server + +Language server for Arduino + +The `arduino-language-server` can be installed by running: + +``` +go install github.com/arduino/arduino-language-server@latest +``` + +The `arduino-cli` tool must also be installed. Follow [these +installation instructions](https://arduino.github.io/arduino-cli/latest/installation/) for +your platform. + +After installing `arduino-cli`, follow [these +instructions](https://arduino.github.io/arduino-cli/latest/getting-started/#create-a-configuration-file) +for generating a configuration file if you haven't done so already, and make +sure you [install any relevant platforms +libraries](https://arduino.github.io/arduino-cli/latest/getting-started/#install-the-core-for-your-board). + +The language server also requires `clangd` to be installed. Follow [these +installation instructions](https://clangd.llvm.org/installation) for your +platform. + +If you don't have a sketch yet create one. + +```sh +$ arduino-cli sketch new test +$ cd test +``` + +You will need a `sketch.yaml` file in order for the language server to understand your project. It will also save you passing options to `arduino-cli` each time you compile or upload a file. You can generate the file like using the following commands. + + +First gather some information about your board. Make sure your board is connected and run the following: + +```sh +$ arduino-cli board list +Port Protocol Type Board Name FQBN Core +/dev/ttyACM0 serial Serial Port (USB) Arduino Uno arduino:avr:uno arduino:avr +``` + +Then generate the file: + +```sh +arduino-cli board attach -p /dev/ttyACM0 -b arduino:avr:uno test.ino +``` + +The resulting file should like like this: + +```yaml +default_fqbn: arduino:avr:uno +default_port: /dev/ttyACM0 +``` + +Your folder structure should look like this: + +``` +. +├── test.ino +└── sketch.yaml +``` + +For further instruction about configuration options, run `arduino-language-server --help`. + +Note that an upstream bug makes keywords in some cases become undefined by the language server. +Ref: https://github.com/arduino/arduino-ide/issues/159 +]], + }, +} -- cgit v1.2.3