From c9bfe2172322f6ddf965c308b5c7c529e3f10e01 Mon Sep 17 00:00:00 2001 From: "flyingscorpio@clevo" Date: Sat, 13 Aug 2022 09:39:52 +0200 Subject: [PATCH] Add marksman LSP server --- roles/neovim/files/lua/lsp/markdown.lua | 16 ++++++++++++++++ roles/neovim/files/lua/plugins/options/lsp.lua | 1 + roles/neovim/tasks/main.yml | 15 +++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 roles/neovim/files/lua/lsp/markdown.lua diff --git a/roles/neovim/files/lua/lsp/markdown.lua b/roles/neovim/files/lua/lsp/markdown.lua new file mode 100644 index 0000000..5cd46f0 --- /dev/null +++ b/roles/neovim/files/lua/lsp/markdown.lua @@ -0,0 +1,16 @@ +-- LSP Server for Markdown + +local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + +require'lspconfig'.marksman.setup { + capabilities = capabilities, + on_attach = function() + vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = 0, remap = false }) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { buffer = 0, remap = false }) + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { buffer = 0, remap = false }) + vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, { buffer = 0, remap = false }) + vim.keymap.set('n', 'dj', vim.diagnostic.goto_next, { buffer = 0, remap = false }) + vim.keymap.set('n', 'dk', vim.diagnostic.goto_prev, { buffer = 0, remap = false }) + vim.keymap.set('n', 'dl', 'Telescope diagnostics', { buffer = 0, remap = false }) + end, +} diff --git a/roles/neovim/files/lua/plugins/options/lsp.lua b/roles/neovim/files/lua/plugins/options/lsp.lua index e2fb73a..22f1465 100644 --- a/roles/neovim/files/lua/plugins/options/lsp.lua +++ b/roles/neovim/files/lua/plugins/options/lsp.lua @@ -4,3 +4,4 @@ require('lsp.ansible') require('lsp.bash') require('lsp.latex') require('lsp.lua') +require('lsp.markdown') diff --git a/roles/neovim/tasks/main.yml b/roles/neovim/tasks/main.yml index 35ffb16..51f6b11 100644 --- a/roles/neovim/tasks/main.yml +++ b/roles/neovim/tasks/main.yml @@ -99,6 +99,21 @@ when: ansible_facts['distribution'] == 'Debian' +- name: Grab marksman (LSP server) binary + block: + - name: Find latest marksman version + uri: + url: https://github.com/artempyanykh/marksman/releases/latest + register: latest_http_content + - name: Set latest marksman version + set_fact: + marksman_version: "{{ latest_http_content.url | split('/') | last }}" + - name: Get latest marksman binary + get_url: + url: "https://github.com/artempyanykh/marksman/releases/download/{{ marksman_version }}/marksman-linux" + dest: ~/.local/bin/marksman + mode: 0755 + - name: Make sure needed directories exist file: path={{ item.path }} state=directory mode={{ item.mode }} with_items: