Skip to content

Commit cdec4b5

Browse files
committed
nvim: fix lsp features in ipynb
1 parent b0a3b50 commit cdec4b5

File tree

4 files changed

+49
-6
lines changed

4 files changed

+49
-6
lines changed
+38-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,38 @@
1-
-- Needed for notebooks
2-
require("quarto").activate()
1+
vim.b.slime_cell_delimiter = "```"
2+
3+
local config = require("quarto.config").config
4+
local quarto = require("quarto")
5+
6+
local function set_keymaps()
7+
local b = vim.api.nvim_get_current_buf()
8+
local function set(lhs, rhs)
9+
vim.api.nvim_buf_set_keymap(b, "n", lhs, rhs, { silent = true, noremap = true })
10+
end
11+
set(config.keymap.definition, ":lua require'otter'.ask_definition()<cr>")
12+
set(config.keymap.type_definition, ":lua require'otter'.ask_type_definition()<cr>")
13+
set(config.keymap.hover, ":lua require'otter'.ask_hover()<cr>")
14+
set(config.keymap.rename, ":lua require'otter'.ask_rename()<cr>")
15+
set(config.keymap.references, ":lua require'otter'.ask_references()<cr>")
16+
set(config.keymap.document_symbols, ":lua require'otter'.ask_document_symbols()<cr>")
17+
set(config.keymap.format, ":lua require'otter'.ask_format()<cr>")
18+
end
19+
20+
if config.lspFeatures.enabled then
21+
quarto.activate()
22+
set_keymaps()
23+
-- set the keymap again if a language server attaches
24+
-- directly to this buffer
25+
-- because it probably overwrites these in `LspAttach`
26+
-- TODO: make this more robust
27+
-- This currently only works if 'LspAttach' is used
28+
-- directly, e.g. in LazyVim
29+
-- It does no work if the `on_attach` callback
30+
-- is used in the lspconfig setup
31+
-- because this gets executed after the `LspAttach` autocommand
32+
-- <https://github.com/neovim/neovim/blob/d0d132fbd055834cbecb3d4e3a123a6ea8f099ec/runtime/lua/vim/lsp.lua#L1702-L1711>
33+
vim.api.nvim_create_autocmd("LspAttach", {
34+
buffer = vim.api.nvim_get_current_buf(),
35+
group = vim.api.nvim_create_augroup("QuartoKeymapSetup", {}),
36+
callback = set_keymaps,
37+
})
38+
end

nvim/.config/nvim/lua/plugins/code/jupyter/otter.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ return {
66
set_filetype = true,
77
write_to_disk = true,
88
},
9-
},
9+
}
1010
}

nvim/.config/nvim/lua/plugins/code/jupyter/quarto.lua

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
return {
22
'quarto-dev/quarto-nvim',
33
dependencies = {
4-
'jmbuhr/otter.nvim',
54
'hrsh7th/nvim-cmp',
65
'neovim/nvim-lspconfig',
76
'nvim-treesitter/nvim-treesitter',
7+
'jmbuhr/otter.nvim',
88
},
99
keys = {
1010
{"<leader>qrc", function() require("quarto.runner").run_cell() end, desc="Quarto: run cell", silent=true},
@@ -37,15 +37,21 @@ return {
3737
},
3838
keymap = {
3939
-- NOTE: setup your own keymaps:
40-
hover = "H",
40+
hover = "K",
4141
definition = "gd",
42+
type_definition = "go",
4243
rename = "<F2>",
4344
references = "gr",
4445
format = "<F3>",
46+
document_symbols = "gS",
4547
},
4648
codeRunner = {
4749
enabled = true,
4850
default_method = "molten",
4951
},
50-
}
52+
},
53+
config = function(_, opts)
54+
require('quarto').setup(opts)
55+
require('quarto').activate()
56+
end
5157
}

nvim/.config/nvim/lua/plugins/lsp/lsp.lua

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ return {
2525
{"go", function() vim.lsp.buf.type_definition() end, mode = {"n"}, desc = "LSP: go to type definition"},
2626
{"gr", function() vim.lsp.buf.references() end, mode = {"n"}, desc = "LSP: list all references"},
2727
{"gs", function() vim.lsp.buf.signature_help() end, mode = {"n"}, desc = "LSP: signature help"},
28+
{"gS", function() vim.lsp.buf.document_symbol() end, mode = {"n"}, desc = "LSP: show document symbols"},
2829
{"<F2>", function() vim.lsp.buf.rename() end, mode = {"n"}, desc = "LSP: rename variable"},
2930
{"<F4>", function() vim.lsp.buf.code_action() end, mode = {"n"}, desc = "LSP: code actions"},
3031
{"gl", function() vim.diagnostic.open_float() end, mode = {"n"}, desc = "LSP: open diagnostics float window"},

0 commit comments

Comments
 (0)