From 804c104146742dc9c4e83e83d4e8f64db7647703 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 10:07:24 +0200 Subject: [PATCH 01/14] dev --- lua/plugins/completion.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index a9c102f..95199de 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -155,7 +155,7 @@ return { { -- gh copilot 'zbirenbaum/copilot.lua', - enabled = false, + enabled = true, config = function() require('copilot').setup { suggestion = { From edd78f62c08a3a3bb8d9d775fb1ec19ddac32bbf Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 15:42:11 +0200 Subject: [PATCH 02/14] feat: virtual text for dap --- lua/config/keymap.lua | 6 +++++ lua/plugins/debugging.lua | 49 +++++++++++++++++++++++++++++++++------ 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/lua/config/keymap.lua b/lua/config/keymap.lua index 16332a1..ddad173 100644 --- a/lua/config/keymap.lua +++ b/lua/config/keymap.lua @@ -285,8 +285,14 @@ wk.register({ i = { new_terminal_ipython, 'new [i]python terminal' }, j = { new_terminal_julia, 'new [j]ulia terminal' }, }, + e = { + name = '[e]dit', + }, d = { name = '[d]ebug', + t = { + name = '[t]est', + }, }, f = { name = '[f]ind (telescope)', diff --git a/lua/plugins/debugging.lua b/lua/plugins/debugging.lua index 7ad09c2..fcb986d 100644 --- a/lua/plugins/debugging.lua +++ b/lua/plugins/debugging.lua @@ -27,22 +27,57 @@ return { 'nvim-neotest/nvim-nio', 'rcarriga/nvim-dap-ui', 'mfussenegger/nvim-dap-python', + 'theHamsta/nvim-dap-virtual-text', }, }, config = function() vim.fn.sign_define('DapBreakpoint', { text = '🦆', texthl = '', linehl = '', numhl = '' }) + local dap = require 'dap' + local ui = require 'dapui' require('dapui').setup() require('dap-python').setup() require('dap.ext.vscode').load_launchjs 'launch.json' + + require('nvim-dap-virtual-text').setup { + -- Hides tokens, secrets, and other sensitive information + -- From TJ DeVries' config + -- Not necessary, but also can't hurt + display_callback = function(variable) + local name = string.lower(variable.name) + local value = string.lower(variable.value) + if name:match 'secret' or name:match 'api' or value:match 'secret' or value:match 'api' then + return '*****' + end + + if #variable.value > 15 then + return ' ' .. string.sub(variable.value, 1, 15) .. '... ' + end + + return ' ' .. variable.value + end, + } + + dap.listeners.before.attach.dapui_config = function() + ui.open() + end + dap.listeners.before.launch.dapui_config = function() + ui.open() + end + dap.listeners.before.event_terminated.dapui_config = function() + ui.close() + end + dap.listeners.before.event_exited.dapui_config = function() + ui.close() + end end, keys = { - { 'db', ":lua require'dap'.toggle_breakpoint()", desc = 'debug breakpoint' }, - { 'dc', ": lua require'dap'.continue()", desc = 'debug' }, - { 'do', ": lua require'dap'.step_over()", desc = 'debug over' }, - { 'dO', ": lua require'dap'.step_out()", desc = 'debug out' }, - { 'di', ": lua require'dap'.step_into()", desc = 'debug into' }, - { 'dr', ": lua require'dap'.repl_open()", desc = 'debug repl' }, - { 'du', ": lua require'dapui'.toggle()", desc = 'debug ui' }, + { 'db', ":lua require'dap'.toggle_breakpoint()", desc = 'debug [b]reakpoint' }, + { 'dc', ":lua require'dap'.continue()", desc = 'debug [c]ontinue' }, + { 'do', ":lua require'dap'.step_over()", desc = 'debug [o]ver' }, + { 'dO', ":lua require'dap'.step_out()", desc = 'debug [O]ut' }, + { 'di', ":lua require'dap'.step_into()", desc = 'debug [i]nto' }, + { 'dr', ":lua require'dap'.repl_open()", desc = 'debug [r]epl' }, + { 'du', ":lua require'dapui'.toggle()", desc = 'debug [u]i' }, }, }, } From 4e3e3abf7d267cfa109ad3d9e1a9cb9d7b52184a Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 15:42:25 +0200 Subject: [PATCH 03/14] feat: oil.nvim to edit the filesystem as a buffer --- lua/plugins/ui.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua index 5d41213..c7d0105 100644 --- a/lua/plugins/ui.lua +++ b/lua/plugins/ui.lua @@ -116,6 +116,26 @@ return { opts = { signs = false }, }, + { -- edit the file system as a buffer + 'stevearc/oil.nvim', + opts = { + keymaps = { + [''] = false, + [''] = false, + [''] = false, + }, + view_options = { + show_hidden = true, + }, + }, + dependencies = { 'nvim-tree/nvim-web-devicons' }, + keys = { + { '-', ':Oil', desc = 'oil' }, + { 'ef', ':Oil', desc = 'edit [f]iles' }, + }, + cmd = 'Oil', + }, + { -- statusline -- PERF: I found this to slow down the editor 'nvim-lualine/lualine.nvim', From 8b7eb4276c4f903d2b923bfa55d06600b7f96d0d Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 16:16:26 +0200 Subject: [PATCH 04/14] test cute colorschemes --- lua/config/global.lua | 3 +++ lua/plugins/colorthemes.lua | 37 ++++++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/lua/config/global.lua b/lua/config/global.lua index 284465b..0861819 100644 --- a/lua/config/global.lua +++ b/lua/config/global.lua @@ -5,6 +5,9 @@ local animals = require('misc.style').animals -- proper colors vim.opt.termguicolors = true +-- show insert mode in terminal buffers +vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) + -- disable fill chars (the ~ after the buffer) vim.o.fillchars = 'eob: ' diff --git a/lua/plugins/colorthemes.lua b/lua/plugins/colorthemes.lua index cc30eeb..02cb21a 100644 --- a/lua/plugins/colorthemes.lua +++ b/lua/plugins/colorthemes.lua @@ -5,17 +5,7 @@ return { { 'catppuccin/nvim', name = 'catppuccin', - -- using new default on nvim 0.10 now for a while to test - enabled = function() - -- only enabled catppuccin on lower versions - local has_new_default_theme = vim.fn.has 'nvim-0.10' == 1 - if has_new_default_theme then - -- change cursor color for terminal insert mode - -- (because cursor shape does not change for now) - vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) - end - return not has_new_default_theme - end, + enabled = false, lazy = false, -- make sure we load this during startup if it is your main colorscheme priority = 1000, -- make sure to load this before all the other start plugins config = function() @@ -26,6 +16,31 @@ return { vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) end, }, + + { + 'oxfist/night-owl.nvim', + enabled = true, + lazy = false, + priority = 1000, + config = function() + -- load the colorscheme here + require('night-owl').setup() + vim.cmd.colorscheme 'night-owl' + vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) + end, + }, + + { + 'rebelot/kanagawa.nvim', + enabled = false, + lazy = false, + priority = 1000, + config = function() + vim.cmd.colorscheme 'kanagawa' + vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) + end, + }, + { 'olimorris/onedarkpro.nvim', enabled = false, From bb01a8866102e87b73f997c7177d963fd66e3b4d Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 16:35:32 +0200 Subject: [PATCH 05/14] feat: kanagawa colorscheme --- lua/plugins/colorthemes.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/plugins/colorthemes.lua b/lua/plugins/colorthemes.lua index 02cb21a..71196e1 100644 --- a/lua/plugins/colorthemes.lua +++ b/lua/plugins/colorthemes.lua @@ -19,7 +19,7 @@ return { { 'oxfist/night-owl.nvim', - enabled = true, + enabled = false, lazy = false, priority = 1000, config = function() @@ -32,7 +32,7 @@ return { { 'rebelot/kanagawa.nvim', - enabled = false, + enabled = true, lazy = false, priority = 1000, config = function() From 7e80728f019d3be3a390c1635ffa4604fef48a95 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 17 May 2024 10:07:24 +0200 Subject: [PATCH 06/14] dev --- lua/plugins/completion.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index a9c102f..95199de 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -155,7 +155,7 @@ return { { -- gh copilot 'zbirenbaum/copilot.lua', - enabled = false, + enabled = true, config = function() require('copilot').setup { suggestion = { From 0470708f6db17398e16e130ff84c497cb0bfc5fc Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Wed, 22 May 2024 00:19:50 +0200 Subject: [PATCH 07/14] remove signcolumn background color --- lua/plugins/colorthemes.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lua/plugins/colorthemes.lua b/lua/plugins/colorthemes.lua index 71196e1..40ef99d 100644 --- a/lua/plugins/colorthemes.lua +++ b/lua/plugins/colorthemes.lua @@ -36,6 +36,17 @@ return { lazy = false, priority = 1000, config = function() + require('kanagawa').setup { + colors = { + theme = { + all = { + ui = { + bg_gutter = 'none', + }, + }, + }, + }, + } vim.cmd.colorscheme 'kanagawa' vim.api.nvim_set_hl(0, 'TermCursor', { fg = '#A6E3A1', bg = '#A6E3A1' }) end, From 887f7986091c386fba8d44f0414930250b4022d5 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Thu, 20 Jun 2024 11:49:03 +0200 Subject: [PATCH 08/14] feat: json ls --- lua/plugins/lsp.lua | 7 ++++++- lua/plugins/ui.lua | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index beb2a4b..387bdd0 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -144,12 +144,17 @@ return { yaml = { schemaStore = { enable = true, - url = '', + -- url = '', }, }, }, } + lspconfig.jsonls.setup { + capabilities = capabilities, + flags = lsp_flags, + } + lspconfig.dotls.setup { capabilities = capabilities, flags = lsp_flags, diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua index 9ec17c0..9b8fcd8 100644 --- a/lua/plugins/ui.lua +++ b/lua/plugins/ui.lua @@ -51,7 +51,6 @@ return { vimgrep_arguments = vimgrep_arguments, file_ignore_patterns = { 'node_modules', - '%_files/', '%_cache', '.git/', 'site_libs', From 7d455d0345995f2272b49576f0a0de35bd67dbd0 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Mon, 24 Jun 2024 15:04:14 +0200 Subject: [PATCH 09/14] use native gx --- lua/plugins/editing.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/plugins/editing.lua b/lua/plugins/editing.lua index 7d629bc..67a9409 100644 --- a/lua/plugins/editing.lua +++ b/lua/plugins/editing.lua @@ -88,6 +88,7 @@ return { { 'chrishrb/gx.nvim', + enabled = false, keys = { { 'gx', 'Browse', mode = { 'n', 'x' } } }, cmd = { 'Browse' }, init = function() From f08cba5449b58d7619b54617bdf43fb267b07b23 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Mon, 24 Jun 2024 15:05:06 +0200 Subject: [PATCH 10/14] ipython interactive snippet --- lua/plugins/lsp.lua | 5 +++++ snips/snippets/quarto.json | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index beb2a4b..d886aa7 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -248,6 +248,11 @@ return { -- } -- } + -- lspconfig.ruff_lsp.setup { + -- capabilities = capabilities, + -- flags = lsp_flags, + -- } + -- See https://github.com/neovim/neovim/issues/23291 -- disable lsp watcher. -- Too lags on linux for python projects diff --git a/snips/snippets/quarto.json b/snips/snippets/quarto.json index a78a9e1..83a400b 100644 --- a/snips/snippets/quarto.json +++ b/snips/snippets/quarto.json @@ -1,4 +1,16 @@ { + "ipython_interactive": { + "prefix": ["ipyinteractive"], + "body": [ + "```{python}", + "from IPython.core.getipython import get_ipython", + "ip = get_ipython()", + "interactive = False", + "if ip is not None and 'interactiveshell.TerminalInteractiveShell' in str(ip):", + " interactive = True", + "```" + ] + }, "iframe": { "prefix": ["iframe"], "body": [ From 77c96167260c6664e3a6a424af9f9b41ad86fb2c Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 28 Jun 2024 12:38:54 +0200 Subject: [PATCH 11/14] need this url line --- lua/plugins/lsp.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index c327c7a..c002579 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -144,7 +144,7 @@ return { yaml = { schemaStore = { enable = true, - -- url = '', + url = '', }, }, }, From dbd2460d181f9a7c4b430bdfd0e14c2821328878 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 28 Jun 2024 20:33:10 +0200 Subject: [PATCH 12/14] wip --- init.lua | 6 ++-- lua/plugins/lsp.lua | 65 +++++++++++++++++++++++++++++++----------- lua/plugins/quarto.lua | 2 +- lua/plugins/ui.lua | 10 +------ 4 files changed, 53 insertions(+), 30 deletions(-) diff --git a/init.lua b/init.lua index 20e0803..18be247 100644 --- a/init.lua +++ b/init.lua @@ -10,6 +10,6 @@ -- (may be outdated with newer versions of the plugins, -- check for yourself if you're interested in using them) -require 'config.global' -require 'config.lazy' -require 'config.autocommands' +require("config.global") +require("config.lazy") +require("config.autocommands") diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index c002579..87e4bed 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,9 +1,10 @@ return { + { -- for lsp features in code cells / embedded code 'jmbuhr/otter.nvim', - dev = false, + dev = true, dependencies = { { 'neovim/nvim-lspconfig', @@ -37,7 +38,31 @@ return { enabled = false, opts = {}, }, - { 'folke/neodev.nvim', opts = {}, enabled = true }, + { + { + 'folke/lazydev.nvim', + ft = 'lua', -- only load on lua files + opts = { + library = { + -- See the configuration section for more details + -- Load luvit types when the `vim.uv` word is found + { path = 'luvit-meta/library', words = { 'vim%.uv' } }, + }, + }, + }, + { 'Bilal2453/luvit-meta', lazy = true }, -- optional `vim.uv` typings + { -- optional completion source for require statements and module annotations + 'hrsh7th/nvim-cmp', + opts = function(_, opts) + opts.sources = opts.sources or {} + table.insert(opts.sources, { + name = 'lazydev', + group_index = 0, -- set group index to 0 to skip loading LuaLS completions + }) + end, + }, + -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim + }, { 'folke/neoconf.nvim', opts = {}, enabled = false }, }, config = function() @@ -73,13 +98,13 @@ return { ---@diagnostic disable-next-line: inject-field client.server_capabilities.document_formatting = true - map('gS', telescope.lsp_document_symbols, '[g]o so [S]ymbols') - map('gD', telescope.lsp_type_definitions, '[g]o to type [D]efinition') - map('gd', telescope.lsp_definitions, '[g]o to [d]efinition') - map('K', 'lua vim.lsp.buf.hover()', '[K] hover documentation') - map('gh', 'lua vim.lsp.buf.signature_help()', '[g]o to signature [h]elp') - map('gI', telescope.lsp_implementations, '[g]o to [I]mplementation') - map('gr', telescope.lsp_references, '[g]o to [r]eferences') + map('gS', vim.lsp.buf.document_symbol, '[g]o so [S]ymbols') + map('gD', vim.lsp.buf.type_definition, '[g]o to type [D]efinition') + map('gd', vim.lsp.buf.definition, '[g]o to [d]efinition') + map('K', vim.lsp.buf.hover, '[K] hover documentation') + map('gh', vim.lsp.buf.signature_help, '[g]o to signature [h]elp') + map('gI', vim.lsp.buf.implementation, '[g]o to [I]mplementation') + map('gr', vim.lsp.buf.references, '[g]o to [r]eferences') map('[d', vim.diagnostic.goto_prev, 'previous [d]iagnostic ') map(']d', vim.diagnostic.goto_next, 'next [d]iagnostic ') map('ll', vim.lsp.codelens.run, '[l]ens run') @@ -93,8 +118,12 @@ return { allow_incremental_sync = true, debounce_text_changes = 150, } + + local telescope_builtin = require 'telescope.builtin' vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = require('misc.style').border }) vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = require('misc.style').border }) + -- TODO: handle this + vim.lsp.handlers['textDocument/references'] = telescope_builtin.lsp_references local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities()) @@ -104,11 +133,11 @@ return { -- $home/.config/marksman/config.toml : -- [core] -- markdown.file_extensions = ["md", "markdown", "qmd"] - lspconfig.marksman.setup { - capabilities = capabilities, - filetypes = { 'markdown', 'quarto' }, - root_dir = util.root_pattern('.git', '.marksman.toml', '_quarto.yml'), - } + -- lspconfig.marksman.setup { + -- capabilities = capabilities, + -- filetypes = { 'markdown', 'quarto' }, + -- root_dir = util.root_pattern('.git', '.marksman.toml', '_quarto.yml'), + -- } lspconfig.r_language_server.setup { capabilities = capabilities, @@ -201,16 +230,18 @@ return { }, runtime = { version = 'LuaJIT', - plugin = lua_plugin_paths, + -- plugin = lua_plugin_paths, }, diagnostics = { - globals = { 'vim', 'quarto', 'pandoc', 'io', 'string', 'print', 'require', 'table' }, disable = { 'trailing-space' }, }, workspace = { - library = lua_library_files, + -- library = lua_library_files, checkThirdParty = false, }, + doc = { + privateName = { '^_' }, + }, telemetry = { enable = false, }, diff --git a/lua/plugins/quarto.lua b/lua/plugins/quarto.lua index 7b33333..4489c3f 100644 --- a/lua/plugins/quarto.lua +++ b/lua/plugins/quarto.lua @@ -4,7 +4,7 @@ return { -- for complete functionality (language features) 'quarto-dev/quarto-nvim', ft = { 'quarto' }, - dev = false, + dev = true, opts = { lspFeatures = { languages = { 'r', 'python', 'julia', 'bash', 'lua', 'html', 'dot', 'javascript', 'typescript', 'ojs' }, diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua index 9b8fcd8..76c538a 100644 --- a/lua/plugins/ui.lua +++ b/lua/plugins/ui.lua @@ -333,15 +333,6 @@ return { enabled = true, dev = false, ft = { 'markdown', 'quarto', 'vimwiki' }, - dependencies = { - { - 'vhyrro/luarocks.nvim', - priority = 1001, -- this plugin needs to run before anything else - opts = { - rocks = { 'magick' }, - }, - }, - }, config = function() -- Requirements -- https://github.com/3rd/image.nvim?tab=readme-ov-file#requirements @@ -350,6 +341,7 @@ return { -- sudo apt install imagemagick -- sudo apt install libmagickwand-dev -- sudo apt install liblua5.1-0-dev + -- sudo apt install lua5.1 -- sudo apt installl luajit local image = require 'image' From d817c7e81b6e50c76fd8476814ae401b75fb4ee3 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Sat, 29 Jun 2024 14:43:03 +0200 Subject: [PATCH 13/14] disable treesitter textojects due to a bug --- lua/config/keymap.lua | 4 +--- lua/plugins/completion.lua | 2 +- lua/plugins/editing.lua | 1 + lua/plugins/lsp.lua | 18 ++++++++++-------- lua/plugins/treesitter.lua | 8 +++++++- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lua/config/keymap.lua b/lua/config/keymap.lua index ddad173..025cfc8 100644 --- a/lua/config/keymap.lua +++ b/lua/config/keymap.lua @@ -299,13 +299,11 @@ wk.register({ f = { 'Telescope find_files', '[f]iles' }, h = { 'Telescope help_tags', '[h]elp' }, k = { 'Telescope keymaps', '[k]eymaps' }, - r = { 'Telescope lsp_references', '[r]eferences' }, g = { 'Telescope live_grep', '[g]rep' }, b = { 'Telescope current_buffer_fuzzy_find', '[b]uffer fuzzy find' }, m = { 'Telescope marks', '[m]arks' }, M = { 'Telescope man_pages', '[M]an pages' }, c = { 'Telescope git_commits', 'git [c]ommits' }, - s = { 'Telescope lsp_document_symbols', 'document [s]ymbols' }, [''] = { 'Telescope buffers', '[ ] buffers' }, d = { 'Telescope buffers', '[d] buffers' }, q = { 'Telescope quickfix', '[q]uickfix' }, @@ -347,7 +345,7 @@ wk.register({ }, l = { name = '[l]anguage/lsp', - r = { 'Telescope lsp_references', '[r]eferences' }, + r = { vim.lsp.buf.references, '[r]eferences' }, R = { '[R]ename' }, D = { vim.lsp.buf.type_definition, 'type [D]efinition' }, a = { vim.lsp.buf.code_action, 'code [a]ction' }, diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index 95199de..9a4752d 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -120,7 +120,7 @@ return { }, }, sources = { - { name = 'otter' }, -- for code chunks in quarto + -- { name = 'otter' }, -- for code chunks in quarto { name = 'path' }, { name = 'nvim_lsp' }, { name = 'nvim_lsp_signature_help' }, diff --git a/lua/plugins/editing.lua b/lua/plugins/editing.lua index 67a9409..53b958c 100644 --- a/lua/plugins/editing.lua +++ b/lua/plugins/editing.lua @@ -39,6 +39,7 @@ return { formatters_by_ft = { lua = { 'mystylua' }, python = { 'isort', 'black' }, + quarto = { 'injected' }, }, formatters = { mystylua = { diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 87e4bed..ca9ee8e 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -87,10 +87,12 @@ return { vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), callback = function(event) - local telescope = require 'telescope.builtin' local function map(keys, func, desc) vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) end + local function vmap(keys, func, desc) + vim.keymap.set('v', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) + end local client = vim.lsp.get_client_by_id(event.data.client_id) assert(client, 'LSP client not found') @@ -110,6 +112,7 @@ return { map('ll', vim.lsp.codelens.run, '[l]ens run') map('lR', vim.lsp.buf.rename, '[l]sp [R]ename') map('lf', vim.lsp.buf.format, '[l]sp [f]ormat') + vmap('lf', vim.lsp.buf.format, '[l]sp [f]ormat') map('lq', vim.diagnostic.setqflist, '[l]sp diagnostic [q]uickfix') end, }) @@ -119,11 +122,10 @@ return { debounce_text_changes = 150, } - local telescope_builtin = require 'telescope.builtin' vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = require('misc.style').border }) vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = require('misc.style').border }) -- TODO: handle this - vim.lsp.handlers['textDocument/references'] = telescope_builtin.lsp_references + -- vim.lsp.handlers['textDocument/references'] = telescope_builtin.lsp_references local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities()) @@ -133,11 +135,11 @@ return { -- $home/.config/marksman/config.toml : -- [core] -- markdown.file_extensions = ["md", "markdown", "qmd"] - -- lspconfig.marksman.setup { - -- capabilities = capabilities, - -- filetypes = { 'markdown', 'quarto' }, - -- root_dir = util.root_pattern('.git', '.marksman.toml', '_quarto.yml'), - -- } + lspconfig.marksman.setup { + capabilities = capabilities, + filetypes = { 'markdown', 'quarto' }, + root_dir = util.root_pattern('.git', '.marksman.toml', '_quarto.yml'), + } lspconfig.r_language_server.setup { capabilities = capabilities, diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 82f6f58..e170a2d 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -1,8 +1,14 @@ return { { 'nvim-treesitter/nvim-treesitter', + dev = false, dependencies = { - { 'nvim-treesitter/nvim-treesitter-textobjects' }, + -- { + -- -- currently broken for R + -- 'nvim-treesitter/nvim-treesitter-textobjects', + -- dev = false, + -- enabled = false, + -- }, }, run = ':TSUpdate', config = function() From 03492ee193fbc3a0db7be735d9aef8cdd8707e5a Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Sun, 30 Jun 2024 00:58:22 +0200 Subject: [PATCH 14/14] simplify --- init.lua | 6 +++--- lua/config/keymap.lua | 9 +++++++-- lua/plugins/lsp.lua | 16 ++-------------- lua/plugins/quarto.lua | 4 ++-- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/init.lua b/init.lua index 18be247..20e0803 100644 --- a/init.lua +++ b/init.lua @@ -10,6 +10,6 @@ -- (may be outdated with newer versions of the plugins, -- check for yourself if you're interested in using them) -require("config.global") -require("config.lazy") -require("config.autocommands") +require 'config.global' +require 'config.lazy' +require 'config.autocommands' diff --git a/lua/config/keymap.lua b/lua/config/keymap.lua index 025cfc8..5299f90 100644 --- a/lua/config/keymap.lua +++ b/lua/config/keymap.lua @@ -352,14 +352,19 @@ wk.register({ e = { vim.diagnostic.open_float, 'diagnostics (show hover [e]rror)' }, d = { name = '[d]iagnostics', - d = { vim.diagnostic.disable, '[d]isable' }, + d = { + function() + vim.diagnostic.enable(false) + end, + '[d]isable', + }, e = { vim.diagnostic.enable, '[e]nable' }, }, g = { ':Neogen', 'neo[g]en docstring' }, }, o = { name = '[o]tter & c[o]de', - a = { require('otter').dev_setup, 'otter [a]ctivate' }, + a = { require('otter').activate, 'otter [a]ctivate' }, d = { require('otter').deactivate, 'otter [d]eactivate' }, c = { 'O# %%', 'magic [c]omment code chunk # %%' }, r = { insert_r_chunk, '[r] code chunk' }, diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index ca9ee8e..bd350c4 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -4,26 +4,14 @@ return { -- for lsp features in code cells / embedded code 'jmbuhr/otter.nvim', - dev = true, + dev = false, dependencies = { { 'neovim/nvim-lspconfig', 'nvim-treesitter/nvim-treesitter', - 'hrsh7th/nvim-cmp', }, }, - opts = { - lsp = { - hover = { - border = require('misc.style').border, - }, - }, - buffers = { - set_filetype = true, - write_to_disk = false, - }, - handle_leading_whitespace = true, - }, + opts = {}, }, { diff --git a/lua/plugins/quarto.lua b/lua/plugins/quarto.lua index 4489c3f..3a2a946 100644 --- a/lua/plugins/quarto.lua +++ b/lua/plugins/quarto.lua @@ -4,10 +4,10 @@ return { -- for complete functionality (language features) 'quarto-dev/quarto-nvim', ft = { 'quarto' }, - dev = true, + dev = false, opts = { lspFeatures = { - languages = { 'r', 'python', 'julia', 'bash', 'lua', 'html', 'dot', 'javascript', 'typescript', 'ojs' }, + languages = { 'r', 'python', 'julia', 'bash', 'lua', 'html', 'dot', 'javascript', 'typescript', 'ojs', 'lua' }, }, codeRunner = { enabled = true,