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

Configuration LSP not working? #43

Closed
xfyuan opened this issue Jan 7, 2022 · 2 comments
Closed

Configuration LSP not working? #43

xfyuan opened this issue Jan 7, 2022 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@xfyuan
Copy link

xfyuan commented Jan 7, 2022

I have configured aerial like #34 , but it seems that LSP always can't work correctly.

My config is like this:

-- lsp config {{{
local servers = {
    "gopls",
    "tsserver",
    "html",
    "cssls",
    "tailwindcss",
    "solargraph",
}

function on_attach(client, bufnr)
    local function buf_set_keymap(...)
      vim.api.nvim_buf_set_keymap(bufnr, ...)
    end
    local function buf_set_option(...)
      vim.api.nvim_buf_set_option(bufnr, ...)
    end

    buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")

    require "lsp_signature".on_attach()
    require("aerial").on_attach(client, bufnr)
end

-- lspInstall + lspconfig stuff

local lsp_installer = require("nvim-lsp-installer")

for _, name in pairs(servers) do
  local ok, server = lsp_installer.get_server(name)
  -- Check that the server is supported in nvim-lsp-installer
  if ok then
    if not server:is_installed() then
      print("Installing " .. name)
      server:install()
    end
  end
end

local nvim_lsp = require('lspconfig')
for _, lsp in ipairs(servers) do
  lsp_installer.on_server_ready(function(lsp)
    local opts = {}
    lsp:setup(opts)
  end)

  nvim_lsp[lsp].setup {
    on_attach = on_attach,
    flags = {
      debounce_text_changes = 150,
    }
  }
end

Then I open a go file, run :AerialInfo command, always get this result:

Aerial Info
-----------
Filetype: go
Configured backends:
  lsp (not supported) [LSP client not attached (did you call aerial.on_attach?)]
  treesitter (supported) (attached)
  markdown (not supported) [Filetype is not markdown]
Show symbols: Class, Constructor, Enum, Function, Interface, Module, Method, Struct

And the aerial toggle window can open, but the fold feature not working.

Is there any wrong in my configurations?

@xfyuan xfyuan added the bug Something isn't working label Jan 7, 2022
@stevearc
Copy link
Owner

stevearc commented Jan 7, 2022

So there are two problems in this report:

  1. The LSP backend appears to not be attaching properly
  2. Code folding isn't working

2 is easier so let's start with that. I made a change recently (240888e) to disable the code folding behavior by default. To enable it, you should call setup() with the desired options. These should be explained in the README and in :help aerial

require("aerial").setup({
  -- This must be true (or potentially 'auto') for any folding features
  manage_folds = true,

  -- When you fold code with za, zo, or zc, update the aerial tree as well.
  link_folds_to_tree = true,

  -- Fold code when you open/collapse symbols in the tree.
  link_tree_to_folds = true,
})

Problem 1 is a lot trickier. I tried replicating your config on my computer and
could not reproduce the issue. Seeing as the treesitter backend is active and
working, this may not cause any actual problems. If you do still want to debug
what's happening with the LSP, let me know and I'll give you some code pointers
where you can log debug information and we can hopefully figure out what's going
on.

@xfyuan
Copy link
Author

xfyuan commented Jan 7, 2022

Thanks for so quickly reply!

Yes, folding is working after adding above configs, cool! The code folding on each method is the best feature I just like.

The 1st point does cause none problem actually, though the aerial info shows like that. So maybe we can think it as an "egg" now.)

@stevearc stevearc closed this as completed Jan 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants