Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't use ccls with ESP32 related projects #961

Open
Aaron-Uriel-Guzman-Cardoso opened this issue Mar 27, 2024 · 0 comments
Open

Can't use ccls with ESP32 related projects #961

Aaron-Uriel-Guzman-Cardoso opened this issue Mar 27, 2024 · 0 comments

Comments

@Aaron-Uriel-Guzman-Cardoso

Hi, I'm working with on a project, this project uses PlatformIO and is targeted to an ESP32, as a recomendation from this website I installed and compiled ccls version "0.20230717" with the LLVM that Espessif provides in version "16.0.4-20231113". I noticed it worked on simple projects that do not have anything related to PlatformIO or the ESP-IDF but on projects that do have something related to the ESP32, it throws a bunch of errors on the Neovim side.
This is the command that I used to make the compilation:

cmake -H. -Brelease-xtensa -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=rest/of/the/path/llvm-esp-16.0.4-20231113-linux-amd64/esp-clang/

Indexing a project like the hello_world example of the ESP-IDF does not show any problem:

❯ ~/path/to/ccls/release-xtensa/ccls --index=. --init="{\"compilationDatabaseDirectory\": \"build\"}"
13:27:08 ccls           initialize.cc:276 I initialize in directory /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world with uri file:///home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/.
13:27:08 ccls           initialize.cc:299 I initializationOptions: {"compilationDatabaseCommand":"","compilationDatabaseDirectory":"build","cache":{"directory":".ccls-cache","format":"binary","hierarchicalPath":false,"retainInMemory":2},"capabilities":{"documentOnTypeFormattingProvider":{"firstTriggerCharacter":"}","moreTriggerCharacter":[]},"foldingRangeProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}}},"clang":{"excludeArgs":[],"extraArgs":[],"pathMappings":[],"resourceDir":""},"client":{"diagnosticsRelatedInformation":true,"hierarchicalDocumentSymbolSupport":true,"linkSupport":true,"snippetSupport":true},"codeLens":{"localVariables":true},"completion":{"caseSensitivity":2,"detailedLabel":true,"dropOldRequests":true,"duplicateOptional":true,"filterAndSort":true,"include":{"blacklist":[],"maxPathSize":30,"suffixWhitelist":[".h",".hpp",".hh",".inc"],"whitelist":[]},"maxNum":100,"placeholder":true},"diagnostics":{"blacklist":[],"onChange":1000,"onOpen":0,"onSave":0,"spellChecking":true,"whitelist":[]},"highlight":{"largeFileSize":2097152,"lsRanges":false,"blacklist":[],"whitelist":[]},"index":{"blacklist":[],"comments":2,"initialNoLinkage":false,"initialBlacklist":[],"initialWhitelist":[],"maxInitializerLines":5,"multiVersion":0,"multiVersionBlacklist":[],"multiVersionWhitelist":[],"name":{"suppressUnwrittenScope":false},"onChange":false,"parametersInDeclarations":true,"threads":0,"trackDependency":2,"whitelist":[]},"request":{"timeout":5000},"session":{"maxNum":10},"workspaceSymbol":{"caseSensitivity":1,"maxNum":1000,"sort":true},"xref":{"maxNum":2000}}
13:27:08 ccls           initialize.cc:331 I use -resource-dir=/home/auriel/Documentos/Códigos/llvm-esp-16.0.4-20231113-linux-amd64/esp-clang/lib/clang/16
13:27:08 ccls           initialize.cc:363 I workspace folder: /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/
13:27:08 ccls              project.cc:429 I loaded /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/build/compile_commands.json
13:27:08 ccls              project.cc:284 I use /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/.ccls: %compile_commands.json --target=xtensa-esp32 --gcc-toolchain=/home/auriel/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/
13:27:08 ccls           initialize.cc:388 I start 2 indexers
13:27:08 ccls           initialize.cc:396 I dispatch initial index requests
entries:    832
completed:    0/83213:27:08 indexer0         pipeline.cc:386 I delete /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/build/project_elf_src_esp32.c
completed:   77/83213:27:09 indexer0         pipeline.cc:386 I delete /home/auriel/Documentos/esp-idf-v5.2/examples/get-started/hello_world/build/x509_crt_bundle.S
completed:  832/832

However the cache directory is empty:

du -hs .ccls-cache/

Neovim

When I open neovim I get a bunch of errors like this:

LSP[ccls]: Error NO_RESULT_CALLBACK_FOUND: {                                                                                                                                              
  error = {
    code = -32603,
    message = "failed to index /home/auriel/Documentos/esp-idf-v5.2/components/xtensa/eri.c"
  },
  id = 1,
  jsonrpc = "2.0"
}

I added the last lines of the log file "/home/user/.local/state/nvim/lsp.log" in this report:
lsp_log.txt

This is the setting that I have on nvim-lspconfig:

    lspconfig["ccls"].setup {
      cmd = { "/home/user/path/ccls/release-xtensa/ccls" },
      init_options = {
        compilationDatabaseDirectory = "build",
        index = {
          threads = 0,
        },
        clang = {
          excludeArgs = { "-frounding-math"}
        },
      },
      capabilities = capabilities,
    }

I noticed that the error "No callback found for server response id 1" is repeated a lot and searching I found this Issue that suggest this is a specific ccls problem.

As a result I don't get any autocompletion, so I thought reporting this could be useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant