diff options
Diffstat (limited to '.config/nvim/lsp/denols.lua')
| -rw-r--r-- | .config/nvim/lsp/denols.lua | 111 | 
1 files changed, 0 insertions, 111 deletions
diff --git a/.config/nvim/lsp/denols.lua b/.config/nvim/lsp/denols.lua deleted file mode 100644 index 8c051fb..0000000 --- a/.config/nvim/lsp/denols.lua +++ /dev/null @@ -1,111 +0,0 @@ ----@brief ---- ---- https://github.com/denoland/deno ---- ---- Deno's built-in language server ---- ---- To appropriately highlight codefences returned from denols, you will need to augment vim.g.markdown_fenced languages ----  in your init.lua. Example: ---- ---- ```lua ---- vim.g.markdown_fenced_languages = { ----   "ts=typescript" ---- } ---- ``` - -local lsp = vim.lsp - -local function virtual_text_document_handler(uri, res, client) -  if not res then -    return nil -  end - -  local lines = vim.split(res.result, '\n') -  local bufnr = vim.uri_to_bufnr(uri) - -  local current_buf = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false) -  if #current_buf ~= 0 then -    return nil -  end - -  vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines) -  vim.api.nvim_set_option_value('readonly', true, { buf = bufnr }) -  vim.api.nvim_set_option_value('modified', false, { buf = bufnr }) -  vim.api.nvim_set_option_value('modifiable', false, { buf = bufnr }) -  lsp.buf_attach_client(bufnr, client.id) -end - -local function virtual_text_document(uri, client) -  local params = { -    textDocument = { -      uri = uri, -    }, -  } -  local result = client:request_sync('deno/virtualTextDocument', params) -  virtual_text_document_handler(uri, result, client) -end - -local function denols_handler(err, result, ctx, config) -  if not result or vim.tbl_isempty(result) then -    return nil -  end - -  local client = vim.lsp.get_client_by_id(ctx.client_id) -  for _, res in pairs(result) do -    local uri = res.uri or res.targetUri -    if uri:match '^deno:' then -      virtual_text_document(uri, client) -      res['uri'] = uri -      res['targetUri'] = uri -    end -  end - -  lsp.handlers[ctx.method](err, result, ctx, config) -end - ----@type vim.lsp.Config -return { -  cmd = { 'deno', 'lsp' }, -  cmd_env = { NO_COLOR = true }, -  filetypes = { -    'javascript', -    'javascriptreact', -    'javascript.jsx', -    'typescript', -    'typescriptreact', -    'typescript.tsx', -  }, -  root_markers = { 'deno.json', 'deno.jsonc', '.git' }, -  settings = { -    deno = { -      enable = true, -      suggest = { -        imports = { -          hosts = { -            ['https://deno.land'] = true, -          }, -        }, -      }, -    }, -  }, -  handlers = { -    ['textDocument/definition'] = denols_handler, -    ['textDocument/typeDefinition'] = denols_handler, -    ['textDocument/references'] = denols_handler, -  }, -  on_attach = function(client, bufnr) -    vim.api.nvim_buf_create_user_command(bufnr, 'LspDenolsCache', function() -      client:exec_cmd({ -        command = 'deno.cache', -        arguments = { {}, vim.uri_from_bufnr(bufnr) }, -      }, { bufnr = bufnr }, function(err, _, ctx) -        if err then -          local uri = ctx.params.arguments[2] -          vim.notify('cache command failed for' .. vim.uri_to_fname(uri), vim.log.levels.ERROR) -        end -      end) -    end, { -      desc = 'Cache a module and all of its dependencies.', -    }) -  end, -}  |