dartls.md

~/.config/nvim/lua/config/lspclients/dartls.lua
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#dartls
local capabilities = require('blink.cmp').get_lsp_capabilities()
local namespace = vim.api.nvim_create_namespace("flutter_closing_tags")
local function closing_tags(error, result, ctx, config)
  vim.api.nvim_buf_clear_namespace(0, namespace, 0, -1)

  for _, item in ipairs(result.labels) do
    local line = tonumber(item.range["end"].line)
    if line <= vim.api.nvim_buf_line_count(0) then
      vim.api.nvim_buf_set_extmark(0, namespace, line, -1, {
        virt_text = { {
          "// " .. item.label,
          "Comment",
        } },
        virt_text_pos = "eol",
        hl_mode = "combine",
      })
    end
  end
end

require('lspconfig').dartls.setup({
  capabilities = capabilities,
  handlers = {
    ["dart/textDocument/publishClosingLabels"] = closing_tags,
  }
})

Comments