From ce711776833cbb40c8b8ae6a85c56973a40e9b6c Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 20 Dec 2024 16:21:24 +0100 Subject: [PATCH 1/3] molten --- lua/plugins/completion.lua | 23 +++++--------------- lua/plugins/lsp.lua | 10 ++++----- lua/plugins/quarto.lua | 44 ++++++++++++++++++++++++++------------ lua/plugins/ui.lua | 8 +++---- 4 files changed, 44 insertions(+), 41 deletions(-) diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index 09b743a..9947137 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -27,14 +27,6 @@ return { 'jmbuhr/cmp-pandoc-references', dev = false, ft = { 'quarto', 'markdown', 'rmarkdown' }, - config = function() - -- vim.api.nvim_create_autocmd('FileType', { - -- pattern = { "markdown", "quarto", "rmarkdown" }, - -- callback = function() - -- require('cmp-pandoc-references.lsp').start() - -- end - -- }) - end }, { 'hrsh7th/cmp-emoji' }, { 'kdheepak/cmp-latex-symbols' }, @@ -59,21 +51,16 @@ return { sources = { completion = { - enabled_providers = { "lsp", "path", "snippets", "buffer", "lazydev", "references", "emoji", "symbols" }, + enabled_providers = { "lsp", "path", "snippets", "buffer", "lazydev" }, }, providers = { -- dont show LuaLS require statements when lazydev has items lsp = { fallback_for = { "lazydev" } }, lazydev = { name = "LazyDev", module = "lazydev.integrations.blink" }, - references = { - name = "pandoc_references", - module = "blink.compat.source", - -- opts = { - -- impersonate_nvim_cmp = true, - -- enable_events = true, - -- debug = true, - -- } - }, + -- references = { + -- name = "pandoc_references", + -- module = "blink.compat.source", + -- }, emoji = { name = "emoji", module = "blink.compat.source" }, symbols = { name = "symbols", module = "blink.compat.source" }, }, diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index f670675..33de292 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -265,11 +265,11 @@ return { -- Add additional languages here. -- See `:h lspconfig-all` for the configuration. -- Like e.g. Haskell: - lspconfig.hls.setup { - capabilities = capabilities, - flags = lsp_flags, - filetypes = { 'haskell', 'lhaskell', 'cabal' }, - } + -- lspconfig.hls.setup { + -- capabilities = capabilities, + -- flags = lsp_flags, + -- filetypes = { 'haskell', 'lhaskell', 'cabal' }, + -- } lspconfig.clangd.setup { capabilities = capabilities, diff --git a/lua/plugins/quarto.lua b/lua/plugins/quarto.lua index 336e6aa..39ab1c0 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 = { codeRunner = { enabled = true, @@ -128,23 +128,39 @@ return { { 'benlubas/molten-nvim', dev = false, - enabled = false, + enabled = true, + version = "^1.0.0", -- use version <2.0.0 to avoid breaking changes build = ':UpdateRemotePlugins', init = function() vim.g.molten_image_provider = 'image.nvim' - vim.g.molten_output_win_max_height = 20 + -- vim.g.molten_output_win_max_height = 20 vim.g.molten_auto_open_output = true + vim.g.molten_auto_open_html_in_browser = true + vim.g.molten_tick_rate = 200 + end, + config = function() + local init = function() + local quarto_cfg = require'quarto.config'.config + quarto_cfg.codeRunner.default_method = "molten" + vim.cmd[[MoltenInit]] + end + local deinit = function() + local quarto_cfg = require'quarto.config'.config + quarto_cfg.codeRunner.default_method = "slime" + vim.cmd[[MoltenDeinit]] + end + vim.keymap.set("n", "mi", init, + { silent = true, desc = "Initialize molten" }) + vim.keymap.set("n", "md", deinit, + { silent = true, desc = "Stop molten" }) + vim.keymap.set("n", "mp", ":MoltenImagePopup", + { silent = true, desc = "molten image popup" }) + vim.keymap.set("n", "mb", ":MoltenOpenInBrowser", + { silent = true, desc = "molten open in browser" }) + vim.keymap.set("n", "mh", ":MoltenHideOutput", + { silent = true, desc = "hide output" }) + vim.keymap.set("n", "ms", ":noautocmd MoltenEnterOutput", + { silent = true, desc = "show/enter output" }) end, - keys = { - { 'mi', ':MoltenInit', desc = '[m]olten [i]nit' }, - { 'md', ':MoltenDeinit', desc = '[m]olten [d]einit' }, - { - 'mv', - ':MoltenEvaluateVisual', - mode = 'v', - desc = 'molten eval visual', - }, - { 'mr', ':MoltenReevaluateCell', desc = 'molten re-eval cell' }, - }, }, } diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua index 68c97e5..1e55528 100644 --- a/lua/plugins/ui.lua +++ b/lua/plugins/ui.lua @@ -418,10 +418,10 @@ return { window_overlap_clear_enabled = true, tmux_show_only_in_active_window = true, window_overlap_clear_ft_ignore = { 'cmp_menu', 'cmp_docs', 'scrollview', 'scrollview_sign' }, - max_width = nil, - max_height = nil, - max_width_window_percentage = nil, - max_height_window_percentage = 30, + max_width = 100, + max_height = 14, + max_height_window_percentage = math.huge, + max_width_window_percentage = math.huge, kitty_method = 'normal', } From 7722c0d2e2df2c1ce2b34ae707d0f3bf1f1b009e Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Fri, 20 Dec 2024 17:37:16 +0100 Subject: [PATCH 2/3] dev on pandoc markdown --- init.lua | 14 ++++++++------ lua/plugins/lsp.lua | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index 30a100b..5d4e58d 100644 --- a/init.lua +++ b/init.lua @@ -10,16 +10,18 @@ -- (may be outdated with newer versions of the plugins, -- check for yourself if you're interested in using them) + +vim.treesitter.language.add('pandoc_markdown', { path = "/usr/local/lib/libtree-sitter-pandoc-markdown.so" }) +vim.treesitter.language.add('pandoc_markdown_inline', { path = "/usr/local/lib/libtree-sitter-pandoc-markdown-inline.so" }) +vim.treesitter.language.register('pandoc_markdown', { 'quarto', 'rmarkdown' }) + +-- vim.treesitter.language.register("markdown", 'quarto') +-- vim.treesitter.language.register("markdown", 'text') + require 'config.global' require 'config.lazy' require 'config.autocommands' require 'config.redir' --- vim.treesitter.language.add('pandoc_markdown', { path = "/usr/local/lib/libtree-sitter-pandoc-markdown.so" }) --- vim.treesitter.language.add('pandoc_markdown_inline', { path = "/usr/local/lib/libtree-sitter-pandoc-markdown-inline.so" }) --- vim.treesitter.language.register('pandoc_markdown', { 'quarto', 'rmarkdown' }) - -vim.treesitter.language.register("markdown", 'quarto') -vim.treesitter.language.register("markdown", 'text') diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 33de292..f58c896 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -5,7 +5,7 @@ return { -- for lsp features in code cells / embedded code 'jmbuhr/otter.nvim', - dev = false, + dev = true, dependencies = { { 'neovim/nvim-lspconfig', From 1c7904642d77989e3ebb3cc68ecdc5842fc69687 Mon Sep 17 00:00:00 2001 From: Jannik Buhr Date: Thu, 26 Dec 2024 14:58:44 +0100 Subject: [PATCH 3/3] win --- lua/plugins/completion.lua | 73 +++++++++++++++++++------------------- lua/plugins/quarto.lua | 2 +- 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index 9947137..81f362b 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -14,6 +14,7 @@ return { -- optional: provides snippets for the snippet source dependencies = { { 'rafamadriz/friendly-snippets' }, + { 'moyiz/blink-emoji.nvim' }, { 'saghen/blink.compat', dev = false, @@ -28,60 +29,59 @@ return { dev = false, ft = { 'quarto', 'markdown', 'rmarkdown' }, }, - { 'hrsh7th/cmp-emoji' }, { 'kdheepak/cmp-latex-symbols' }, }, - -- use a release tag to download pre-built binaries version = 'v0.*', -- OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust -- build = 'cargo build --release', - -- If you use nix, you can build from source using latest nightly rust with: - -- build = 'nix run .#build-plugin', - ---@module 'blink.cmp' ---@type blink.cmp.Config opts = { - -- 'default' for mappings similar to built-in completion - -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate) - -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept - -- see the "default configuration" section below for full documentation on how to define - -- your own keymap. keymap = { preset = 'enter' }, - sources = { - completion = { - enabled_providers = { "lsp", "path", "snippets", "buffer", "lazydev" }, + default = { "lazydev", "lsp", "path", "snippets", "buffer", "emoji" }, + cmdline = { + enabled = false, }, providers = { - -- dont show LuaLS require statements when lazydev has items - lsp = { fallback_for = { "lazydev" } }, - lazydev = { name = "LazyDev", module = "lazydev.integrations.blink" }, - -- references = { - -- name = "pandoc_references", - -- module = "blink.compat.source", - -- }, - emoji = { name = "emoji", module = "blink.compat.source" }, + emoji = { + module = "blink-emoji", + name = "Emoji", + score_offset = 15, -- Tune by preference + }, + lazydev = { + name = "LazyDev", + module = "lazydev.integrations.blink", + -- make lazydev completions top priority (see `:h blink.cmp`) + score_offset = 100, + }, + references = { + name = "pandoc_references", + module = "blink.compat.source", + }, symbols = { name = "symbols", module = "blink.compat.source" }, }, }, - - highlight = { - -- sets the fallback highlight groups to nvim-cmp's highlight groups - -- useful for when your theme doesn't support blink.cmp - -- will be removed in a future release, assuming themes add support + appearance = { + -- Sets the fallback highlight groups to nvim-cmp's highlight groups + -- Useful for when your theme doesn't support blink.cmp + -- Will be removed in a future release use_nvim_cmp_as_default = true, + -- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' }, - -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- adjusts spacing to ensure icons are aligned - nerd_font_variant = 'mono', - - -- experimental auto-brackets support - accept = { auto_brackets = { enabled = true } }, - - -- experimental signature help support - trigger = { signature_help = { enabled = true } }, - } + completion = { + documentation = { + auto_show = true, + auto_show_delay_ms = 500, + treesitter_highlighting = true, + }, + menu = { auto_show = function(ctx) return ctx.mode ~= 'cmdline' end }, + }, + signature = { enabled = true } + }, }, { -- completion @@ -90,7 +90,6 @@ return { event = 'InsertEnter', dependencies = { 'hrsh7th/cmp-nvim-lsp', - -- TODO: wait for PR merge to revert back to hrsh7th upstream 'jmbuhr/cmp-nvim-lsp-signature-help', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path', diff --git a/lua/plugins/quarto.lua b/lua/plugins/quarto.lua index 39ab1c0..b77447b 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 = true, + dev = false, opts = { codeRunner = { enabled = true,